ARM处理器编程基础PPT优秀课件

上传人:ni****g 文档编号:567616131 上传时间:2024-07-21 格式:PPT 页数:31 大小:1.84MB
返回 下载 相关 举报
ARM处理器编程基础PPT优秀课件_第1页
第1页 / 共31页
ARM处理器编程基础PPT优秀课件_第2页
第2页 / 共31页
ARM处理器编程基础PPT优秀课件_第3页
第3页 / 共31页
ARM处理器编程基础PPT优秀课件_第4页
第4页 / 共31页
ARM处理器编程基础PPT优秀课件_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《ARM处理器编程基础PPT优秀课件》由会员分享,可在线阅读,更多相关《ARM处理器编程基础PPT优秀课件(31页珍藏版)》请在金锄头文库上搜索。

1、嵌入式微控制器编程Embedded Microcontroller Programming艾云峰College of Computing & Communication Engineering7/21/20241内容大纲一、 Arm处理器编程基础 SOURCE: ARM Architecture Reference Manual, Chapter A37/21/20242Arm处理器编程基础1.数据类型 2.ARM 微处理器的工作状态 3.ARM处理器工作模式 4.寄存器组织 5.异常(Exceptions) 6.ARM 体系结构的存储器格式 7/21/20243数据类型字(Word) 在AR

2、M体系结构中,字的长度为32位,其它8位/16位处理器体系结构中,字的长度一般为16位 半字(Half-Word) 在ARM体系结构中,半字的长度为16位,与8位/16位处理器体系结构中字的长度一致 字节(Byte) 在ARM体系结构和8位7/21/20244ARM 微处理器工作状态ARM微处理器的工作状态一般有两种,并可在两种状态之间切换 第一种为ARM状态,此时处理器执行32位的字对齐的ARM指令;第二种为Thumb状态,此时处理器执行16位的、半字对齐的Thumb指令7/21/20245ARM处理器工作模式(1) ARM 有7个基本工作模式:UserUser:非特权模式,大部分任务执行在

3、这种模式正常程序执行的模式FIQFIQ:当一个高优先级(fast)中断产生时将会进入这种模式高速数据传输和通道处理IRQIRQ:当一个低优先级(normal)中断产生时将会进入这种模式通常的中断处理SupervisorSupervisor:当复位或软中断指令执行时将会进入这种模式供操作系统使用的一种保护模式AbortAbort: 当存取异常时将会进入这种模式虚拟存储及存储保护UndefUndef: 当执行未定义指令时会进入这种模式软件仿真硬件协处理器SystemSystem: 使用和User模式相同寄存器集的特权模式特权级的操作系统任务异异常常模模式式(Exception)特特权权模模式式(P

4、rivilige)7/21/20246ARM处理器工作模式(2)处理器工作模式的切换方法通过软件控制进行切换通过外部中断进行切换通过异常处理进行切换用户模式的特点大多数应用程序运行在用户模式下应用程序不能访问受操作系统保护的系统资源不能通过软件控制的方式进行模式切换可通过产生异常处理来切换处理器工作模式7/21/20247ARM处理器工作模式(3)异常模式的作用特点当应用程序发生异常中断时,处理器进入相应的异常模式在每一种异常模式中都有一组寄存器,供相应的异常处理程序使用。这样可以保证进入异常模式时,用户模式下的寄存器(保存了程序运行状态)不被破坏系统模式的特点属于特权模式,主要供操作系统的任

5、务使用,可以直接进行处理器切换操作系统任务需要访问所有系统资源,使用用户模式下的寄存器而不是异常模式下的寄存器,可保证异常中断发生时任务状态不被破坏7/21/20248ARM寄存器组织(1)7/21/20249ARM寄存器组织(2)ARM 有37个32-Bits长的寄存器,其中包括:31 个通用寄存器个通用寄存器,包括1 个程序计数器PC( program counter)6个状态寄存器个状态寄存器,包括1个用作CPSR(current program status register)5个用作SPSR(saved program status registers)在每一种处理器模式下,有一组相

6、应的寄存器组。任意时刻,可见的寄存器包括:相应的r0-r12子集相应的 r13 (the stack pointer, sp) and r14 (the link register, lr)相应的 r15 ( the program counter, pc)相应的CPSR(current program status register, cpsr)特权模式 下(除system模式) 还可以存取;相应的 spsr (saved program status register)7/21/202410通用寄存器通用寄存器包括R0R15,可以分为三类:未备份寄存器R0R7;备份寄存器R8R14程序计数

7、器PC(R15) 7/21/202411通用寄存器未备份寄存器对于每一个未备份寄存器来说,在所有处理器模式下指的都是同一个物理寄存器,未备份寄存器没有被系统用于特别的用途,任何可采用通用寄存器的应用场合都可以使用未备份寄存器7/21/202412通用寄存器 备份寄存器对于备份寄存器R8R12而言,每个寄存器对应两个不同的物理寄存器。在快速中断模式下使用寄存器R8R12,和在其它模式下使用这些寄存器时,使用的是不同的物理寄存器。对于备份寄存器R13和R14而言,每个寄存器对应6个不同的物理寄存器,其中一个是用户模式和系统模式公用的;另外5个对应于其它5种处理器模式。7/21/202413通用寄存

