网站大量收购独家精品文档,联系QQ:2885784924

嵌入式01ARM微处理器概述和编程模型.pptVIP

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

未分组寄存器R0~R7在所有的运行模式下,未分组寄存器都指向同一个物理寄存器,在中断或异常处理进行模式转换时,可能会造成寄存器中数据的破坏。分组寄存器R8~R12当使用除fiq模式以外的其他模式时,访问寄存器R8_usr~R12_usr。当使用fiq模式时,访问寄存器R8_fiq~R12_fiq;R8~R12:每个寄存器对应两个不同的物理寄存器R13_modeR13、R14:每个寄存器对应6个不同的物理寄存器1个是用户模式与系统模式共用其它5个对应于其他5种模式采用以下的记号来区分不同的物理寄存器:R14_modemode为以下几种之一:usr、fiq、irq、svc、abt、und。分组寄存器R13~R14R13在ARM指令中常用作堆栈指针,但这只是一种习惯用法,用户也可使用其他的寄存器作为堆栈指针。12由于处理器的每种运行模式均有自己独立的物理寄存器R13,在初始化部分,都要初始化每种模式下的R13,这样,当程序的运行进入异常模式时,可以将需要保护的寄存器放入R13所指向的堆栈,而当程序从异常模式返回时,则从对应的堆栈中恢复。3在Thumb指令集中,某些指令强制性的要求使用R13作为堆栈指针。堆栈指针—R13子程序链接寄存器—R14当执行BL子程序调用指令时,R14得到R15(PC)的备份。其他情况下,R14用作通用寄存器。当异常或中断发生时,相应的分组寄存器R14用于保存PC的返回值。BL SUB1……/*将R14存入堆栈*/SUB1:STMFDSP!,{regs,LR}……/*完成子程序返回*/LDMFDSP!,{regs,PC}01子程序链接寄存器—R1402ARM状态下,位[1:0]为0,位[31:2]用于保存PC;01Thumb状态下,位[0]为0,位[31:1]用于保存PC;02程序计数器R15(PC)程序状态寄存器(CPSR/SPSR)R16用作CPSR(当前程序状态寄存器),包含条件标志位、中断禁止位、当前处理器模式标志位。每一种运行模式下有1个专用的SPSR(备份程序状态寄存器),异常发生时,SPSR用于保存CPSR的值,从异常退出时由SPSR来恢复CPSR。Thumb状态下的寄存器组织01直接访问8个通用寄存器(R7~R0)、程序计数器(PC)01堆栈指针(SP)、连接寄存器(LR)和CPSR。每种特权模式下都有1组SP、LR和SPSR。01R0~R7独立01CPSR和SPSR独立SP、LR和PC相同02ARM与THUMB状态寄存器关系程序状态寄存器控制中断的允许和禁止设置处理器的运行模式保存ALU当前操作的信息ARM体系结构包含1个当前程序状态寄存器(CPSR)和5个备份程序状态寄存器(SPSR)。程序状态寄存器程序状态寄存器的条件码标志在Thumb状态下,分支指令是有条件执行的。在ARM状态下,所有指令都是有条件执行的。N、Z、C、V均为条件码标志位,可被算术或逻辑运算改变,并可用于测试来决定某条指令是否执行。影响标志位的指令标志位含义N当用两个补码表示的带符号数进行运算时,N=1表示运算的结果为负数;N=0表示运算的结果为正数或零;ZZ=1表示运算的结果为零;Z=0表示运算的结果为非零;C─加法运算(包括比较指令CMN):当运算结果产生了进位时(无符号数溢出),C=1,否则C=0。─减法运算(包括比较指令CMP):当运算时产生了借位(无符号数溢出),C=0,否则C=1。─对于包含移位操作的指令,C为移出值的最后1位。V─对于加/减法运算指令,当操作数和运算结果为二进制的补码表示的带符号数时,V=1表示符号位溢出。─对于其他的非加/减运算指令,V的值通常不改变。Q在ARMv5及以上版本的E系列处理器中,用Q标志位指示增强的DSP运算指令是否发生了溢出。若异常是从ARM状态进入,LR寄存器中保存的是下一条指令的地址(当前PC+4或PC+8,与异常的类型有关);若异常是从Thumb状态进入,则在LR寄存器中保存当前PC的偏移量,这样,异常处理程序就不需要确定异常是从何种状态进入的。例如:在软件中断异常SWI,指令MOVPC,R14_svc总是返回到下一条指令,不管SWI是在ARM状态执行,还是在Thumb状态执行。0102第二章基于ARM9处理器的硬件开发平台ARM微处理器概述ARM微处理器的编程模型ARM微处理器的指令系统ARM程序设计基础S3C2410体系结构与外设ADS调试软件2.1ARM微处理器概述2.1.1ARM简介2.1

文档评论(0)

wuyoujun92 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档