21ic问答首页 - 求指点:GD32A503RDT3程序从bootloader跳转APP,无法进入中断程序
求指点:GD32A503RDT3程序从bootloader跳转APP,无法进入中断程序
求大神指点:
MCU :GD32A503RDT3
BOOTLAODER 起始地址0x08000000
APP起始地址0x08040000
跳转前已经设置:
__set_MSP(stack_pointer); // 设置主堆栈指针
SCB->VTOR = app_address;
程序可以跳转,但是跳转之后,systick或者其他timer的中断无法调用,导致程序卡死,无法通信。
这是APP startup文件的问题吗?或者reset_handler缺了什么?
该怎么解决?
补充:如果将APP起始地址设为0x08000000,程序可以正常运行,通信正常。APP程序本身没有问题。
MCU :GD32A503RDT3
BOOTLAODER 起始地址0x08000000
APP起始地址0x08040000
跳转前已经设置:
__set_MSP(stack_pointer); // 设置主堆栈指针
SCB->VTOR = app_address;
程序可以跳转,但是跳转之后,systick或者其他timer的中断无法调用,导致程序卡死,无法通信。
这是APP startup文件的问题吗?或者reset_handler缺了什么?
该怎么解决?
补充:如果将APP起始地址设为0x08000000,程序可以正常运行,通信正常。APP程序本身没有问题。

问答
赞0
评论
2026-05-14
赞0
但是APP中重新调用SystemInit(),函数重设覆盖了跳转前的设置:
nvic_vector_table_set(NVIC_VECTTAB_FLASH, VECT_TAB_OFFSET);
把这个VECT_TAB_OFFSET改掉就可以了。
评论
2026-05-11
赞0
评论
2026-04-27
您需要登录后才可以回复 登录 | 注册