[研电赛技术支持] 求助 关于GD32从boot程序中跳转至主程序的问题

[复制链接]
Emmett 发表于 2025-8-21 08:58 | 显示全部楼层 |阅读模式
最近在开发一套遥控器无线更新程序的系统,已经完成了新程序的写入,但是最后的程序跳转却一直没有成功,之前没有写Boot的经验,还请各位大佬指点一下
这是我的跳转程序
void JumpToApp(uint32_t app_load_addr)
{
        pFunction application;
        uint32_t app_address;
        app_address = app_load_addr;
    if (((*(__IO uint32_t*)app_load_addr) & 0x2FFE0000U) == 0x20000000U)
    {
        app_address = *(__IO uint32_t*) (app_load_addr + 4U);
        application = (pFunction) app_address;

        /* initialize user application's stack pointer */
        __set_MSP(*(__IO uint32_t*) app_load_addr);

        /* jump to user application */
        application();
    }
}

求大佬助我最后一臂之力,完成这项伟大的系统[em:yct16:]
豌豆爹 发表于 2025-8-21 12:39 | 显示全部楼层
在跳转到应用程序之前,你可能需要禁用中断,以防止在跳转过程中发生中断。
豌豆爹 发表于 2025-8-21 12:39 | 显示全部楼层
使用调试器(如 J-Link、ST-Link)来检查向量表的内容和跳转地址是否正确。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

2

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部