1、微电子科学与技术系n 5.1 操作模式和状态n 5.2 寄存器n 5.3 栈指针和栈的操作n 5.4 异常与中断n 5.5 程序映像和启动流程n 5.6 指令集简介第 五 章 Cortex-M0体系结构微电子科学与技术系n Cortex-M0处理器包含n 2种 状态: Thumb状态 、 调试状态n 2种 操作 模式: 线程模式 、 异常处理模式5.1 操作模式和状态微电子科学与技术系Cortex-M0处理器的 2种状态n Thumb状态q 处理器正常运行的状态q 在这种状态下,处理器可以处于 线程模式 或 异常处理模式n 调试状态q 处理器内核被暂停,仅用于调试操作q 调试器读取和改写内核寄
2、存器、也能访问存储器微电子科学与技术系Cortex-M0处理器的 2种模拟n 线程模式q 执行正常运行的代码q 可以选择使用 “影子 ”栈指针n 异常处理模式q 执行异常处理代码微电子科学与技术系n 寄存器:q 通用寄存器:数据处理过程中暂存数据q 16( 13)个通用寄存器q load-store:数据先从内存加载到寄存器再运算,结果写回存储器q 寄存减少了内存的访问次数和性能要求n 专用寄存器:q 赋予特殊的功能或操作方式q 控制处理器的工作状态n5.2 Cortex-M0处理器的 寄存器微电子科学与技术系n5.2 Cortex-M0处理器的寄存器微电子科学与技术系n 都是 32位,系统上
3、电后初始值不确定n 可以用作指令的源操作数和目的操作数n 可用 load、 store指令与内存交换数据n R0R12完全用来运算过程中暂存数据n R0R7又称作 低寄存器( low register)通用寄存器微电子科学与技术系n R13,栈指针( SP)n 用于对栈空间存取操作(PUSH、 POP指令)n 对应 R13( SP)有 两 个物理寄存器:q 主栈指针 MSPq 进程栈指针 PSPn MSP的初始值来自程序映像中特殊位置的值通用寄存器微电子科学与技术系n R14,链接寄存器( LR)n 存储子程序调用的返回地址n 发生异常时, LR用来实现正确的异常返回n Cortex-M0的指令地址始终是偶数(最低位为 0),但为了指明当前处于 Thumb状态,一些指令要求地址值最低位为 1!通用寄存器微电子科学与技术系n R15,程序计数器( PC)n 用来指向正在 “取指 ”的地址n 读:值为当前正在执行指令的地址加上 4写:导致程序跳转执行n通用寄存器