cortex m3的操作模式和状态

本文解析了Cortex-M3处理器的调试状态(debugstate)、操作模式(handlermode和threadmode)以及访问层次(accesslevel),重点讨论了thumbstate的特性、不同模式下的特权访问和指令寻址规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.操作状态(operation state):
debug state:处理器在调试器发起halt或匹配到断点时,会进入debug state并停止执行指令.
thumb state:处理器正在运行程序代码(thumb 指令)时会处于thumb state。 和传统的ARM处理器不同,cortex m3
不支持ARM 指令集,所以没有ARM state.
2.操作模式(operation mode):
handler mode:指执行异常处理例程(如ISR)时的模式。在handler mode中,处理器一直处于特权访问层次(privileged level).
thread mode:指执行普通应用程序代码时的状态,处理器可以处于特权访问层次(privileged level)或非特权访问层次(unprivileged level)
3访问层次(access level):
在thread mode中,软件可以实现unprivileged到privileged的切换,但反向的切换必须通过中断(SVC)实现,这是因为access level由CONTROL寄存器控制,而只有在privileged level下才能访问这个寄存器。

由于cortex m3的指令均为16bit或32bit,对指令存储器寻址用的地址LSB应该都为0,但是对LR和PC,一些分支/调用/读存储器指令需要把它们的LSB设为1以表明是thumb state,否则会被认为尝试访问ARM指令而导致fault,vector table中的内容LSB均为1.但对C编程来讲,LR/PC的LSB都会由编译器自动决定,不会出现问题。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值