ARM体系结构和编程---第一章教学课件

上传人:风*** 文档编号:240605319 上传时间:2024-04-24 格式:PPT 页数:107 大小:2.04MB
收藏 版权申诉 举报 下载
ARM体系结构和编程---第一章教学课件_第1页
第1页 / 共107页
ARM体系结构和编程---第一章教学课件_第2页
第2页 / 共107页
ARM体系结构和编程---第一章教学课件_第3页
第3页 / 共107页
资源描述:

《ARM体系结构和编程---第一章教学课件》由会员分享,可在线阅读,更多相关《ARM体系结构和编程---第一章教学课件(107页珍藏版)》请在装配图网上搜索。

1、这门课主要讲的内容ARM ARM A Advanced dvanced R RISC ISC MMachineachine1 1、ARMARM基础知识(第基础知识(第1 1章)章)2 2、ARMARM汇编(第汇编(第2 2、3 3、4 4、8 8章)章)3 3、ARMARM存储系统存储系统 MMU MMU(第(第5 5章)章)M Memory emory MManagement anagement U Unitnit4 4、异常中断处理(第、异常中断处理(第9 9章)章)1课件前言了解嵌入式系统概述1 嵌入式系统简介2 嵌入式系统的定义3 嵌入式系统的特点4 嵌入式系统的组成5 嵌入式系统的应

2、用2课件嵌入式系统组成ESOFTWARE嵌入式软件嵌入式软件嵌入式操作系统嵌入式操作系统处理器处理器(内核)(内核)单片机单片机 ARM ARM PowerPCPowerPC DSP DSP嵌入式微处理器嵌入式微处理器配置硬件,补平硬件差异,配置硬件,补平硬件差异,为软件搭建平台为软件搭建平台如如linuxlinux、win ce uc-os2win ce uc-os2提供功能应用提供功能应用3课件嵌入式系统简介嵌入式系统的历史与现状从1946年电子计算机的诞生,发展到今天,在许多场合要求将微型机嵌入到一个对象体系中,实现智能化控制。为了区别于通用计算机系统,把嵌入到对象体系中,实现智能化控制

3、的计算机,称作嵌入式计算机系统。4课件嵌入式系统简介现代计算机技术的两大分支计算机进入了通用计算机与嵌入式计算机两大分支并行发展时代。通用计算机侧重的发展方向:高速、海量的数值计算、总线速度提升,扩大存储容量。嵌入式计算机对体积、功耗、功能、可靠性、专用性有较高要求。5课件2嵌入式系统的定义6课件嵌入式系统的定义q参考参考IEEE(国际电气和电子工程师协会)的定义:国际电气和电子工程师协会)的定义:嵌入式系统嵌入式系统:“用于控制、监视或者辅助操作机用于控制、监视或者辅助操作机器和设备的装置器和设备的装置”u嵌入式系统:以计算机技术为基础、软件硬件嵌入式系统:以计算机技术为基础、软件硬件可可裁

4、剪裁剪、面向应用,对、面向应用,对功能、可靠性、成本、体积、功能、可靠性、成本、体积、功耗功耗严格要求的专用计算机系统严格要求的专用计算机系统。7课件嵌入式系统的应用消费电子消费电子嵌入式应用嵌入式应用信息家电信息家电智能玩具智能玩具军事电子军事电子通信设备通信设备移动存贮移动存贮工控设备工控设备智能仪表智能仪表汽车电子汽车电子网络设备网络设备工业工业军事国防军事国防电子商务电子商务网络网络8课件现实生活中的嵌入式系统实例家庭环境9课件现实生活中的嵌入式系统实例办公室环境10课件现实生活中的嵌入式系统实例工业自动化领域11课件现实生活中的嵌入式系统实例国防领域12课件现实生活中的嵌入式系统实例

5、交通领域13课件现实生活中的嵌入式系统实例航空领域14课件现实生活中的嵌入式系统实例医疗系统15课件第1章ARM概述及其基本编程模型16课件第1章 目录q8.异常q9.复位q10.存储器及存储器映射I/Oq11.寻址方式简介q12.ARM7指令简介q13.协处理器接口q14.调试接口简介q1.简介q2.ARM7三级流水线q3.处理器状态q4.处理器模式q5.内部寄存器q6.程序状态寄存器q7.体系结构直接支持的数据类型17课件1.1ARM简介ARM公司简介 ARM是Advanced RISC Machines的缩写,它是英国一家微处理器行业的知名企业,该企业设计了大量高性能、廉价、耗能低的RI

6、SC处理器。RISC特点:精简指令集执行周期更短;硬件结构简单,配备大量寄存器,配合运算和操作;arm9采用哈佛结构(数据总线和指令总线分离),使得指令操作和数据操作可同时进行,速度更快。公司的特点是只设计芯片,而不生产。它将技术授权给世界上许多著名的半导体、软件和OEM厂商,并提供服务。18课件1.1ARM简介ARM公司简介将技术授权给芯片厂商形成各具特色的ARM芯片.19课件1.1ARM简介ARM有三种含义:一个公司的名称;一类处理器的通称;一种技术的名称。ARM不是完整的单片机,它只是一个内核。所谓以ARM为核的单片机,就是把ARM作为中央处理器(核),根据需要设计出:I/O口、功能模块

