KEAZ128 UART bootloader跳转应用层程序异常

2020-02-11 08:49发布

如题求助,使用KEAZ128 MCU通过UART方式实现bootloader功能,根据NXP官网提供的文档,修改了icf文件配置,但是跳转应用层程序提示HardFault,如附件贴图。所以请教一下,除了修改icf配置文件,还需要修改什么配置吗?目前排除了FLASH写,UART数据传输错误,应该就是应用层程序跳转接口哪设置的不对。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
12条回答
security
2020-02-11 15:13
Lu.Shi 发表于 2019-9-3 09:17
需要的,我的理解修改icf文件就是中断向量重定向,bootloader不熟悉属于新手上路,理解不对请指正哈 ...


我贴一段跳转的代码,给你参考一下吧。
  1. // 引导固件的接口的类型定义
  2. typedef void (*pfn_load_firmware_t)(void);

  3. void BOOT_LoadFirmware(uint32_t firmwareEntry)
  4. {
  5.         static pfn_load_firmware_t s_loadFirmware;
  6.         static uint32_t s_stackPointer;
  7.        
  8.         AlwaysDisableInterrupt();

  9.         SCB->VTOR = (uint32_t)FIRMWARE_VECTOR_TABLE_ABSOLUTE_ADDR;

  10.         s_stackPointer = FIRMWARE_VECTOR_TABLE_ABSOLUTE_ADDR[0];
  11.         __set_MSP(s_stackPointer);
  12.         __set_PSP(s_stackPointer);

  13.         s_loadFirmware = (pfn_load_firmware_t)firmwareEntry;

  14.         s_loadFirmware();
  15.        
  16.         while (1)
  17.         {
  18.                 ;
  19.         }
  20. }
复制代码

一周热门 更多>