第3章 Cortex-M体系结构

上传人:资****亨 文档编号:133871004 上传时间:2020-05-31 格式:PPT 页数:75 大小:2.04MB
返回 下载 相关 举报
第3章 Cortex-M体系结构_第1页
第1页 / 共75页
第3章 Cortex-M体系结构_第2页
第2页 / 共75页
第3章 Cortex-M体系结构_第3页
第3页 / 共75页
第3章 Cortex-M体系结构_第4页
第4页 / 共75页
第3章 Cortex-M体系结构_第5页
第5页 / 共75页
点击查看更多>>
资源描述

《第3章 Cortex-M体系结构》由会员分享,可在线阅读,更多相关《第3章 Cortex-M体系结构(75页珍藏版)》请在金锄头文库上搜索。

1、 嵌入式系统原理 许童羽沈阳农业大学信息与电气工程学院电子信息教研室yatongmu 第三章Cortex M体系结构 3 1ARM体系结构概述3 2Cortex M3编程模型3 3基本寻址方式3 4Thumb 2指令集3 5存储器映射3 6中断和异常 3 1ARM体系结构概述 3 1 1RISC技术和流水线技术 1 计算机体系结构冯诺依曼体系结构哈佛体系结构 处理器 存储器 指令 数据 地址总线 数据总线 处理器 存储器 指令 地址总线 数据总线 存储器 数据 地址总线 数据总线 3 1ARM体系结构概述 2 RISC技术CISC 复杂指令集计算机 偏重由硬件执行指令 不断增强指令集的复杂度

2、RISC 精简指令集计算机 简化指令实现的硬件设计 复杂指令由简单指令合成 特点 大量通用寄存器组 Load Store存储器访问 简单寻址模式 固定长度指令格式 采用流水线技术 编译器 处理器 复杂 CISC 处理器 编译器 复杂 RISC 3 1ARM体系结构概述 3 流水线技术处理器在执行指令的同时读取其他指令 三级流水线 读指令 指令译码 执行指令 ADD SUB CMP ADD SUB ADD 周期1 周期2 周期3 ADDR0 R1 R2SUBR3 R4 2CMPR5 R1 五级流水线 3 1ARM体系结构概述 3 1 2ARM体系结构简介 1 ARM公司AdvancedRISCM

3、achines 1990年成立IP IntellectualProperty 供应商设计公司 提供ARM核 合作伙伴生产芯片ARM核 基于ARM体系结构ARM处理器 基于ARM核 3 1ARM体系结构概述 2 ARM体系结构特点RISC型处理器结构 Load Store 硬接线 Thumb指令集 16位指令集 提高代码密度 多处理器状态模式 多种特权模式 提高效率 嵌入式在线仿真模式 ICE ETM灵活和方便的接口 AMBA 便于扩充处理器 I O 低电压低功耗设计 时钟频率 电源电压 翻转次数 采用流水线技术 三级 五级 八级 3 1ARM体系结构概述 3 1 3ARM处理器核 1 ARM体

4、系结构演变1991 2011 7个版本体系结构V1 V7 CortexV1 V3 非商业授权 V4T 商业授权 3 1ARM体系结构概述 2 主要的ARM处理器核ARM7系列 V4T结构 ARM7TDMI ARM720T ARM9系列 V4T结构 ARM920TDMI ARM922T Xscale系列 V5结构 Intel PXA270 ARM11系列 V6结构 ARM1156T2 S Cortex系列 V7结构Cortex A 高端Cortex M 低端Cortex R 实时 3 1ARM体系结构概述 3 ARM7TDMIV4T结构 3级流水线 3 1ARM体系结构概述 4 ARM920T

5、ARM9TDMI cach MMUV4T结构 5级流水线 3 1ARM体系结构概述 5 Cortex M3包括ARMv7 M内核 嵌套向量中断控制器 可裁剪的存储器保护单元 总线接口 调试单元 与ARM7比较 p61 3 1ARM体系结构概述 3 内核特点功耗低 0 19mW MHZ 内核门数少 成本低 33K 1美元 中断延迟短 12个时钟周期 调试成本低 JTAG 嵌套向量中断控制器 1 240个外部中断 128级嵌套 ARMv7 M架构 Thumb 2ISA子集 可裁剪的存储器保护单元 总线接口 3 2Cortex M3编程模型 3 2 1Thumb 2指令集体系结构ARM指令集 32位