7、、外围总线接口,用总线把几部分和ARM核连接在一起,组成一个单片机。这个单片机由ARM核控制。20课件1.1 ARM简介在学习单片机时,结构相对简单,会较快的涉及定时器/计数器、串口、I/O引脚的使用。学习ARM核时,同样也是对寄存器的设置(汇编指令、c语言)来控制ARM核、I/O管脚、功能模块,实现功能。ARM与单片机学习过程有许多相识的地方。很多外围电路适用ARM也适用于单片机。学会ARM核以后,就大致掌握了所有以ARM为核的单片机。无论这个单片机结构多么复杂,功能多么强大,也无论它来自哪个厂家。21课件1.1ARM简介ARM体系结构 ARM处理器为RISC(reduce instruct

8、ion set computing)芯片,其简单的结构使ARM内核非常小,这使得器件的功耗也非常低。它具有经典而先进的RISC特点:数据处理操作绝大多数只针对寄存器(D触发器结构,在CPU内部,离cpu最近,速度最快)的内容,而不直接对存储器(内存和外存,在CPU外部,存储器能够保存的数据量大)进行操作;通过load/store指令在寄存器和存储器之间传递数据。RISC处理器,速度更快,较x86处理器快60%,硬件结构简单。简单的寻址模式;统一和固定长度的指令域(32位)简化了指令的译码。具有大量的寄存器(37个)ARMARM体系还采用一些特别技术,见教材第体系还采用一些特别技术,见教材第2

9、2页页22课件1、在同一条数据处理指令中包含算术逻辑处理和移位处理。在同一条数据处理指令中包含算术逻辑处理和移位处理。如:如:ADD R0,R1,R1,LSL#3;R0=R1+R1*82 2、使用地址自动增加(减少)来优化程序中的循环。使用地址自动增加(减少)来优化程序中的循环。使用地址自动增加(减少)来优化程序中的循环。使用地址自动增加(减少)来优化程序中的循环。如:如:如:如:LDR R0,R1#4;LDR R0,R1#4;先先先先R0R0R1 R1,然后自动使,然后自动使,然后自动使,然后自动使R1+4R1+43 3、Load/StoreLoad/Store指令可以批量传输数据,效率很高

10、。一条指令指令可以批量传输数据,效率很高。一条指令指令可以批量传输数据,效率很高。一条指令指令可以批量传输数据,效率很高。一条指令就可以完成入栈或出栈操作。就可以完成入栈或出栈操作。就可以完成入栈或出栈操作。就可以完成入栈或出栈操作。如:如:如:如:STMFD R13,R4-R6STMFD R13,R4-R6;将将将将R4-R6R4-R6的内容放入以的内容放入以的内容放入以的内容放入以R13R13为栈基址的连续为栈基址的连续为栈基址的连续为栈基址的连续3 3个单元中个单元中个单元中个单元中4 4、所有指令都可以根据前面指令的执行结果,决定是否执行。所有指令都可以根据前面指令的执行结果,决定是否

11、执行。所有指令都可以根据前面指令的执行结果,决定是否执行。所有指令都可以根据前面指令的执行结果,决定是否执行。如:如:如:如:CMP R2,R3 ;R2CMP R2,R3 ;R2与与与与R3R3相等跳到相等跳到相等跳到相等跳到looploop,不等则执行,不等则执行,不等则执行,不等则执行MOV R1,R0MOV R1,R0语句语句语句语句 BEQ loop BEQ loop MOV R1,R0 MOV R1,R023课件1.1ARM简介各ARM体系结构版本(这里主要指指令集)目前ARM公司定义了7种主要的ARM指令集体系结构版本,以版本号V1V7表示。拥有相同指令集版本的ARM芯片,虽然出自

12、不同的生产厂商,但它们使用的指令和应用软件是相互兼容的。24课件1.1ARM简介各ARM体系结构版本V1 该版本的ARM体系结构,只有26位的寻址空间,如今现在已经废弃不再使用,没有商业化,其特点为:基本的数据处理指令(加,减,与,或,非,比较)(这个版本不包括乘法);字节、字和半字加载/存储指令;具有分支指令,包括在子程序调用中使用的分支和链接指令;在操作系统调用中使用的软件中断指令(SWI)。25课件1.1ARM简介各ARM体系结构版本V2 同样为26位寻址空间,如今现在已经废弃不再使用,它相对V1版本有以下改进:具有乘法和乘加指令;支持协处理器(专门用于进行辅助运算的芯片,其本身除了运算

13、功能外没有其他功能,因此不能独立工作,必须和CPU一起工作(cp15特殊);原子性(不可分割)加载/存储指令SWP和SWPB(见备注)。26课件1.1ARM简介各ARM体系结构版本V3 寻址范围扩展到32位:增加了程序状态保护寄存器SPSR;增加了两种处理器模式(ARM和THUMB);修改了v3以前用于异常返回指令的功能;教材有更详细的介绍27课件1.1ARM简介各ARM体系结构版本V4目前大多使用的arm核,使用的是V4t,v5te版本,它相对V3版本作了以下的改进:增加了半字加载(LDRH)/存储(STRH)指令;增加了字节(LDRSB/STRSB)和半字的加载和符号扩展指令(LDRSH/

14、STRSH);增加了T变种,具有可以转换到Thumb状态的指令;增加了新的特权处理器模式。28课件1.1ARM简介各ARM体系结构版本V5 在V4版本的基础上,对现在指令的定义进行了必要的修正,对V4版本的体系结构进行了扩展并增加了指令,对数字信号处理(DSP)算法提供增强算法支持,具体如下:改进了ARM/Thumb状态之间的切换效率;允许T变种(支持Thumb指令集)和非T变种一样,使用相同的代码生成技术;增加前导零计数(最高有效位前0的个数)指令CLZ和软件断点指令BKPT;对乘法指令如何设置标志作了严格的定义。29课件1.1ARM简介各ARM体系结构版本V6ARM体系版本6是2019年发

15、布的。其主要特点是增加了SIMD(Single Instruction Multiple Data,单指令多数据流)(SIMD型的CPU中,指令译码后几个执行部件同时访问内存,一次性获得所有操作数进行运算。)功能扩展。它适合使用电池供电的高性能的便携式设备,便携式设备一方面需要处理器提供高性能,另一方面又需要低功耗。ARM体系版本6首先在2019年春季发布的ARM11处理器中使用。30课件1.1ARM简介各ARM体系结构版本V7V7A-应用程序架构通过多模式和对基于MMU的虚拟内存系统体系结构的支持,实现传统ARM体系结构。V7B-实时架构通过多模式和对基于MPU(根据所处模式的访问权限保护内

16、存)的受保护内存系统体系结构的支持。V7M-通过寄存器硬件堆栈以及对使用高级语言写入中断处理程序的支持,微控制器架构实现了专为快速中断处理而设计的程序员模型。31课件1.1ARM简介ARM处理器核简介 ARM公司开发了很多系列的ARM处理器核,目前最新的系列已经是ARM11了,而ARM6核以及更早的系列已经很罕见了。目前应用比较广泛的系列是:ARM7ARM9ARM9EARM10SecurCoreXscaleStrongARMARM11E32课件1.1ARM简介ARM处理器核简介ARM7 该系列包括ARM7TDMI和扩充了Jazelle(Java加速器)的ARM7EJ-S等等。高档的单片机,除了

17、ARM720T外,都缺少mmu(memory management unit)不能运行真正的操作系统。ARM7系列广泛应用于多媒体和嵌入式设备,包括Internet设备、网络和调制解调器设备,以及移动电话、PDA等无线设备。33课件1.1ARM简介ARM处理器核简介ARM7特点低功耗0.9MIPS/MHz(mips指每秒百万条指令)的3级流水线结构32位ARM指令集和16位的Thumb指令集主频最高可达130MIPS典型芯片 ATMEL公司AT91M40800/55800A;Samsung公司的S3C44B0/4510B34课件1.2ARM7简介 ARM7基于ARM体系结构V4版本,是目前低端

18、的ARM核。具有广泛的应用,其最显著的应用为数字移动电话。注意:“ARM核”并不是芯片,ARM核与其它部件如RAM、ROM、片内外设、GPIO(General Purpose I/O通用的输入输出端口)组合在一起才能构成现实的芯片。35课件1.2ARM7TDMI简介 ARM7TDMI支持32位寻址范围,使用了冯诺依曼(Von Neumann)结构,指令和数据共用一条32位总线。ARM7TDMI的后缀意义为:支持高密度16位的Thumb指令集;支持片上调试;支持64位乘法;支持EmbededICE(调试接口)观察硬件;ARM7 T D M I 36课件1.1ARM简介ARM处理器核简介ARM9

19、该系列包括ARM9TDMI、ARM920TARM920T、ARM940T。除了兼容ARM7系列,而且能够更加灵活的设计。ARM9系列主要应用于无线通信、仪器仪表、安全系统和机顶盒等领域。37课件1.1MIPS/MHz1.1MIPS/MHz的哈佛结构(的哈佛结构(程序代码和数据的存储空间分开,程序和数据存储在不同的存储空间中,有各自的程序总线和数据总线),),5级流水线。流水线。3232位位ARMARM指令集和指令集和1616位位ThumbThumb指令集指令集全性能的全性能的MMU(MMU(存储器管理单元),存储器管理单元),支持Windows CE、Linux、uC/os等多种主流嵌入式操作

20、系统物理结构上,支持数据Cache和指令Cache,具有更具有更高的指令和数据处理能力。高的指令和数据处理能力。1.1 ARM简介 ARM处理器核简介ARM9特点典型芯片ATMELATMEL公司公司AT91RM9200 AT91RM9200;SamsungSamsung公司的公司的S3C2410S3C2410 S3C2440 S3C2440 38课件1.1ARM简介ARM处理器核简介ARM10 该系列包括ARM1020E和ARM1022E处理器核,其核心在于使用向量浮点(VFP)单元VFP10提供高性能的浮点解决方案,从而极大提高了处理器的整型和浮点运算性能。可以用于视频游戏机和高性能打印机等

21、场合。39课件支持支持DSPDSP指令集指令集,适合于需要高速数字信号,适合于需要高速数字信号处理的场合。处理的场合。6 6级流水线级流水线,指令执行效率更高。,指令执行效率更高。支持支持3232位位ARMARM指令集和指令集和1616位位ThumbThumb指令集。指令集。支持支持6464位的高速位的高速AMBAAMBA总线接口。总线接口。支持支持VFP10VFP10浮点处理协处理器。浮点处理协处理器。全性能的全性能的MMUMMU,支持,支持Windows CEWindows CE、LinuxLinux、Palm OSPalm OS等多种主流嵌入式操作系统。等多种主流嵌入式操作系统。支持数据

22、支持数据CacheCache和指令和指令CacheCache,具有更高的指,具有更高的指令和数据处理能力令和数据处理能力主频最高可达主频最高可达400MIPS400MIPS。内嵌内嵌并行读并行读/写写操作部件。操作部件。1.1 ARM简介 ARM处理器核简介ARM10特点40课件 ARMARM公司在公司在20192019年年4 4月月2929日宣布了其下一代日宣布了其下一代ARMARM架构架构的的CPUCPUARM11ARM11(又名(又名JaguarJaguar美洲虎),基于美洲虎),基于ARM11ARM11的微处的微处理器具有更强的性能,尤其是多媒体处理能力。理器具有更强的性能,尤其是多媒

23、体处理能力。ARM11 ARM11微处理器采用微处理器采用0.130.13微米工艺,低端产品运行在微米工艺,低端产品运行在350MHz350MHz500MHz500MHz,高端产品运行在,高端产品运行在533533750MHz750MHz,如果将,如果将加工工艺减小到加工工艺减小到0.100.10微米,微米,那么芯片速度将达那么芯片速度将达1GHz1GHz。1.1 ARM简介 ARM处理器核简介ARM11E41课件1.1ARM简介ARM处理器核简介SecureCore该系列处理器主要针对新兴的安全市场,以一种全新的安全处理器设计为智能卡和其它安全IC(集成电路)开发提供独特的32位系统设计,并

24、具有特定反伪造方法,从而有助于防止对硬件和软件的盗版。42课件1.1ARM简介ARM处理器核简介Xscale Intel Xscale微控制器(ARMv5TE)核,操作系统包括linux,Windows CE,Symbian OS,和其他一些RTOS.提供全性能、高性价比、低功耗的解决方案,支持16位Thumb指令并集成数字信号处理(DSP)指令。Xscale 处理器是处理器是Intel目前主要推广的一款目前主要推广的一款ARM微处理器。微处理器。典型芯片:典型芯片:PXA250/255/270/27243课件Xscale苹果苹果iPhoneiPhone手机手机 44课件ARM ARM 体系结

25、构更新体系结构更新45课件第1章 目录q8.异常q9.复位q10.存储器及存储器映射I/Oq11.寻址方式简介q12.ARM7指令简介q13.协处理器接口q14.调试接口简介q1.简介q2.ARM7三级流水线q3.处理器状态q4.处理器模式q5.内部寄存器q6.程序状态寄存器q7.体系结构直接支持的数据类型46课件1.2ARM7流水线技术三级流水线 有一种方法可以明显改善硬件资源的使用率和处理器的吞吐量,这就是当前一条指令结束之前就开始后面的指令,就是通常所说的流水线技术。这样可使几个操作同时进行。ARM7的流水线分3级,分别为:取指译码执行47课件取指译码执行从程序存储器中取出指令送到处理器

26、内核指令译码(指明处理器的操作)执行这些操作取指译码执行取指译码执行取指译码执行t指令指令1指令2指令33级流级流水线功能段划分水线功能段划分PC为某个正在取址指令所在为某个正在取址指令所在的地址,确切地说是该指令的地址,确切地说是该指令最低字节的地址。最低字节的地址。PC指针?PC8指令1指令2指令3PC指针-取指译码执行PC4PC-4-PC-8-高地址高地址高地址高地址低地址低地址低地址低地址48课件1.2ARM7三级流水线技术虽然ARM9和ARM10为5、6级流水线(流水线级数越多,说明单位时间内执行的指令条数可能就越多),但它们都使用了与ARM7相同的流水线机制(它们完全仿真3级流水线

27、的行为),因此ARM7上的代码也可以在ARM9和ARM10上运行。49课件第1章 目录q1.简介q2.ARM7三级流水线q3.处理器状态q4.处理器模式q5.内部寄存器q6.程序状态寄存器q7.体系结构直接支持的数据类型q8.异常q9.复位q10.存储器及存储器映射I/Oq11.寻址方式简介q12.ARM7指令简介q13.协处理器接口q14.调试接口简介50课件1.7处理器状态处理器状态ARM处理器有两种操作状态:ARM状态:执行32位的ARM指令Thumb状态:16位Thumb指令51课件第1章 目录q8.异常q9.复位q10.存储器及存储器映射I/Oq11.寻址方式简介q12.ARM7指令

28、简介q13.协处理器接口q14.调试接口简介q1.简介q2.ARM7三级流水线q3.处理器状态q4.处理器模式q5.内部寄存器q6.程序状态寄存器q7.体系结构直接支持的数据类型52课件1.4处理器模式简介 ARM体系结构支持7种处理器模式,分别为:用户模式(usr)、快中断模式(fiq)、中断模式(irq)、管理模式(svc)、中止模式(abt)、未定义模式(und)、系统模式(sys)。如下表所示。53课件处理器模式说明备注用户(usr)user正常程序工作模式不能直接切换到其它模式,可以通过异常切换,如irq(被动),swi指令(主动)系统(sys)system用于支持操作系统与用户模式

29、类似,但具有可以直接切换到其它模式等特权,直接设置CPSR寄存器进行切换。快速中断(fiq)fastinterruptrequest支持高速数据传输及通道处理FIQ异常响应时(引脚低电平有效)进入此模式中断(irq)interruptrequest用于通用中断处理引脚低电平有效,IRQ异常响应时进入此模式管理(svc)supervisor操作系统使用的保护模式(复位后执行bootloader,可以设置引导某个操作系统)系统复位和软件中断(执行SWI指令)响应时进入此模式数据访问中止(abt)abort用于支持虚拟存储或存储器保护当存取异常时进入此模式未定义(und)undefined支持软件仿

30、真硬件的协处理器执行未定义指令时,会将该指令送到协处理器,如果协处理器都处理不了该指令,就产生未定义指令异常中断,进入此模式1.4处理器模式54课件1.4处理器模式特权模式处理器模式说明备注用户(usr)正常程序工作模式不能直接切换到其它模式系统(sys)用于支持操作系统的特权任务等与用户模式类似,但具有可以直接切换到其它模式等特权快中断(fiq)支持高速数据传输及通道处理FIQ异常响应时进入此模式中断(irq)用于通用中断处理IRQ异常响应时进入此模式管理(svc)操作系统保护代码系统复位和软件中断响应时进入此模式中止(abt)用于支持虚拟内存和/或存储器保护在ARM7TDMI没有大用处(因

31、为无mmu)未定义(und)支持硬件协处理器的软件仿真未定义指令异常响应时进入此模式 除用户模式外,其它6种模式均为特权模式。特权模式下,可以访问所有系统资源。此外,特权模式可以自由的切换处理器模式,而用户模式不能直接切换到别的模式,当用户模式需要进行处理器模式切换时,应用程序可以产生异常处理,如irq(被动),swi指令(主动),在异常处理过程中进行处理模式的切换。未定义(und)中止(abt)管理(svc)中断(irq)快中断(fiq)系统(sys)55课件1.4处理器模式异常模式处理器模式说明备注用户(usr)正常程序工作模式不能直接切换到其它模式系统(sys)用于支持操作系统的特权任务

32、等与用户模式类似,但具有可以直接切换到其它模式等特权快中断(fiq)支持高速数据传输及通道处理FIQ异常响应时进入此模式中断(irq)用于通用中断处理IRQ异常响应时进入此模式管理(svc)操作系统保护代码系统复位和软件中断响应时进入此模式中止(abt)用于支持虚拟内存和/或存储器保护在ARM7TDMI没有大用处未定义(und)支持硬件协处理器的软件仿真未定义指令异常响应时进入此模式未定义(und)中止(abt)管理(svc)中断(irq)快中断(fiq)这五种模式称为异常模式。它们除了可以通过程序(修改CPSR)切换进入外,也可以由特定的异常进入。当特定的异常出现时,处理器进入相应的模式。每

33、种异常模式都有一些独立的寄存器,供异常处理使用。56课件1.4处理器模式用户和系统模式处理器模式说明备注用户(usr)正常程序工作模式不能直接切换到其它模式系统(sys)用于支持操作系统的特权任务等与用户模式类似,但具有可以直接切换到其它模式等特权快中断(fiq)支持高速数据传输及通道处理FIQ异常响应时进入此模式中断(irq)用于通用中断处理IRQ异常响应时进入此模式管理(svc)操作系统保护代码系统复位和软件中断(swi)响应时进入此模式中止(abt)用于支持虚拟内存和/或存储器保护在ARM7TDMI没有大用处,(无mmu)未定义(und)支持硬件协处理器的软件仿真未定义指令异常响应时进入

34、此模式 这两种模式使用完全相同的寄存器组。系统模式是特权模式,该模式为操作系统提供可以访问所有资源的权限,并可以通过指令(mrs/msr)对CPSR设置,直接进行模式切换。系统(sys)用户(usr)57课件第一章 目录q8.异常q9.复位q10.存储器及存储器映射I/Oq11.寻址方式简介q12.ARM7指令简介q13.协处理器接口q14.调试接口简介q1.简介q2.ARM7三级流水线q3.处理器状态q4.处理器模式q5.内部寄存器q6.程序状态寄存器q7.体系结构直接支持的数据类型58课件1.5内部寄存器简介 在ARM处理器内部有37个用户可见的通用寄存器。在不同的工作模式和处理器状态下,

35、程序员可以访问的寄存器也不同。59课件寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)StackPointerR13R13_svc R13_abt R13_und R13_irqR13_fiqR14(LR)LinkRegi

