老师,我不太能理解这里的含义

🔍 溯源 ✍️ Jack | 📅 2024-09-25 | 👍 0 | 原帖↗
#知识星球 #立芯嵌入式 #来源/立芯星球 #技术/调试可靠性 #技术/ARM体系结构 #质量/普通

原帖 | 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 异常。(如图)

1478b9495722.jpg


相关笔记