ARM MCU 如何找到我重定位的向量表?

问题描述 投票:0回答:1

我使用的是 NXP Kinetis K64 ARM Cortex M4 MCU。我成功更改了链接器配置文件,将向量表移至地址 0x8000(而不是默认地址 0x0000)。当我告诉 CodeWarrior 10.6 调试器在代码开始处中断时,它会按预期停止在 boot.S 文件的顶部。但我突然意识到,由于闪存从地址 0x0000 到 0x7FFF 是空的(0xFF)并且 VTOR 寄存器显示为 0x0,所以 MCU/调试器是如何找到代码的?! 我查看了 ARM M4 内核和 NXP K64 的数据表,但它们没有回答这种情况。

vector linker cortex-m
1个回答
2
投票
初始化程序计数器

,则调试器将在重置时为程序计数器提供“boot.S文件顶部”的地址,这是程序入口点。跳过查找向量表的正常顺序。 如果没有调试器,您的程序将无法运行。

有关 CodeWarrior 调试器的更多详细信息可以在

此处

找到

© www.soinside.com 2019 - 2024. All rights reserved.