36、sterR14R14_svc R14_abt R14_und R14_irqR14_fiqR15(PC)ProgramCounterR15状态寄存器CPSRCurrentProgramStatusRegisterCPSRSPSRSavedProgramStatusRegister无SPSR_svc SPSR_abt SPSR_undSPSR_irq SPSR_fiq60课件寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7

37、(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_svc SPSR_abt SPSR_und SPSR_irq SPSR_fiqARM状态各模式下的寄存器SPSR_fiqSPSR_irqSPSR_undSPSR_ab

38、tSPSR_svcCPSRR15R14_fiqR14_irqR14_undR14_abtR14_svcR14R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8R7R6R5R4R3R2R1R0所有的37个寄存器,分成两大类:绿色区:31个通用寄存器,每个32位。黄色区:6个状态寄存器,每个32位,但目前仅使用其中12位。61课件寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R

39、2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_svc SPSR_abt SPSR_und SPSR_irq SPSR_fiq无CPSRR15R

40、14R13R12R11R10R9R8R7R6R5R4R3R2R1R0用户用户无CPSRR15R14R13R12R11R10R9R8R7R6R5R4R3R2R1R0系统系统SPSR_svcCPSRR15R14_svcR13_svcR12R11R10R9R8R7R6R5R4R3R2R1R0管理管理SPSR_abtCPSRR15R14_abtR13_abtR12R11R10R9R8R7R6R5R4R3R2R1R0中止中止SPSR_undCPSRR15R14_undR13_undR12R11R10R9R8R7R6R5R4R3R2R1R0未定义未定义SPSR_irqCPSRR15R14_irqR13_i

41、rqR12R11R10R9R8R7R6R5R4R3R2R1R0中断中断SPSR_fiqCPSRR15R14_fiqR13_fiqR12_fiqR11_fiqR10_fiqR9_fiqR8_fiqR7R6R5R4R3R2R1R0快中断快中断ARM状态各模式下可以访问的寄存器62课件寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R

42、10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15(即PC)状态寄存器CPSRCPSRSPSR无SPSR_svc SPSR_abt SPSR_und SPSR_irq SPSR_fiq一般的通用寄存器R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_

43、fiqR8R7R6R5R4R3R2R1R0寄存器R0R15为保存数据或地址值的通用寄存器。63课件寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiq

44、R14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_svc SPSR_abt SPSR_und SPSR_irq SPSR_fiq一般的通用寄存器R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8R7R6R5R4R3R2R1R0R7R6R5R4R3R2R1R0 其中R0R7为未分组(未备份)的寄存器,对于任何处理器模式,都使用相同的同一组物理寄存器。64课件寄存器类别寄存器在

45、汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15(即P

46、C)状态寄存器CPSRCPSRSPSR无SPSR_svc SPSR_abt SPSR_und SPSR_irq SPSR_fiq一般的通用寄存器R14_fiqR14_irqR14_undR14_abtR14_svcR14R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8 寄存器R8R14为分组(备份)寄存器。它们所对应的物理寄存器取决于当前的处理器模式。不同模式下寄存器的使用,要使用寄存器后缀加以区分。65课件寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中

47、止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_svc S

48、PSR_abt SPSR_und SPSR_irq SPSR_fiq一般的通用寄存器R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8 寄存器R8R12有两个分组的物理寄存器。一个用于除FIQ模式之外的所有模式,另一个用于FIQ模式。这样在发生FIQ中断后,可以不必执行保存和恢复(R8-R12)的指令,从而加速FIQ的处理速度。66课件寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6

49、R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_svc SPSR_abt SPSR_und SPSR_irq SPSR_fiq一般的通用寄存器 寄存器R13、R14分别有6个分组的物理寄存器。1个用于用户和系统

50、模式,其余5个分别用于5种异常模式。不同模式下寄存器的使用,要使用寄存器后缀加以区分。R14_fiqR14_irqR14_undR14_abtR14_svcR14R13_fiqR13_irqR13_undR13_abtR13_svcR1367课件寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v

51、8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_svc SPSR_abt SPSR_und SPSR_irq SPSR_fiq堆栈指针寄存器R13(SP)寄存器R13常作为堆栈指针(SP Stack Pointer)。在ARM指令集当中,使用R13作为栈指针,只是习惯的用法。但是在Thumb指令集中存在指令强制地使用R13作为堆栈指针。68课

52、件1.5内部寄存器R13寄存器l每一种异常模式拥有自己的R13 _。l应先初始化好各模式的R13_,以便异常发生时,供各模式使用。其中为下面几种模式之一:svc、abt、und、irq、fiq69课件寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R

53、12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_svc SPSR_abt SPSR_und SPSR_irq SPSR_fiq链接寄存器R14(LR)R14为链接寄存器(LR Link Register),有两个功能:每一种模式自己的R14中,存放当前子程序返回地址;当发生异常中断时,该模式的R14存放异常中断的返回地址。70课件Lable程序A程序BR141.5内部寄存器R14寄存器与

54、子程序调用BL Lable地址A?MOV PC,R14R14 b)a+;Elseb+;对应的汇编代码:对应的汇编代码:CMPR0,R1 ;R0与与R1比较(减法)比较(减法)ADDHI R0,R0,#1 ;若若R0R1,则,则R0=R0+1ADDLS R1,R1,#1 ;若若R0R1R1,则,则R1=R1+1R1=R1+1示例:比较两个值大小,并进行相应自加1处理HIHigher(C=1且Z=0)LSLowerorSame(C=0或Z=1)88课件1.6程序状态寄存器控制位中断禁止位包括I和F位:当I位置位时,IRQ中断响应被禁止;当F位置位时,FIQ中断响应被禁止。V4以及更高版本的T系列

