- 1、本文档共84页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四章 ARM体系结构 刘玉利 第一节 ARM体系结构概述 一、ARM体系结构特点 1 、采用RISC型处理器结构 2 、 Thumb指令集 3 、多处理器状态模式 4 、嵌入式在线仿真调试 5 、灵活和方便的接口:16个协处理器接口 6 、低电压低功耗的设计 二、ARM处理器结构 1、ARM体系结构 2、ARM的流水线结构 (1)ARM结构的3级流水线:取指、译码、执行 (2)ARM结构的5级流水线:取指、指令译码、执行、数据缓存、写回 3、ARM存储器结构 带有指令缓存和数据缓存,但是不带有片内的ram 和rom,系统所需的ram 和rom都要通过总线连接,系统的寻址范围是4G,有的带有MMU 4、 I/O结构 (1)存储器映射I/O : 把I/O端口地址作为特殊的存储器地址,但是要把它标识为非缓存和非缓冲,通过系统管理调用或C库函数来使用 (2)直接存储器存取DMA (3)中断IRQ和快速中断FIQ 5、ARM AMBA 接口 先进微控制总线架构分为先进高性能总线AHB,先进系统总线ASB 和先进外围总线APB 现在用的是ASB 三、ARM7TDMI内核 (1)名字定义 (2)体系结构图 (3)引脚图 第二节 ARM编程模式 一、数据类型 二、处理器模式 三、处理器工作状态 ARM 32位字对准 THumb 16位半字对准 四、寄存器组织 共有37个寄存器:31个通用寄存器,6个状态寄存器 1 、通用寄存器 2 、程序状态寄存器CPSR 用图表示 五、异常 六、存储器及存储器映射I/O 1 、地址空间 ARM体系结构使用232 个8位字节的单一线性地址空间,将字节地址作为无符号数看待,范围是0~232-1 PC指向正在执行的指令的下两条指令的地址 目的地址=当前指令地址+8+偏移量 指令正常执行的顺序为 目的地址=当前指令地址+4 2、存储器格式 (1)地址空间规则 位于地址A的字包含的字节位于地址A,A+1,A+2和A+3; 位于地址A的半字包含的字节位于地址A和A+1; 位于地址A+2的半字包含的字节位于地址A+2和A+3; 位于地址A的字包含的半字位于地址A和A+2; (2)映射方式 小端存储器系统:在小端格式中,高位数字存放在高位字节中。因此存储器系统字节0连接到数据线7~0(低位对齐)。 大端存储器系统:在大端格式中,高位数字存放在低位字节中。因此存储器系统字节0连接到数据线31~24(高位对齐) 。 举例说明: 3、存储器映射I/O 基于ARM内核的芯片具有许多的外设,这些外设访问的标准方法是使用存储器映射的I/O,为外设的每个寄存器都分配一个地址。通常,从这些地址装载数据用于读入,向这些地址保存数据用于输出。有些地址的装载和保存用于外设的控制功能,而不是输入或输出功能。 第三节 ARM基本寻址方式 1、寄存器寻址 操作数的值在寄存器中,指令中的地址码字段指出的是寄存器编号,指令执行时直接取出寄存器值来操作。寄存器寻址指令举例如下: MOV R1,R2 ;将R2的值存入R1 SUB R0,R1,R2 ;将R1的值减去R2的值,结果保存到R0 2、立即寻址 立即寻址指令中的操作码字段后面的地址码部分即是操作数本身,也就是说,数据就包含在指令当中,取出指令也就取出了可以立即使用的操作数(这样的数称为立即数)。立即寻址指令举例如下: SUBS R0,R0,#1 ;R0减1,结果放入R0,并且影响标志位 MOV R0,#0xFF000 ;将立即数0xFF000装入R0寄存器 3、寄存器移位寻址 寄存器移位寻址是ARM指令集特有的寻址方式。当第2个操作数是寄存器移位方式时,第2个寄存器操作数在与第1个操作数结合之前,选择进行移位操作。 移位操作如下: LSL逻辑左移,空位用0补 LSR逻辑右移,空出高位用0补 ASR算术右移,带符号数,正数用0补,负数用1补 ROR循环右移,低位数据填入高位 RRX扩展为1的循环右移,操作数右移1位,空位用原标志值填充 寄存器移位寻址指令举例如下: MOV R0,R2,LSL #3 ;R2的值左移3位,结果放入R0,即是R0=R2×8 ANDS R1,R1,R2,LSL R3 ;R2的值左移R3位,然后和R1相 "与”操作,结果放入R1 4、寄存器间接寻址 寄存器间接寻址指令中的地址码给出的是一个通用寄存器的编号,所需的操作数保存在寄存器指定地址的存储单元中,即寄存器为操作数的地址指针。寄存器间接寻址指令举例如下:
文档评论(0)