- 1、本文档共37页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
内部寄存器 R14寄存器与子程序调用 程序状态寄存器 简介 ARM异常状态 正常的程序执行流程发生暂时的停止时,称之为异常(如中断) 异常处理前,需保存处理器当前状态,便于程序恢复执行 ARM支持同时多个异常,按固定的优先级先后处理 异常分类 异常类型 含义 复位 当处理器的复位电平有效时,产生复位异常,程序跳转到复位异常处理程序处执行 未定义指令 当处理器或协处理器遇到不能处理的指令时,产生未定义指令异常,可使用该异常机制进行软件仿真 软件中断 执行SWI指令产生,可用于用户模式下的程序调用特权操作指令,可使用该机制实现系统功能调用 指令预取中止 若处理器预取指令的地址不存在,或该地址不允许当前指令访问,存储器会向处理器发出中止信号,但当预取的指令被执行时,才会产生指令预取中止异常 数据中止 若处理器数据访问指令的地址不存在,或该地址不允许当前指令访问时,产生数据中止异常 外部中断请求 当处理器的外部中断请求引脚有效,且CPSR的I位为0时,产生外部中断异常,系统外设可通过该异常请求中断服务 快速中断请求 当处理器的快速中断请求引脚有效,且CPSR中的F位为0时, 产生快速中断异常 异常响应 1.下一指令的地址存入相应连接寄存器LR 2.将CPSR复制到相应的SPSR中 3.根据异常类型,强制设置CPSR的运行模式位 4.强制PC从相关的异常向量地址取下一条指令执行,从而跳转到相应的异常处理程序处 异常返回 1.将连接寄存器LR的值减去相应的偏移量后送到PC中 2.将SPSR复制回CPSR 3.若进入异常处理时设置了中断禁止位,要在此清除 恢复修改过的用户寄存器 中断向量表 中断向量表中指定了各异常中断与其处理程序的对应关系 。 每个异常中断对应的中断向量表的4个字节的空间中存放一个跳转指令或者一个向PC寄存器中赋值的数据访问指令 。 存储器的前8个字中除了地址0外,全部被用作异常矢量地址 。 地址 异常类型 进入时的模式 进入时I的状态 进入时F的状态 0复位 管理 禁止 禁止 0未定义指令 未定义 I F 0软件中断 管理 禁止 F 0x0000000C 中止(预取) 中止 I F 0中止(数据) 中止 I F 0保留 保留 — — 0IRQ 中断 禁止 F 0x0000001C FIQ 快中断 禁止 禁止 了解ARM微处理器的基本工作原理,和一些程序设计相关的基本技术细节,为以后的程序设计打下基础 * 执行32位的ARM指令时,工作在ARM状态,执行16位的Thumb指令时工作在Thumb状态 Jazelle状态,执行Java字节码需ARM和SUN公司的额外许可软件 * 操作数状态位(位0)为1,执行BX指令,使处理器从ARM状态切换到Thumb状态 Thumb状态下执行异常,异常返回后自动切换回Thumb状态 操作数状态位为0,执行BX指令,使处理器从Thumb状态切换到ARM状态 执行异常程序时自动切换到ARM状态 * ARM微处理器编程模型 主要内容 ARM微处理器的工作状态 ARM体系结构的存储器格式 ARM微处理器的工作模式 ARM体系结构的寄存器组织 ARM微处理器的异常状态 字(32bit) 半字(16bit) 字节(8bit) ARM微处理器工作状态 ARM状态 32位字对齐的ARM指令 Thumb状态 16位半字对齐的Thumb指令 ARM微处理器工作状态 状态切换 使用BX指令将ARM内核的操作状态在ARM状态和Thumb状态之间进行切换(详见下一部分) ,程序如下所示。 ;从Arm状态切换到Thumb状态 LDR R0,=Lable+1 BX R0 ;从Thumb状态切换到ARM状态 LDR R0,=Lable BX R0 地址最低位为1,表示切换到Thumb状态 地址最低位为0,表示切换到ARM状态 跳转地址标号 ARM体系结构的存储格式 0地址开始线性组合 最大寻址空间4GB 字存储格式:大端格式(Big-Endian) 小端格式(Little-Endian) ARM体系结构的存储格式 大端格式(Big-Endian) 字数据的高字节存储在存储器的低地址中,而字数据的低字节存储在高地址中。 ARM体系结构的存储格式 小端格式(Little-Endian) 字数据的高字节存储在存储器的高地址中,而字数据的低字节存储在低地址中。 ARM处理器工作模式 ARM体系结构支持7种处理器模式,分别为:用户模式、快速中断模式、中断模式、管理模式、
文档评论(0)