CM嵌入式系统体系结构

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
r0 r1 r2 r3 低寄存器 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13(SP) r13(SP) r14(LR) r15(PC) xPSR
高寄存器
CM3采用双堆栈结构
SP_process SP_main
程序状态寄存器
通用寄存器

低组寄存器r0-r7
高组寄存器r8-r12
CM3的操作模式
处理器2种操作模式:
处理模式和线程模式
程序执行设置2种权限:
用户级和特权级。
特权级可以访问任意资源,用户级对有些资源的访问有限制或不允许访问。
操作模式状来自百度文库转换
1、CM3运行主应用程序时(线程模式),可使用特权级或用户级
2、处理异常服务例程必须使用特权模式。
3、复位后,CM3默认进入线程模式,特权级访问 4、从特权模式切换到用户级,修改CONTROL寄存器即可 5、用户级切换回特权级,必须执行一条系统调用指令SVC,触发 SVC异常,在异常服务例程中修改CONTROL才能回到特权级
堆栈指针寄存器r13
链接寄存器(LR)r14

程序计数器寄存器r15
堆栈指针R13
CM3支持2个堆栈,都指向R13 主堆栈MSP:默认堆栈指针,系统内核、异常、 特权访问时使用。 进程堆栈PSP:可在线程模式使用
处理模式
处理器模式
始终使用MSP
复位
线程模式 主堆栈
产生异常
处理模式 主堆栈
EXC_RETURN[3:0] = 0b1001
LDM、STM和If-then指令,为多周期指令,如果在 执行以上多周期指令时发生异常,处理器会暂时停 止以上指令的操作,进入异常,这时需要保护现场。
异常程序
LDM指令 异常 STEP1 STEP2 STEP3 STEP4
执行状态寄存器PSR(EPSR)包含两个重叠的区域 : 可中断-可继续指令(ICI)区 多寄存器加载(LDM)和存储(STM)操作是可中 断的。EPSR的ICI区用来保存从产生中断的点继续 执行多寄存器加载和存储操作时所必需的信息。 If-then状态区 EPSR的IT区包含了If-Then指令的执行状态位。
0:结果为正数或大于
中断状态寄存器(IPSR)
中断状态寄存器(IPSR)包含当前激活的异常 的ISR编号。 IPSR的位分配
31 ---保留 ISR NUMBER 基础级别 =0 Reset =1 NMI =2 SVCall =11 ...... 9 8 -中断号 0
执行状态寄存器(EPSR) 为什么需要执行状态寄存器EPSR?
1、应用程序PSR(APSR)
2、中断状态PSR(IPSR)
3、执行状态PSR(EPSR)
通过MRS/MSR指令,这三个PSRs可单向访问,
也可组合访问。
使用三合一访问时的名称为xPSR或PSR。
寄存器位域名称
APSR各位定义
1、应用状态寄存器(APSR)包含条件代码标志。 2、在进入异常之前,Cortex-M3处理器将 APSR中的条件代码标志保存在堆栈内(硬件 压栈)。 3、访问APSR可以使用MSR(2)和MRS(2)指令 来。
APSR的位分配
31 30 29 28 27 26 ---0
N
Z
C
V
Q
保留 置顶饱和标志:
(sticky saturation)标志 , 某变量值达到上限/下限时被置1
溢出标志:1:溢出
0:没有溢出 0:没有进位或借 位
进位/借位标志: 1:进位或借位 零标志:1:结果为0
0:结果为非0
负数或小于标志: 1:结果为负数或小于
CM3处理器内核是ARMv7-M体系结构:
1. CPU中央处理器(32位)
2. 先进的系统外设
3. 中断控制 4. 内存保护 5. 系统调试与跟踪功能 6. 传统Thumb和新型Thumb2指令译码器 7. 特殊功能寄存器
STM32F103 系列内部框图
2.2 处理器工作模式和状态
不同的应用会有不同的模式
MSR指令置位 CONTROL[0]=1
Cortex-M3 与ARM7 的性能比较
Cortex-M3的寄存器集



13个通用寄存器:r0~r12 分组的堆栈指针r13,别名为SP_process 和SP_main 链接寄存器r14 程序计数器r15 1个程序状态寄存器xPSR
Cortex-M3的寄存器集
Thumb状态。
为方便程序移植,CM3需要允许LR的LSB位可读
/可写。
程序计数器R15(PC)
CM3内部使用了三级指令流水线,读PC时返回
值是当前指令的地址+4 若向PC写入一个数据,就会引起程序分支 CM3中的指令时半字节对齐的,所以PC得最低 有效位总是读回0.
程序状态寄存器
内部分为三个子状态寄存器:
可用MSP 线程模式 也可用PSP
异 常 退 出 EXC_RETURN[3:0] = 0b1101 线程模式 线程堆栈
产生 异常
链接寄存器R14(LR)
LR用于在调用子程序时存储返回地址,也用于
异常返回。 PC的最低位LSB始终为0,但LR的LSB可读/写。 在这之前,由LR的第0位来指示ARM/Thumb状 态,因为有些ARM芯片同时支持ARM状态和
支持2种模式和2种访问
1. 工作模式与访问权限的关系
Handler
私有模式
私有模式
非私模式 Thread
特权访问和用户访问
2. 特权访问和用户访问之间的相互转换
复位 线程模式 特权访问 CONTROL[0] = 0 异常 处理模式 特权访问 异常退出 异常 CONTROL[0]=1 线程模式 用户访问
第2章ARMCortex-M3体系结构
Cortex-M3 内核的主要特点



功耗低-2uw 内核的门数少,具有优异的性价比 中断延迟短 调试成本低 具有嵌套向量中断控制器(NVIC) 处理器采用ARMv7-M 架构 具有可裁减的存储器保护单元(MPU) 总线接口
2.1 ARM Cortex-M3 处理器内核
不同的模式解决不同的问题
模式代表解决特定的应用或某类问题的解 决方案(手机有正常模式和飞行模式)。 CM3的模式用于区别: (1)普通应用程序的代码与异常 (2)中断服务例程的代码
CM3的操作模式
CM3具有存储器访问的保护机制,它使得 普通用户程序代码不能意外地或恶意地 执行涉及要害的操作。支持线程和处理 者操作模式。(程序类型)
相关文档
最新文档