6、 Thumb指令集 16位 Thumb 2指令集 16位 32位 可做更复杂操作 省去了Thumb与ARM状态切换 与ARM指令不兼容 v7架构显著特色 硬件除法 非对齐数据访问 Thumb 2 Cortex M3 Thumb 3 2Cortex M3编程模型 3 2 2寄存器 1 通用寄存器R0 R12 低寄存器 高寄存器堆栈指针R13 主SP 进程SP链接寄存器R14 LR程序计数器R15 PC 3 2Cortex M3编程模型 2 特殊功能寄存器程序状态寄存器组 中断屏蔽寄存器组 控制寄存器 APSRIPSREPSR 教材P72 3 2Cortex M3编程模型 3 2 3工作模式和特权

7、级别 1 工作模式 区别普通应用程序代码和异常服务程序代码处理模式 线程模式 2 特权级别 提供一种存储器访问的保护机制特权级 程序可以访问所有存储器空间 执行所有命令 用户级 资源访问受限 3 2Cortex M3编程模型 3 2 4堆栈2个堆栈指针 同时只能使用1个 SP主堆栈指针 MSP 处理模式 线程模式线程堆栈指针 PSP 线程模式复位后 缺省使用MSP 堆栈指针是分组寄存器 在MSP和PSP之间切换 任何时候只有一个是可见的 3 2 5数据类型字 半字 字节 3 2Cortex M3编程模型 3 2 6存储器和存储器映射I O 1 地址空间232个8位字节的单一 线性地址空间 0

8、232 1每个字地址为字对齐 A A 1 A 2 A 3每个半字地址为半字对齐 A A 1每条指令执行之后 下一条指令地址 当前指令地址 4 3 2Cortex M3编程模型 2 存储器格式小端格式 一个字中最低地址的字节为该字的最低有效字节 最高地址的字节为该字的最高有效字节 大端格式 一个字中最低地址的字节为该字的最高有效字节 最高地址的字节为该字的最低有效字节 地址3字节3 地址2字节2 地址1字节1 地址0字节0 地址7字节3 地址6字节2 地址5字节1 地址4字节0 地址B字节3 地址A字节2 地址9字节1 地址8字节0 地址3字节0 地址2字节1 地址1字节2 地址0字节3 地址7

9、字节0 地址6字节1 地址5字节2 地址4字节3 地址B字节0 地址A字节1 地址9字节2 地址8字节3 地址0的字 地址1的字 地址2的字 CortexM3默认格式 3 2Cortex M3编程模型 3 存储器映射I O完成I O功能的标准方法 存储器映射I O 使用特定的存储器地址 当从这些地址加载或向这些地址存储时 提供I O功能 输入 从存储器映射I O地址加载 输出 向存储器映射I O地址存储 3 3Cortex M3基本寻址方式 指令的构成寻址方式的含义9种寻址方式 1 寄存器寻址2 立即寻址3 寄存器移位寻址4 寄存器间接寻址5 变址寻址6 多寄存器寻址7 堆栈寻址8 块拷贝寻址

10、9 相对寻址 3 3Cortex M3基本寻址方式 1 寄存器寻址操作数在寄存器中ADDR0 R1 R2MOVR1 R22 立即寻址操作数由指令直接给出ADDR3 R3 1ANDR8 R7 0XFFMOVR0 0XFF00 3 3Cortex M3基本寻址方式 3 寄存器移位寻址 ARM特有操作之前先移位MOVR0 R2 LSL 3支持的移位操作LSL 逻辑左移LSR 逻辑右移ASR 算术右移ROR 循环右移RRX 带进位循环右移 3 3Cortex M3基本寻址方式 4 寄存器间接寻址操作数存放在存储单元中 存储单元地址存放在寄存器中 寄存器是数据指针 LDRR0 R2 STRR0 R1 3