55、T位反映了正在操作的状态:当T位清零时,处理器正在ARM状态下运行;当T位置位时,处理器正在Thumb状态下运行 V5以及更高的版本非T系列,T控制位含义如下:当T位清零时,表示执行ARM指令;译码阶段发现,T位置位时,表示强制下一条执行的指令产生未定义指令中断。模式位包括M4、M3、M2、M1和M0,在特权模式下(除用户模式),可以设置CPSR中的这些位进行模式切换。M4:0模式0b10000用户0b10001FIQ0b10010IRQ0b10011管理0b10111中止0b11011未定义0b11111系统89课件1.6程序状态寄存器简介 每个异常模式还带有一个程序状态保存寄存器(SPSR

56、),它用于保存在异常事件发生之前的CPSR。对CPSR和SPSR可以通过特殊指令(MSR)进行写入。注意:如果通过程序修改CPSR寄存器中的模式位bit4:0进入异常模式,那么硬件将不会把CPSR保存至SPSR中,而通过异常发生进入时硬件会自动将CPSR放入SPSR。90课件1.6程序状态寄存器CPSR中的其他位(保留位)CPSR中的保留位被保留,将来可能使用。为了提高程序的可移植性,不要修改这些保留位。另外,请确保程序的运行不受保留位的值影响,因为将来的处理器可能会将这些位设置为1或者0。91课件第一章 目录q8.异常q9.复位q10.存储器及存储器映射I/Oq11.寻址方式简介q12.AR

