- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ARM处理器体系结构讲义
ARM微处理器体系结构-第一部分;1 数据类型;2 ARM微处理器的工作状态 ;ARM处理器在两种工作状态之间可以切换: 进入Thumb状态。 当操作数寄存器的状态位(位[0])为1时,执行BX指令进入Thumb状态。如果处理器在Thumb状态进入异常,则当异常处理(IRQ、FIQ、Undef、Abort 和 SWI)返回时,自动转换到Thumb状态。 进入ARM状态。 当操作数寄存器的状态位(位[0])为0时,执行BX指令进入ARM状态。处理器进行异常处理(IRQ、FIQ、Reset、Undef、Abort 和 SWI ARM状态执行)。在此情况下,把PC 放人异常模式链接寄存器中。从异常向量地址开始执行也可以进入ARM状态。;3 ARM体系结构的存储器格式 ;◆ 大端格式:字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中。; ◆ 小端格式:与大端存储格式相反,在小端存储格式中,低地址中存放的是字数据的低字节,高地址存放的是字数据的高字节。;4 处理器模式 ;ARM微处理器的运行模式可以通过软件改变,也可以通过外部中断或异常处理改变。 大多数的应用程序运行在用户模式下,当处理器运行在用户模式下时,某些被保护的系统资源是不能被访问的。 除用户模式以外,其余的所有6种模式称为非用户模式或特权模式(Privileged Modes); 其中除去用户模式和系统模式以外的5种又称为异常模式(Exception Modes),常用于处理中断或异常,以及需要访问受保护的系统资源等情况。;处理器启动时的模式转换图;5 寄存器组织;;1. ARM状态下的寄存器组织 (1) 通用寄存器. (2) 寄存器R16 ;(1) 通用寄存器.;② 分组寄存器R8~R14;采用以下记号来区分不同的物理寄存器: R13_mode R14_mode 其中,mode为以下几种模式之一:usr、fiq、irq、svc、abt、und。 寄存器R13在ARM指令中常用作堆栈指针,但这只是一种习惯用法,用户也可使用其他的寄存器作为堆栈指针。而在Thumb指令集中,某些指令强制性的要求使用R13作为堆栈指针。;由于处理器的每种运行模式均有自己独立的物理寄存器R13,在用户应用程序的初始化部分,一般都要初始化每种模式下的R13,使其指向该运行模式的栈空间. 这样,当程序的运行进入异常模式时,可以将需要保护的寄存器放入R13所指向的堆栈,而当???序从异常模式返回时,则从对应的堆栈中恢复,采用这种方式可以保证异常发生后程序的正常执行。;R14也称做子程序连接寄存器(Subroutine Link Register)或连接寄存器LR。 当执行BL子程序调用指令时,R14中得到R15(程序计数器PC)的备份。其他情况下,R14用作通用寄存器。 与之类似,当发生中断或异常时,对应的分组寄存器R14_svc、R14_irq、R14_fiq、R14_abt和R14_und用来保存R15的返回值。;寄存器R14常用于如下的情况: 在每一种运行模式下,都可用R14保存子程序的返回地址,当用BL或BLX指令调用子程序时,将PC的当前值复制给R14,执行完子程序后,又将R14的值复制回PC,即可完成子程序的调用返回。 以上的描述可用指令完成:;执行以下任意一条指令: MOV PC,LR 或 BX LR 在子程序入口处使用以下指令将R14存 入堆栈: STMFD SP! ,{Regs,LR} 对应的,使用以下指令可以完成子程序返回: LDMFD SP! ,{Regs,PC} R14也可作为通用寄存器。;③ 程序计数器PC(R15); R15虽然也可用作通用寄存器,但一般不这么使用,因为对R15的使用有一些特殊的限制,当违反了这些限制时,程序的执行结果是未知的。 由于ARM体系结构采用多级流水线技术,对于ARM指令集而言,PC总是指向当前指令的下两条指令的地址,即PC的值为当前指令的地址值加八个字节。 在ARM状态下,任一时刻可以访问以上所讨论的16个通用寄存器和1~2个状态寄存器。在非用户模式(特权模式) 下,则可访问到特定模式分组寄存器。;(2) 寄存器R16 ;每一种运行模式下又都有一个专用的物理状态寄存器,称为SPSR (Saved Program Status Register,备份的程序状态寄存器),当异常发生时,SPSR用于保存CPSR的当前值,从异常退出时则可由SPSR来恢复CPSR。 由于用户模式和系统模式不属于异常模式,它们没有SPSR,当在这两种模式下访问SPSR时,结果是未知的。;(3) 程序状态寄存器 ;① 条件码标志(Condition Code Flags);② 控制位;T标志位:该位反映处
文档评论(0)