11、 3Cortex M3基本寻址方式 5 变址寻址基址寄存器内容 位移量 操作数地址访问基址附近存储单元 基址 偏移基址 变址LDRR0 R1 4 LDRR0 R1 R2 LDRR0 R1 4 LDRR0 R1 4LDRR2 R3 0X0C 3 3Cortex M3基本寻址方式 6 多寄存器寻址一次传送多个寄存器的值LDMIAR1 R0 R2 R5 LDMIAR1 R2 R4 R6 3 3Cortex M3基本寻址方式 7 堆栈寻址堆栈是一种按特定顺序进行存取的存储区 LIFO 四种类型 满递增 FA 空递增 EA 满递减 FD 空递减 ED 向上生长 向下生长 指向栈顶 指向栈上 3 3Cor

12、tex M3基本寻址方式 3 3Cortex M3基本寻址方式 3 3Cortex M3基本寻址方式 8 块拷贝寻址把一块数据从存储器的某一位置拷贝到另一位置 LDMIAR0 R2 R9 STMIAR1 R2 R9 课后作业 解读p81图3 27 3 3Cortex M3基本寻址方式 9 相对寻址特殊的变址寻址 基址为PCBLSUBR SUBR MOVPC R14 3 4Thumb 2指令集说明 Thumb 2指令集允许32位指令与16位指令交融 代码密度和处理性能得到了改善 消除了状态切换的额外开销 节省指令执行时间和指令空间 源代码不需要分别编译 减轻软件开发管理负担 不需要测试与分析何时

13、何地切换到何种状态最有效 软件开发容易 3 4Thumb 2指令集说明 3 4 1条件执行 cond 条件码 几乎所有指令均可包含 根据条件码标志是否满足决定指令是否执行 s 条件码标志更新后缀 几乎所有数据处理指令均可包含 更新条件码标志 CMP等指令 不需要后缀 s 始终更新条件码标志 条件码标志表 P83 表3 7 3 4Thumb 2指令集说明 3 4 2指令分类说明4个大类 存储器访问指令 控制存储器和寄存器之间数据传送数据处理指令 处理器内部数据处理转移指令 控制程序流程 指令优先级等协处理器指令 控制外部协处理器op operationcodecond conditionS si

14、gn 3 4Thumb 2指令集说明 存储器访问指令 1 LDR STR 零 立即数 前变址立即数偏移 零偏移 op cond Rd Rn 立即数偏移 op cond Rd Rn offset 前变址立即数偏移 op cond Rd Rn offset 3 4Thumb 2指令集说明 2 LDR STR 后变址立即数偏移 后变址立即数偏移 op cond Rd Rn offset 3 LDR STR 寄存器 前变址寄存器偏移 寄存器偏移 op cond Rd Rn Rm shift 前变址寄存器偏移 op cond Rd Rn Rm shift 3 4Thumb 2指令集说明 4 LDR ST

15、R 后变址寄存器偏移 后变址寄存器偏移 op cond Rd Rn Rm shift 5 LDR PC相对偏移 加载寄存器 地址是相对PC偏移量 4K 6 LDM STM 多寄存器 op cond Rn reglistIA IB DA DB FD ED FA EA 3 4Thumb 2指令集说明 7 PUSH和POP PUSH cond reglistPOP cond reglist 3 4Thumb 2指令集说明 2 数据处理指令 1 灵活的第二操作数Operand2 Flexiblesecondoperand constant Rm shift 2 ADD SUB RSB ADC SBC

16、RSCOp cond s Rd Rn Operand 3 4Thumb 2指令集说明 3 AND ORR EOR BIC ORNOp cond s Rd Rn Operand2与 或 异或 位清零 或非 4 BFC BFI位域清零 位域插入BFC cond Rd lsb widthBFI cond Rd Rn lsb width 3 4Thumb 2指令集说明 5 CLZ前导零计数Op cond Rd Rm对Rm中的前导零计数 结果存放到Rd中 6 CMP CMN比较 比较负值CMP cond Rn Operand2CMN cond Rn Operand2 3 4Thumb 2指令集说明 7 MOV MVN传送 传送非MOV s cond Rn Operand2MVN s cond Rn Operand2 8 TST TEQ测试位 测试相等TST cond Rn Operand2TEQ cond Rn Operand2 3 4Thumb 2指令集说明 9 MUL MLA MLS乘法 乘加 乘减MUL s cond Rd Rm RsMLA s cond Rd Rm Rs RnMLS co

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号