57、M7指令简介q13.协处理器接口q14.调试接口简介q1.简介q2.ARM7三级流水线q3.处理器状态q4.处理器模式q5.内部寄存器q6.程序状态寄存器q7.体系结构直接支持的数据类型92课件1.7ARM体系中存储系统 ARM地址空间的大小为地址空间的大小为4GBARMARM处理器支持下列数据类型:处理器支持下列数据类型:字节字节(Byte)8(Byte)8位位半字半字(Half-Word)16(Half-Word)16位位 =2=2个字个字节节字字 (Word)32(Word)32位位 =4=4个字节个字节一条一条ARM指令是(指令是(32位、位、4个字节、个字节、1个字)个字)93课件A

58、RM体系结构的存储器格式(1)n大端格式(Big Endian)字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中。n小端格式(Little Endian)字数据的高字节存储在高地址中,而字数据的低字节则存放在低地址中。ARM缺省设置是小端格式(设置cp15中的c1 bit 7可选择)1.7体系结构直接支持的数据类型94课件ARM体系结构的存储器格式(2)(8H)=0 x0B0A0908(4H)=0 x07060504(0H)=0 x03020190Big EndianLittle Endian0H0H1H1H2H2H3H3H0H0H1H1H2H2H3H3H字数据的高字节存储在低字

