这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » STM32 » Cortex-M3/M4的寄存器之程序状态寄存器

共1条 1/1 1 跳转至

Cortex-M3/M4的寄存器之程序状态寄存器

院士
2025-01-19 15:41:55     打赏

Cortex-M3/M4的寄存器之程序状态寄存器

程序状态寄存器包括以下三个状态寄存器:应用PSR(APSR),执行PSR(EPSR),中断PSR(IPSR)。这三个寄存器可以通过一个组合寄存器访问,该寄存器在有些文献中也被称作 xPSR。对于 ARM 汇编器,在访问xPSR 时使用的是 PSR。例如:

MRS rO, PSR;读组合程序状态字
MSR PSR, rO;写组合程序状态字

还可以单独访问每个 PSR 。例如:

MRS rO, APSR;将标志状态读入 RO
MRS rO, IPSR;读取异常/中断状态
MSR APSR, rO;写标志状态

注意:

- 软件代码无法直接使用 MRS(读出为 0)或 MSR 直接访问 EPSR。

- IPSR 为只读的,可以从组合PSR(xPSR)中读出。

程序状态寄存器_01.png

注意,APSR 和 EPSR 的一些位域在 ARMv6-M 架构(如 Cortex-M0)中是不可用的,且它们和ARM7TDMI等经典的 ARM 处理器之间也存在很大的差异。若和 ARM7的当前程序状态寄存器(CPSR)相比较,可能会发现 ARM7 中的某些位域已经不存在了。由于 CortexM3 中没有 ARM7 中定义的操作模式,因此模式位(M)也就给去掉了。Thumb(T)位被移到了第 24 位,中断状态(1和F)位被新的中断屏蔽寄存器(PRIMASK)代替,已经从 PSR 中分离出来。





关键词: Cortex-M3     Cortex-M4          寄存器    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]