我为 NXP Kinetis 微 Controller 编写了引导加载程序应用程序。以下是我为实现相同目的所做的事情: 1. 在 CFlash 地址 0x0000 到 0x8000 中创建了一个引导加载程序应用程序 2. 从地址 0x8000 到 0x1FFFF 创建了我的主要应用程序代码
这段代码运行良好。现在我的疑问是,我在引导加载程序和主应用程序代码中都放置了 ISR,但没有使用任何 ISR vector 重定位。是否需要在主应用程序中重新定位 vector 表?
PS:我可能不会因为两个应用程序中的 ISR 相同而面临这个问题。
最佳答案
在大多数现代 MCU 上,不需要 vector 表重定位,因为在编译应用程序时可以将 vector 表基地址指定为参数。
如果您的目标没有这样的功能,并且引导加载程序中的 vector 表是 0x0000 到 0x8000,那么您将需要为应用程序重新定位 vector 表,以便应用程序中发生的中断导致跳转到正确的位置处理程序。
关于c - 引导加载程序应用程序中的 vector 表重定位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48722985/