59、数据的高字节存储在低地址中,字数据的低字节地址中,字数据的低字节存储在高地址中。存储在高地址中。字数据的高字节存储在高字数据的高字节存储在高地址中,字数据的低字节地址中,字数据的低字节存储在低地址中。存储在低地址中。0 031310 03131低地址低地址高地址高地址低地址低地址高地址高地址(8H)=0 x0B0A0908(4H)=0 x07060504(0H)=0 x0302019095课件1.10存储器及存储器映射I/O存储器格式地址空间的规则:位于地址A的字包含的字节位于地址A,A+1,A+2和A+3;位于地址A的半字包含的字节位于地址A和A+1;位于地址A+2的半字包含的字节位于地址A

60、+2和A+3;位于地址A的字包含的半字位于地址A和A+2;字节字节字节字节地址AA+1A+2A+3半字半字字96课件ARM体系结构的存储器格式(3)r0=0 x11223344STR r0,r1LDRB r2,r1r1=0 x100 为地址为地址Memory3 2 1 0 0 1 2 3Byte Lane312423161587011223344312423161587044332211312423161587011223344312423161587000000044312423161587000000011Little endianBig endianr2=0 x44r2=0 x11存储字

61、数据加载字节数据 r1=0 x100r1=0 x10097课件 ARM结构通常希望所有的存储器访问都合理的对齐。字访问的地址通常是字对齐的(一条ARM指令占一个字,也就要求字对齐),而半字访问使用的地址是半字对齐的。不按这种方式对齐的存储器访问称为非对齐的存储器访问。1.10ARM存储器系统非对齐的存储访问操作98课件 非对齐的指令预取操作当处理器处于ARM状态期间,如果写入PC的值是非字对齐的(地址的低两位不为0b00,即不能被4整除),那么,要么指令执行结果不可预知,要么将地址值中的最低两位忽略。不同的指令版本,处理不同。系统可以指定,当发生非对齐的指令预取操作时,将该地址值原封不动地送到

