打印

GD32 Bootloader(IAP)APP程序中断问题,下载后中断向量表仍然是BOOT的中断,而不是APP的

[复制链接]
1367|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
watch361|  楼主 | 2025-2-28 10:27 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 watch361 于 2025-2-28 10:28 编辑

芯片GD32e103  跳转代码如下,但是触发的中断一直是Bootloader的中断,我的问题是,为何改变中断向量表地址无效,仍然选择0x8000000的向量表。导致APP中断不触发void jumpToApplication(){
    uint32_t applicationAddress = 0x08004000; // ????????
    // 关闭所有中断
    __set_PRIMASK(1);
    // 设置应用程序的堆栈指针
    __set_MSP(*(volatile uint32_t *)applicationAddress); // ???????
    // 设置中断向量表地址
    //nvic_vector_table_set(NVIC_VECTTAB_FLASH, applicationAddress);
     SCB->VTOR = applicationAddress;
    // nvic_vector_table_set(NVIC_VECTTAB_FLASH, applicationAddress);
    typedef void (*pFunction)(void);
    pFunction application = (pFunction)(*((volatile uint32_t *)(applicationAddress + 4)));

    application(); // ???????
}



使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

1

帖子

0

粉丝