版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、ARM系统结构系统结构报告人:报告人: 2006年年4月月28日日第1页/共36页 ARM内核基本结构 ARM处理器模式 ARM寄存器 ARM指令寻址方式 ARM指令系统 ARM中断与异常第2页/共36页ARM内核内核 ARM架构的处理器内核有ARM7TDMI、ARM8、ARM9TDMI、ARMl0TDMI及StronSARM(5A1)等。ARM 7TDMI是日前低端的ARM核,具合广泛的应用,其最显著的应用为数字移动电话。第3页/共36页ARM7TDMI 方框图方框图ARM7TDMI内核内核TAP 控制器控制器JTAG 接口数据总线控制信号D31:0地址总线A31:0DIN31:0DOUT3
2、1:0BUSSplitterEmbeddedICE逻辑逻辑JTAG(Joint Test Action Group)是)是1985年制定的检测年制定的检测PCB和和IC芯芯片的一个标准,片的一个标准,1990年被修改后成为年被修改后成为IEEE的一个标准,即。通过的一个标准,即。通过这个标准,可对具有这个标准,可对具有JTAG口芯片的硬件电路进行边界扫描和故障口芯片的硬件电路进行边界扫描和故障检测。检测。 JTAG内部有一个内部有一个状态机,成为状态机,成为TAP控制器,控制器,TAP控制控制器的状态机通过器的状态机通过TCK和和TMS进行进行状态的改变,实现状态的改变,实现数据和指令的输入。
3、数据和指令的输入。T : 16位ThumbD : Debug(调试)M : 8位乘法器I: Embedded ICE Logic(实现断点观测及变量观测的逻辑电路部分)中止ARM运行和提供了片内调试功能扫描链0扫描链1扫描链2第4页/共36页ARM7TDMI 内核内核乘法器乘法器指令指令解码解码地址地址自增器自增器nRESETnMREQSEQABORTnIRQnFIQnRWMAS1:0LOCKnCPICPACPBnWAITMCLKnOPCBIGENDISYNCnTRANSnM4:0D31:0桶形桶形移位器移位器32 位位 ALU写数据写数据 寄存器寄存器读数据读数据 寄存器寄存器地址寄存器地址
4、寄存器寄存器寄存器A31:0及及控制控制 逻辑逻辑PC Update解码器解码器指令指令 解码解码IncrementerPCABusBBusALUBus第5页/共36页 用户模式(usr):ARM处理器正常的一般用户程序执行状态 快速中断模式(fiq):用于高速数据传输或通道处理 外部中断模式(irq):用于通常的中断处理 管理模式(svc):操作系统使用的保护模式。系统复位后 ,即进入该模式 指令终止模式(abt):当数据或指令预取失效后进入该模式 未定义模式(und):执行未定义的指令时进入该模式 系统模式(sys):运行具有特权的操作系统任务,如嵌套的中断ARM处理器模式处理器模式第6页
5、/共36页ARM寄存器寄存器 37 寄存器 31 个通用个通用32位寄存器,包括程序计数器位寄存器,包括程序计数器PC 6 个状态寄存器个状态寄存器通用寄存器包括通用寄存器包括R0R15,可以分为三类:,可以分为三类: 未分组寄存器未分组寄存器R0R7 分组寄存器分组寄存器R8R14 程序计数器程序计数器PC(R15)状态寄存器:状态寄存器: CPSR(Current Program Status Register,当前程序状态寄存器,当前程序状态寄存器) SPSR( Saved Program Status Register,备份程序状态寄存器),备份程序状态寄存器)第7页/共36页ARM寄
6、存器寄存器注注:表中用户或系统模式使用的正常寄存器已经被异常模式指定的另一个寄存表中用户或系统模式使用的正常寄存器已经被异常模式指定的另一个寄存器取代器取代, R15(PC)只有一个只有一个!第8页/共36页程序状态保存寄存器程序状态保存寄存器第9页/共36页程序状态保存寄存器程序状态保存寄存器标志位标志位含含 义义 N当用两个补码表示的带符号数进行运算时,当用两个补码表示的带符号数进行运算时,N=1 表示运算的结果为负数;表示运算的结果为负数;N=0 表示运算的结果为正数或零;表示运算的结果为正数或零;ZZ=1 表示运算的结果为零;表示运算的结果为零;Z=0表示运算的结果为非零。表示运算的结
7、果为非零。C可以有可以有4种方法设置种方法设置C的值:的值: 加法运算(包括比较指令加法运算(包括比较指令CMN):当运算结果产生了进位时(无符号数溢):当运算结果产生了进位时(无符号数溢出),出),C=1,否则,否则C=0。 减法运算(包括比较指令减法运算(包括比较指令CMP):当运算时产生了借位(无符号数溢出),):当运算时产生了借位(无符号数溢出),C=0,否则,否则C=1。 对于包含移位操作的非加对于包含移位操作的非加/减运算指令,减运算指令,C为移出值的最后一位。为移出值的最后一位。 对于其他的非加对于其他的非加/减运算指令,减运算指令,C的值通常不改变。的值通常不改变。V可以有可以
8、有2种方法设置种方法设置V的值:的值: 对于加对于加/减法运算指令,当操作数和运算结果为二进制的补码表示的带符号数减法运算指令,当操作数和运算结果为二进制的补码表示的带符号数时,时,V=1表示符号位溢出。表示符号位溢出。 对于其他的非加对于其他的非加/减运算指令,减运算指令,V的值通常不改变。的值通常不改变。第10页/共36页程序状态保存寄存器程序状态保存寄存器 中断禁止位I: I=1 禁止IRQ中断; 中断禁止位F: F=1 禁止FIQ中断。 T标志位:该位反映处理器的运行状态( ARM 状态或者Thumb状态)。 运行模式位M4:0:M0、M1、M2、M3、M4是模式位。这些位决定了处理器
9、的运行模式。 第11页/共36页程序状态保存寄存器程序状态保存寄存器M4:0处理器模式可访问的寄存器0b10000用户模式PC,CPSR,R0-R140b10001FIQ模式PC,CPSR, SPSR_fiq,R14_fiq-R8_fiq, R7R00b10010IRQ模式PC,CPSR, SPSR_irq,R14_irq,R13_irq,R12R00b10011管理模式PC,CPSR, SPSR_svc,R14_svc,R13_svc,R12R0,0b10111中止模式PC,CPSR, SPSR_abt,R14_abt,R13_abt, R12R0,0b11011未定义模式PC,CPSR,
10、SPSR_und,R14_und,R13_und, R12R0,0b11111系统模式PC,CPSR(ARM v4及以上版本), R14R0第12页/共36页ARM指令系统指令系统 ARM 指令集所有的指令都可以被有条件的执行,简称条件执行。在以往的微控制器中,只有条件转移指令或位测试和设置一类的指令是条件指令。但是在ARM 指令集中,操作码的最高四位与CPSR 中的条件码进行比较,如果它们彼此不匹配,指令将不被执行,而是以NOP 指令(无操作)通过流水线。但是在Thumb状态下,仅有分支指令是有条件执行的。 正因为如此,可能会由于执行一条影响了CPSR 中条件码的数据处理指令,下一条指令就会
11、或不会被执行。一般的汇编指令,如MOV 或ADD,可被预置16 个条件助记符,它们定义了被测试的条件码状态:第13页/共36页ARM指令系统指令系统条件码助记符后缀标 志含 义0EQZ置位相等1NEZ清零不相等10CSC置位无符号数大于或等于11CCC清零无符号数小于100MIN置位负数101PLN清零正数或零110VSV置位溢出111VCV清零未溢出1000HIC置位Z清零无符号数大于1001LSC清零Z置位无符号数小于或等于1010GEN等于V带符号数大于或等于1011LTN不等于V带符号数小于1100GTZ清零且(N等于V)带符号数大于1101LEZ置位或(N不等于V)带符号数小于或等于
12、1110AL 忽略无条件执行NV 该指令从不执行 ARM V3 之前未定义 该指令执行结果不可预知 ARM V3 及ARM V4AL 该指令无条件执行 ARM V5即以上版本 第14页/共36页ARM指令编码格式指令编码格式说明Cond指令执行的条件编码指令执行的条件编码Opcode指令操作符编码指令操作符编码S决定指令的操作是否影响决定指令的操作是否影响CPSR的值的值Rd操作目标寄存器编码操作目标寄存器编码Rn包含第一操作数的寄存器编码包含第一操作数的寄存器编码Shifter_operand表示第二操作数表示第二操作数 31 28 27 25 24 21 20 19 16 15 12 11
13、 8 7 0cond001opcodesRnRdShifter_operand第15页/共36页ARM指令的寻址方式指令的寻址方式立即寻址立即寻址 ADDR0,R0,1;R0R01 寄存器寻址寄存器寻址 ADDR0,R1,R2;R0R1R2寄存器间接寻址寄存器间接寻址 ADD R0,R1,R2;R0R1R2基址变址寻址基址变址寻址 LDR R0,R1,4;R0R14多寄存器寻址多寄存器寻址 LDMIA R0,R1,R2,R3,R4;R1R0;R2R04;R3R08;R4R012相对寻址相对寻址BLNEXT 堆栈寻址堆栈寻址 满递增堆栈:堆栈指针指向最后压入的数据,且由低地址向高地址生成。满递增
14、堆栈:堆栈指针指向最后压入的数据,且由低地址向高地址生成。满递减堆栈:堆栈指针指向最后压入的数据,且由高地址向低地址生成。满递减堆栈:堆栈指针指向最后压入的数据,且由高地址向低地址生成。空递增堆栈:堆栈指针指向下一个将要放入数据的空位置,且由低地址向空递增堆栈:堆栈指针指向下一个将要放入数据的空位置,且由低地址向 高地址生成。高地址生成。空递减堆栈:堆栈指针指向下一个将要放入数据的空位置,且由高地址向空递减堆栈:堆栈指针指向下一个将要放入数据的空位置,且由高地址向 低地址生成。低地址生成。以程序计数器PC的当前值为基地址,指令中地址标号为偏移量,相加得有效地址第16页/共36页ARM指令的寻址
15、方式指令的寻址方式数据处理指令的寻址方式数据处理指令的寻址方式MOV R0,#0 xFC0 ; R0 #0 xFC0 MOV R3,R2 ; R3 R2 ,LSL MOV R0, R0,LSL #n ;R0=R0*(2*n),LSL MOV R0,R0,LSL R4 ; R0=R0*(2*R4),LSR MOV R0, R0,LSR #n,LSR MOV R0,R0,LSR R4,ASR MOV R0, R0,ASR #n,ASR MOV R0,R0,ASR R4,ROR MOV R0, R0,ROR #n,ROR MOV R0,R0,ROR R4,RRXMOV R0,R0,RRX R4扩展的
16、循环右移,移出位用C代替移位位数由Rs寄存器的低8位确定每个立即数由一个8位的常数右移偶数位得到第17页/共36页ARM指令的寻址方式指令的寻址方式Load/Store指令的寻址方式指令的寻址方式,#+/-LDR R0,R1,#4 ; R0R1+4, +/- LDR R0,R1,R2 ; R0R1+R2, +/- ,#LDR R0,R1,R2,LSL#2 ; R0R1+R2*(2*2),#+/-!LDR R0,R1,#4 ! ; R0R1+4 ;R1=R1+4, +/- !LDR R0,R1,R2! ; R0R1+R2 ; R1=R1+R2, +/- ,#!LDR R0,R1,R2,LSL#2
17、! ; R0R1+R2*(2*2) ; R1=R1+R2*(2*2),#+/-LDR R0,R1,#4 ; R0R1 ; R1=R1+4, +/- LDR R0,R1,R2 ; R0R1 ; R1=R1+R2, +/- ,#LDR R0,R1,R2,LSL#2 ; R0R1 ; R1=R1+R2*(2*2)事先访问方式(+i)事后访问方式(i+)偏移量第18页/共36页ARM指令系统指令系统 ARM7 可以被设计成大端(big-endian)或者小端(little-endian)处理器,即MSB 位于最高位或者最低位。用户必须确保他们设置了正确的存储格式,否则代码或数据就会颠倒。高低 低高高高
18、 低低第19页/共36页ARM指令系统指令系统 ARM 指令集可以分为十类: 1 跳转指令 2 数据处理指令 3 乘法指令与乘加指令 4 程序状态寄存器访问指令 5 加载/存储指令 6 批量数据加载/存储指令 7 数据交换指令 8 移位指令 9 异常指令 10 协处理器指令第20页/共36页ARM指令系统指令系统(跳转指令)跳转指令用于实现程序流程的跳转,在跳转指令用于实现程序流程的跳转,在ARM程序中程序中有两种方法可以实现程序流程的跳转:有两种方法可以实现程序流程的跳转:1 使用专门的跳转指令。使用专门的跳转指令。2 直接向程序计数器直接向程序计数器PC写入跳转地址值。写入跳转地址值。AR
19、M指令集中的跳转指令可以完成从当前指令向前指令集中的跳转指令可以完成从当前指令向前或向后的或向后的32MB的地址空间的跳转,包括以下的地址空间的跳转,包括以下4条指条指令:令: B跳转指令跳转指令 BL带返回的跳转指令带返回的跳转指令BLX带返回和状态切换的跳转指令带返回和状态切换的跳转指令BX带状态切换的跳转指令带状态切换的跳转指令第21页/共36页ARM指令系统指令系统(数据处理数据处理)数据处理指令包括:MOV数据传送指令MVN数据取反传送指令CMP比较指令CMN反值比较指令TST位测试指令TEQ相等测试指令ADD加法指令ADC带进位加法指令SUB减法指令SBC带借位减法指令RSB逆向减
20、法指令RSC带借位的逆向减法指令AND逻辑与指令ORR逻辑或指令EOR逻辑异或指令BIC位清除指令RSB R1,R2,R3;R1R3-R2第22页/共36页ARM指令系统指令系统(乘法指令与乘加指令乘法指令与乘加指令)乘法指令与乘加指令共有以下6条:MUL32位乘法指令MLA32位乘加指令SMULL64位有符号数乘法指令SMLAL64位有符号数乘加指令UMULL64位无符号数乘法指令UMLAL64位无符号数乘加指令第23页/共36页ARM指令系统指令系统(程序状态寄存器访问指令 ) ARM微处理器支持程序状态寄存器访问指令,用于在程序状态寄存器和通用寄存器之间传送数据,程序状态寄存器访问指令包
21、括以下两条: MRS 程序状态寄存器到通用寄存器的数据传送指令 MSR 通用寄存器到程序状态寄存器的数据传送指令第24页/共36页ARM指令系统指令系统(加载加载/存储指令存储指令 ) 常用的加载存储指令如下: LDR 字数据加载指令 LDRB 字节数据加载指令 LDRH 半字数据加载指令 STR 字数据存储指令 STRB 字节数据存储指令 STRH 半字数据存储指令ARM指令系统指令系统由内存到寄存器的读取由寄存器到内存的保存第25页/共36页 ARM微处理器所支持批量数据加载/存储指令可以一次在一片连续的存储器单元和多个寄存器之间传送数据,批量加载指令用于将一片连续的存储器中的数据传送到多
22、个寄存器,批量数据存储指令则完成相反的操作。常用的加载存储指令如下: LDM批量数据加载指令 STM批量数据存储指令ARM指令系统指令系统(批量数据加载/存储指令)第26页/共36页 ARM微处理器所支持数据交换指令能在存储器和寄存器之间交换数据。数据交换指令有如下两条: SWP 字数据交换指令 SWPB 字节数据交换指令ARM指令系统指令系统(数据交换指令)第27页/共36页ARM指令系统指令系统(移位指令 ) 移位操作包括如下6种类型,ASL和LSL是等价的,可以自由互换: LSL 逻辑左移 ASL 算术左移 LSR 逻辑右移 ASR 算术右移 ROR 循环右移 RRX 带扩展的循环右移第
23、28页/共36页ARM指令系统指令系统(异常指令异常指令) ARM微处理器所支持的异常指令有如下两条:SWI 软件中断指令 BKPT 断点中断指令第29页/共36页ARM指令系统指令系统(协处理器指令) ARM协处理器指令包括以下5条: CDP 协处理器数操作指令 LDC协处理器数据加载指令 STC协处理器数据存储指令 MCRARM处理器寄存器到协处理器寄存器的数 据传送指令 MRC协处理器寄存器到ARM处理器寄存器的数据传送指令第30页/共36页ARM中断与异常中断与异常中断名称含义复位复位系统加电,系统复位系统加电,系统复位未定义指令未定义指令当当ARM处理器或者协处理认为当前指令未定义处
24、理器或者协处理认为当前指令未定义软件中断软件中断用户定义的中断指令,可用于用户模式下程序调用特权操用户定义的中断指令,可用于用户模式下程序调用特权操作指令。在作指令。在RTOS中可以通过该机制实现系统功能调用中可以通过该机制实现系统功能调用指令预取中止指令预取中止处理器预取指令地址不存在,或者该地址不允许当前指令处理器预取指令地址不存在,或者该地址不允许当前指令访问访问数据访问中止数据访问中止数据访问指令目标地址不存在,或者该地址不允许当前指数据访问指令目标地址不存在,或者该地址不允许当前指令访问令访问外部中断请求外部中断请求处理器的外部中断请求有效处理器的外部中断请求有效快速中断请求快速中断
25、请求处理器的外部快速请求中断有效处理器的外部快速请求中断有效第31页/共36页ARM中断与异常中断与异常异常类型异常类型向量地址向量地址优先级优先级复位复位0 x000000001未定义的指令未定义的指令0 x000000046软件中断软件中断0 x000000086指令预取中止指令预取中止0 x0000000C5数据访问中止数据访问中止0 x000000102保留保留0 x00000014未使用未使用外部中断请求外部中断请求0 x000000184快速中断请求快速中断请求0 x0000001C3续表:续表:第32页/共36页ARM中断与异常中断与异常当一个异常发生时,当一个异常发生时,ARM处理器按照如下步骤操作:处理器按照如下步骤操作:1)保存处理器当前状态、中断屏蔽位以及)保存处理器当前状态、中断屏蔽位以及各条件标志位。通过将各条件标志位。通过将CPSR中的内容复制到中的内容复制到SPSR中来实现。中来实现。2)设置当前状态寄存器)设置当前状态寄存器CPSR中相应的位。中相应的位。3)将寄存器)将寄存器LR_mode设置成返回地址。设置成返回地址。4)将程序计数值)将程序计数值
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年新疆城管执法应急管理专员招聘考试练习试卷【含答案】
- 2024高三学期语文教学工作计划(精-选5篇)
- 2024年中秋、国庆假期致全市家长的一封信
- 2026年江苏省初中物理上册第7章热学知识梳理课件
- 超全图形智力测试题目与答案
- 广告定义试题及答案 高中生专属内容
- 中职语文部编高教版(2025)职业模块一活动策划教案
- 浙教版科学七下4.7 探索宇宙 教学设计实录
- 2026年国防教育课程教学策略课件
- 小学数学沪教版(五四制)三年级下册平方分米教案
- 第三章流体-固体颗粒间的运动和流态化
- 大学化学第04章-能源化学基础课件
- 自然灾害对基础设施的风险评估
- 钢结构施工合同范本
- 新型降糖药物的临床应用
- 第1.2课《风景谈》(教案)-【中职专用】2023-2024学年高一语文随堂同步名师课堂(高教版2023·基础模块上册)
- 物业突发事件应急处理培训
- 质量管理部门安全生产责任制模版
- 儿童肥胖健康宣教
- 23S519 小型排水构筑物(带书签)
- 《销售管理实务》(李宁)011-5 教案 第2课 熟悉销售人员必备的职业素养
评论
0/150
提交评论