62、存储系统。让存储系统自己处理最低两位。1.10ARM存储器系统99课件 非对齐的数据访问操作对于load/store(加载/存储)操作,如果是非对齐的数据访问操作,系统定义了下面3种可能结果:执行的结果不可预知忽略字单元地址的低两位的值,即访问地址为(address and 0 xfffffffc)的字单元;忽略半字单元地址的最低位的值,即访问地址为(address and 0 xfffffffe)的半字单元若系统指定由存储系统实现忽略字单元地址的低两位的值,则该地址值原封不动地送到存储系统(让存储系统自己去处理)。1.10ARM存储器系统100课件在前面指令的执行尚未完成时将指令从存储器中取

63、出。这个动作称为指令的预取。指令的预取并不是实际执行指令。被预取的指令可能得不到运行,可能的原因是:发生异常中断,程序将会跳转到异常中断处理程序处执行,当前预取的指令将被抛弃;前面执行跳转指令时发生跳转,当前预取的指令也将被抛弃;指令的预取和自修改代码1.10ARM存储器系统101课件?内核流水性执行译码预取 LDR R0,AddInstr STR R0,NextInstrNextInstr SUB R1,R1,#1 .AddInstr ADD R1,R1,#1(1)(2)(4)(3)自修改代码指的是代码在执行过程中可能修改自身。在存储器中的指令可能在它被预取之后,被执行之前,如果有数据访问指

64、令修改了位于主存中的该指令,这时被预取的指令和主存中对应的指令不同。对于支持指令预取的ARM系统,自修改代码可能带来潜在的问题:LDR R0,AddInstrSTR R0,NextInstrLDR R0,AddInstrSTR R0,NextInstrLDR R0,AddInstrSUB R1,R1,#11.从地址(1)预取指;2.从地址(2)预取指,“LDR”指令进入译码阶段;3.从地址(3)预取指,“STR”指令进入译码阶段,同时“LDR”指令进入执行阶段,结果是将地址(4)的指令装入R0;4.继续预取指,同时“STR”指令进入执行阶段,结果是将“ADD”指令存入地址(3),“SUB”指令

65、被覆盖;5.虽然“SUB”指令在存储器中被覆盖,但是它仍存在于流水线上,并进入执行阶段;ADD R1,R1,#1(3)SUB R1,R1,#1STR R0,NextInstr?SUB R1,R1,#1?1.10ARM存储器系统102课件 LDR R0,AddInstr STR R0,NextInstrNextInstr SUB R1,R1,#1 .AddInstr ADD R1,R1,#1(1)(2)(4)(3)但有可能不按照上面所说的执行:因为如果在“SUB”指令预取之后,执行之前,发生中断,那么预取的“SUB”指令将被丢弃,而重新预取,此次预取的是ADD指令。如果ARM处理器或存储器系统允

66、许对预取指令进行备份,并使用这些备份而不是重新预取,那么以后执行这段代码,仍将执行“SUB”指令。预取可能存在的问题提示:因为自修改代码有许多问题需要考虑,建议尽量避免使用。1.10ARM存储器系统103课件 ARM处理器的高级调试特性使应用程序、操作系统和硬件的开发变得更加容易。1.14调试接口简介典型调试系统调试主机:一台运行调试软件的计算机。协议转换器:将调试主机发出的高级命令转换到处理器JTAG接口的低级命令。调试目标:具体的硬件目标板。104课件练习分别列举ARM的处理器模式。ARM核有多少个通用寄存器?R13通常用来存放什么?PC和LR分别使用哪个寄存器?CPSR的哪一位控制是否响应fiq中断?ARM指令采取什么对齐方式?在复位后,ARM处理器处于何种模式、何种状态?试画出ARM7 3级流水线3条指令执行示意图,并用PC指出相应地址。当发生数据访问异常时,ARM处理器在处理异常之前使用哪个寄存器保存CPSR?105课件

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!