STM32L4P5多寄存器加载指令执行期间能否被中断打断?
STM32L4P5多寄存器加载指令的中断响应问题
对于STM32L4P5搭载的Cortex-M4F内核来说,多寄存器加载指令(比如LDM这类)在执行过程中可以被中断打断,不需要等所有寄存器都加载完成才响应中断。
具体细节:
- Cortex-M系列内核采用抢占式中断机制,大部分多周期指令在执行时,只要有符合优先级要求的中断请求触发,内核会在当前指令的周期间隙暂停执行,转而处理中断。
- 中断处理完成后,内核会回到被打断的位置,继续完成剩余的寄存器加载操作。
- 只有少数特殊的原子指令(比如涉及堆栈返回的
POP {PC}、或者某些总线原子操作)才会要求执行完成后再响应中断,普通的多寄存器加载不在此列。
内容的提问来源于stack exchange,提问作者Jeff Casey
相关产品推荐
相关产品推荐