8、器 备份寄存器寄存器R13在ARM指令中常用作堆栈指针。每一种异常模式拥有自己的物理R13,当进入异常模式时,可以将需要使用的寄存器保存在R13所指的栈中;当退出异常模式时,将保存在R13所指的栈中的寄存器弹出,从而使异常处理器程序不会破坏其中断程序的运行现场。 7/21/202414通用寄存器 备份寄存器R14也称作子程序连接寄存器(Subroutine Link Register)或连接寄存器LR,在ARM体系中具有下面两种特殊的作用:每一种处理器模式自己的物理R14存放当前子程序的返回地址。当通过BL或BLX指令调用子程序时,R14被设置成该子程序的返回地址。在子程序中,当把R14的值复

9、制到PC时,子程序返回。实现子程序返回的两种操作:执行下面任何一条指令:nMOV PC,LRnBX LR当异常发生时,该异常模式特定的物理R14被设置成该异常模式将要返回的地址。7/21/202415通用寄存器 程序计数器寄存器R15用作程序计数器(PC) 由于ARM 体系结构采用了多级流水线技术,对于ARM 指令集而言,当正确读取了PC的值时,该值为当前指指令地址值加令地址值加8,也即是说,也即是说,PC指向当前指令的下两条指向当前指令的下两条指令的地址指令的地址。7/21/202416程序状态寄存器(1)寄存器R16寄存器R16用作CPSR(Current Program Status R

10、egister,当前程序状态寄存器),CPSR可在任何运行模式下被访问,它包括条件标志位、中断禁止位、当前处理器模式标志位,以及其他一些相关的控制和状态位每一种运行模式下又都有一个专用的物理状态寄存器,称为SPSR(Saved ProgramStatus Register,备份的程序状态寄存器),当异常发生时,SPSR用于保存CPSR的当前值,从异常退出时则可由SPSR来恢复CPSR 7/21/202417程序状态寄存器(2)7/21/202418程序状态寄存器(3)7/21/202419程序状态寄存器(4) -运行模式位M4:07/21/202420异常(Exceptions)Excepti

11、ons are generated by internal and external sources to casuse the processor to handle an event, such as an externally generated interrupt or attempt to execute an undefined instruction.The processor state just before handling the exception must be preserved so that the original program can be resumed

12、 when the exception routine has completed.More than one exception can arise at the same time.7/21/202421Arm体系结构的异常种类7/21/202422异常处理模式及异常向量地址7/21/202423微处理器对异常的响应ARM微处理器对异常的响应过程用伪码可以描述为:R14_ = Return LinkSPSR_ = CPSRCPSR4:0 = Exception Mode NumberCPSR5 = 0 ;当运行于ARM 工作状态时If = Reset or FIQ then;当响应FIQ

13、异常时,禁止新的FIQ 异常CPSR6 = 1 /*否则,禁止IRQ中断*/CPSR7 = 1PC = Exception Vector Address7/21/202424从异常处理程序中返回从异常处理程序中返回异常处理完毕之后,应编写程序执行以下几步操作从异常处理程序中返回:1. 将SPSR复制回CPSR中。2. 将连接寄存器LR的值减去相应的偏移量后送到PC中。可以认为应用程序总是从复位异常处理程序开始执行的,因此复位异常处理程序不需要返回7/21/202425异常的优先级优先级异常1(最高)复位2数据中止3FIQ4IRQ5预取中止6未定义指令,SWI7/21/202426中断总结Arm

14、的异常中断、中断向量表、中断处理、中断引起的工作模式的改变、中断的作用。IRQ引脚FIQ引脚Reset引脚devicesdevicesReset按键内部指令执行中断模块未定义指令SWI指令指令预取中止数据预取中止复位中断(1)未定义指令(6)软件中断(6)指令预取中止(5)数据访问中止(2)IRQ(4)FIQ(3)PCCPU0x00x40x80xc0x100x140x180x1c中断向量地址Ldr PC, =ResetHandlerLdr PC, =UndeftHandlerLdr PC, =SWIHandlerLdr PC, =InstrHandlerLdr PC, =DataHandler

15、保留Ldr PC, =IRQHandlerLdr PC, =FIQHandler中断处理设置异常模式Flash7/21/202427ARM体系中的存储空间ARM体系使用单一的平板地址空间平板地址空间。该地址空间的大小为232个8位字节。这些字节单元的地址是一个无符号的32位数值,其取值范围是0232-1。ARM地址空间也可以看作是230个32位的字单元。这些字单元的地址可以被4整除。地址为A的字数据包括地址为A、A+1、A+2、A+3等4个字节单元的内容。在ARM版本4及以上的版本中,ARM的地址空间也可以看作是231个16位的半字单元。这些半字单元的地址可以被2整除。地址为A的半字数据包括地址为A、A+1等2个字节单元的内容。7/21/202428Arm存储器格式ARM体系结构将存储器看作是从零地址开始的字节的线性组合 ARM体系结构可以用两种方法存储字数据,称之为大端格式和小端格式7/21/202429Any Questions?7/21/202430个人观点供参考,欢迎讨论

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号