【发布时间】:2019-05-30 04:49:18
【问题描述】:
我有一个 STM32-F49ZI 核板,它是 ARM Cortex 4 - 32 位 MCU。我有自己的 NMI 处理程序,即 NMI_Handler 函数,其地址以位 0 结尾。我可以在调试器中看到它。但是,NMI Handler 的向量地址与 NMI_Handler 函数的地址相同,只是该位以 1 结尾。我的问题是为什么会有差异。我知道这是因为 ARM cortex M 仅支持 Thumb 指令,即仅支持 16 位指令。我无法理解这个推理。背后的原因是什么?为什么它将最后一位设置为 1。
void NMI_Handler()
{
}
看门狗窗口显示
NMI_Handler address - 0x8010 1000
但是,NMI Vector地址中存储的地址是-
0x8010 1001.
【问题讨论】: