原帖 | Jack | 2024-09-25 19:29 | 👍0 | 阅读约1
老师,我不太能理解这里的含义
在Cortex-M4中,为什么如果向 PC中写数据,就会引起一次程序的分支(但是不更新 LR 寄存器)。CM3 中的指令至少是半字对齐的,所以 PC的 LSB 总是读回 0。然而,在分支时,无论是直接写 PC的值还是使用分支指令,都必须保证加载到 PC的数值是奇数(即 LSB=1),用以表明这是在 Thumb 状态下执行。倘若写了 0,则视为企图转入 ARM 模式,CM3 将产生一个 fault 异常。(如图)

相关笔记