2020-02-11 08:49发布
zhaoyuanxian 发表于 2019-9-2 21:52 中断向量表需要重定向吗?
Lu.Shi 发表于 2019-9-3 09:17 需要的,我的理解修改icf文件就是中断向量重定向,bootloader不熟悉属于新手上路,理解不对请指正哈 ...
security 发表于 2019-9-3 09:29 我贴一段跳转的代码,给你参考一下吧。
Lu.Shi 发表于 2019-9-3 10:31 多谢回复,我理解的“FIRMWARE_VECTOR_TABLE_ABSOLUTE_ADDR”就是应用层工程的中断起始地址,不知道理解 ...
最多设置5个标签!
需要的,我的理解修改icf文件就是中断向量重定向,bootloader不熟悉属于新手上路,理解不对请指正哈
我贴一段跳转的代码,给你参考一下吧。
- // 引导固件的接口的类型定义
- typedef void (*pfn_load_firmware_t)(void);
- void BOOT_LoadFirmware(uint32_t firmwareEntry)
- {
- static pfn_load_firmware_t s_loadFirmware;
- static uint32_t s_stackPointer;
-
- AlwaysDisableInterrupt();
- SCB->VTOR = (uint32_t)FIRMWARE_VECTOR_TABLE_ABSOLUTE_ADDR;
- s_stackPointer = FIRMWARE_VECTOR_TABLE_ABSOLUTE_ADDR[0];
- __set_MSP(s_stackPointer);
- __set_PSP(s_stackPointer);
- s_loadFirmware = (pfn_load_firmware_t)firmwareEntry;
- s_loadFirmware();
-
- while (1)
- {
- ;
- }
- }
复制代码多谢回复,我理解的“FIRMWARE_VECTOR_TABLE_ABSOLUTE_ADDR”就是应用层工程的中断起始地址,不知道理解的对否?其次,我觉得问题应该是跳转应用程序的地址应该还有什么配置的,跳转的程序是NXP官方文档提供的,估计问题可能不再这,我试了试你的方法,结果发现,执行完跳转依然是bootloader工程代码,并没有跳转到应用层程序。
是的,应用程序的中断向量表的地址。
一周热门 更多>