GD32 BootLoader跳转踩大坑了

[复制链接]
9482|15
 楼主| cyneer 发表于 2019-9-20 16:30 | 显示全部楼层 |阅读模式
本帖最后由 cyneer 于 2019-9-20 16:36 编辑

使用BootLoader跳转过来,可以进入App,但发现初始化FreeRTOS任务时系统卡住了,也不在HardFault也不往其它地方执行程序:
App中使用了以下设置:
无标题.png

结果发现是GD32的库函数,gd32f30x_misc.c下的这个函数,又把中断向量表重新设置回了0x08000000的位置………………………………………………
/*!
    \brief      configures the nested vectored interrupt controller
    \param[in]  none
    \param[out] none
    \retval     none
*/
static void nvic_configuration(void)
{
    //nvic_vector_table_set(NVIC_VECTTAB_FLASH, 0x0);                                //已经设置了中断向量表,这里不用再重设
    nvic_irq_enable(ENET_IRQn, ATKMODU_HIGHTEST_INTPRY, 0);//nvic_irq_enable(ENET_IRQn, 2, 0);
}




实际上是在配置网络那个函数里,重新设置了一下中断向量表:
void enet_system_setup(void)
{
    nvic_configuration();  
________其它省略。
}

库函数用顺手了,结果踩大坑了………………………………
我的内心…………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………



评论

感谢大佬的分享,因为看了您的帖子而解决了自己的问题,感谢!  发表于 2023-2-9 16:41
mycent 发表于 2019-9-25 20:48 | 显示全部楼层
感谢!让我们以后不跳这个坑。
airwill 发表于 2019-9-28 12:00 | 显示全部楼层
嗯,  做 BOOTLOAD, 要注意 中断向量表的地址迁移
ningling_21 发表于 2019-9-28 13:52 | 显示全部楼层
这个确实要注意
Ketose 发表于 2019-9-29 09:39 | 显示全部楼层
自己没有细心弄,就从别人身上找原因?

评论

看题吧兄die,我没见过库函数在外设里面重设中断向量表的。没别的意思,只是想跟别人分享这个事实  发表于 2019-10-30 19:34
lvben5d 发表于 2019-10-31 10:56 | 显示全部楼层
Ketose 发表于 2019-9-29 09:39
自己没有细心弄,就从别人身上找原因?

也不能怪库函数,毕竟人家要默认设置一下存放地址的开点。 你应该自己断章取义,用其他库函数哈。
CharryW 发表于 2019-10-31 14:48 | 显示全部楼层
楼主,nvic_configuration(void)这个函数不是库函数哟,这个只是例程中的中断配置而已
YZyuan123 发表于 2021-3-31 14:20 | 显示全部楼层
感谢楼主
朝生 发表于 2023-2-10 15:51 | 显示全部楼层
有Bootloader的,中断向量就需要重新配置。
Pretext 发表于 2023-2-10 15:51 | 显示全部楼层
正常,之前也有过这个问题。
芯路例程 发表于 2023-2-10 15:52 | 显示全部楼层
哈哈,下回注意,开发就是踩了坑,以后就不会再踩这个坑了。
七毛钱 发表于 2023-2-22 15:17 来自手机 | 显示全部楼层
踩个坑长个记性
Jacquetry 发表于 2023-3-2 19:54 | 显示全部楼层
中断向量表要重新配置吧
go1d 发表于 2023-5-30 17:03 | 显示全部楼层
帮大忙了,找了半天没找到为啥跳不去中断处理
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

3

帖子

0

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