ARM处理器编程基础ppt课件_第1页
ARM处理器编程基础ppt课件_第2页
ARM处理器编程基础ppt课件_第3页
ARM处理器编程基础ppt课件_第4页
ARM处理器编程基础ppt课件_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

嵌入式微控制器编程EmbeddedMicrocontrollerProgramming 艾云峰aiyunfeng CollegeofComputing CommunicationEngineering 1 2020 4 25 CCCE GUCAS 2 内容大纲 一 Arm处理器编程基础SOURCE ARMArchitectureReferenceManual ChapterA3 2020 4 25 CCCE GUCAS 3 Arm处理器编程基础 1 数据类型2 ARM微处理器的工作状态3 ARM处理器工作模式4 寄存器组织5 异常 Exceptions 6 ARM体系结构的存储器格式 2020 4 25 CCCE GUCAS 4 数据类型 字 Word 在ARM体系结构中 字的长度为32位 其它8位 16位处理器体系结构中 字的长度一般为16位半字 Half Word 在ARM体系结构中 半字的长度为16位 与8位 16位处理器体系结构中字的长度一致字节 Byte 在ARM体系结构和8位 2020 4 25 CCCE GUCAS 5 ARM微处理器工作状态 ARM微处理器的工作状态一般有两种 并可在两种状态之间切换第一种为ARM状态 此时处理器执行32位的字对齐的ARM指令 第二种为Thumb状态 此时处理器执行16位的 半字对齐的Thumb指令 2020 4 25 CCCE GUCAS 6 ARM处理器工作模式 1 ARM有7个基本工作模式 User 非特权模式 大部分任务执行在这种模式正常程序执行的模式FIQ 当一个高优先级 fast 中断产生时将会进入这种模式高速数据传输和通道处理IRQ 当一个低优先级 normal 中断产生时将会进入这种模式通常的中断处理Supervisor 当复位或软中断指令执行时将会进入这种模式供操作系统使用的一种保护模式Abort 当存取异常时将会进入这种模式虚拟存储及存储保护Undef 当执行未定义指令时会进入这种模式软件仿真硬件协处理器System 使用和User模式相同寄存器集的特权模式特权级的操作系统任务 异常模式 Exception 特权模式 Privilige 2020 4 25 CCCE GUCAS 7 ARM处理器工作模式 2 处理器工作模式的切换方法通过软件控制进行切换通过外部中断进行切换通过异常处理进行切换用户模式的特点大多数应用程序运行在用户模式下应用程序不能访问受操作系统保护的系统资源不能通过软件控制的方式进行模式切换可通过产生异常处理来切换处理器工作模式 2020 4 25 CCCE GUCAS 8 ARM处理器工作模式 3 异常模式的作用特点当应用程序发生异常中断时 处理器进入相应的异常模式在每一种异常模式中都有一组寄存器 供相应的异常处理程序使用 这样可以保证进入异常模式时 用户模式下的寄存器 保存了程序运行状态 不被破坏系统模式的特点属于特权模式 主要供操作系统的任务使用 可以直接进行处理器切换操作系统任务需要访问所有系统资源 使用用户模式下的寄存器而不是异常模式下的寄存器 可保证异常中断发生时任务状态不被破坏 2020 4 25 CCCE GUCAS 9 ARM寄存器组织 1 2020 4 25 CCCE GUCAS 10 ARM寄存器组织 2 ARM有37个32 Bits长的寄存器 其中包括 31个通用寄存器 包括1个程序计数器PC programcounter 6个状态寄存器 包括1个用作CPSR currentprogramstatusregister 5个用作SPSR savedprogramstatusregisters 在每一种处理器模式下 有一组相应的寄存器组 任意时刻 可见的寄存器包括 相应的r0 r12子集相应的r13 thestackpointer sp andr14 thelinkregister lr 相应的r15 theprogramcounter pc 相应的CPSR currentprogramstatusregister cpsr 特权模式下 除system模式 还可以存取 相应的spsr savedprogramstatusregister 2020 4 25 CCCE GUCAS 11 通用寄存器 通用寄存器包括R0 R15 可以分为三类 未备份寄存器R0 R7 备份寄存器R8 R14程序计数器PC R15 2020 4 25 CCCE GUCAS 12 通用寄存器 未备份寄存器 对于每一个未备份寄存器来说 在所有处理器模式下指的都是同一个物理寄存器 未备份寄存器没有被系统用于特别的用途 任何可采用通用寄存器的应用场合都可以使用未备份寄存器 2020 4 25 CCCE GUCAS 13 通用寄存器 备份寄存器 对于备份寄存器R8 R12而言 每个寄存器对应两个不同的物理寄存器 在快速中断模式下使用寄存器R8 R12 和在其它模式下使用这些寄存器时 使用的是不同的物理寄存器 对于备份寄存器R13和R14而言 每个寄存器对应6个不同的物理寄存器 其中一个是用户模式和系统模式公用的 另外5个对应于其它5种处理器模式 2020 4 25 CCCE GUCAS 14 通用寄存器 备份寄存器 寄存器R13在ARM指令中常用作堆栈指针 每一种异常模式拥有自己的物理R13 当进入异常模式时 可以将需要使用的寄存器保存在R13所指的栈中 当退出异常模式时 将保存在R13所指的栈中的寄存器弹出 从而使异常处理器程序不会破坏其中断程序的运行现场 2020 4 25 CCCE GUCAS 15 通用寄存器 备份寄存器 R14也称作子程序连接寄存器 SubroutineLinkRegister 或连接寄存器LR 在ARM体系中具有下面两种特殊的作用 每一种处理器模式自己的物理R14存放当前子程序的返回地址 当通过BL或BLX指令调用子程序时 R14被设置成该子程序的返回地址 在子程序中 当把R14的值复制到PC时 子程序返回 实现子程序返回的两种操作 执行下面任何一条指令 MOVPC LRBXLR当异常发生时 该异常模式特定的物理R14被设置成该异常模式将要返回的地址 2020 4 25 CCCE GUCAS 16 通用寄存器 程序计数器 寄存器R15用作程序计数器 PC 由于ARM体系结构采用了多级流水线技术 对于ARM指令集而言 当正确读取了PC的值时 该值为当前指令地址值加8 也即是说 PC指向当前指令的下两条指令的地址 2020 4 25 CCCE GUCAS 17 程序状态寄存器 1 寄存器R16寄存器R16用作CPSR CurrentProgramStatusRegister 当前程序状态寄存器 CPSR可在任何运行模式下被访问 它包括条件标志位 中断禁止位 当前处理器模式标志位 以及其他一些相关的控制和状态位每一种运行模式下又都有一个专用的物理状态寄存器 称为SPSR SavedProgramStatusRegister 备份的程序状态寄存器 当异常发生时 SPSR用于保存CPSR的当前值 从异常退出时则可由SPSR来恢复CPSR 2020 4 25 CCCE GUCAS 18 程序状态寄存器 2 2020 4 25 CCCE GUCAS 19 程序状态寄存器 3 2020 4 25 CCCE GUCAS 20 程序状态寄存器 4 运行模式位M 4 0 2020 4 25 CCCE GUCAS 21 异常 Exceptions Exceptionsaregeneratedbyinternalandexternalsourcestocasusetheprocessortohandleanevent suchasanexternallygeneratedinterruptorattempttoexecuteanundefinedinstruction Theprocessorstatejustbeforehandlingtheexceptionmustbepreservedsothattheoriginalprogramcanberesumedwhentheexceptionroutinehascompleted Morethanoneexceptioncanariseatthesametime 2020 4 25 CCCE GUCAS 22 Arm体系结构的异常种类 2020 4 25 CCCE GUCAS 23 异常处理模式及异常向量地址 2020 4 25 CCCE GUCAS 24 微处理器对异常的响应 ARM微处理器对异常的响应过程用伪码可以描述为 R14 ReturnLinkSPSR CPSRCPSR 4 0 ExceptionModeNumberCPSR 5 0 当运行于ARM工作状态时If ResetorFIQthen 当响应FIQ异常时 禁止新的FIQ异常CPSR 6 1 否则 禁止IRQ中断 CPSR 7 1PC ExceptionVectorAddress 2020 4 25 CCCE GUCAS 25 从异常处理程序中返回 异常处理完毕之后 应编写程序执行以下几步操作从异常处理程序中返回 1 将SPSR复制回CPSR中 2 将连接寄存器LR的值减去相应的偏移量后送到PC中 可以认为应用程序总是从复位异常处理程序开始执行的 因此复位异常处理程序不需要返回 2020 4 25 CCCE GUCAS 26 异常的优先级 优先级异常1 最高 复位2数据中止3FIQ4IRQ5预取中止6未定义指令 SWI 2020 4 25 CCCE GUCAS 27 中断总结 Arm的异常中断 中断向量表 中断处理 中断引起的工作模式的改变 中断的作用 IRQ引脚 FIQ引脚 Reset引脚 devices devices Reset按键 内部指令执行 中断模块 未定义指令 SWI指令 指令预取中止 数据预取中止 复位中断 1 未定义指令 6 软件中断 6 指令预取中止 5 数据访问中止 2 IRQ 4 FIQ 3 PC CPU 0 x0 0 x4 0 x8 0 xc 0 x10 0 x14 0 x18 0 x1c 中断向量 地址 LdrPC ResetHandler LdrPC UndeftHandler LdrPC SWIHandler LdrPC InstrHandler LdrPC DataHandler 保留 LdrPC IRQHandler LdrPC FIQHandler 中断处理 设置异常模式 Flash 2020 4 25 CCCE GUCAS 28 ARM体系中的存储空间 ARM体系使用单一的平板地址空间 该地址空间的大小为2 32个8位字节 这些字节单元的地址是一个无符号的32位数值 其取值范围是0 2 32 1 ARM地址空间也可以看作是2 30个32位的字单元 这些字单元的地址可以被4整除 地址为A的字数据包括地址为A A

温馨提示

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

评论

0/150

提交评论