当前位置: 代码迷 >> 综合 >> GD32 程序可以下载,但是主程序不能运行---BOOT0高电平导致
  详细解决方案

GD32 程序可以下载,但是主程序不能运行---BOOT0高电平导致

热度:119   发布时间:2023-09-23 00:01:59.0

一、环境

1.芯片:GD32F10x

2.程序:可在其他板子上正常运行

3.下载器:J-LINK

二、问题

1.程序可以通过J-LINK下载

2.但是主程序没有运行

三、问题现象

1.KEIL仿真:

1)仿真后直接运行,但是并没有运行到主程序(main函数)中。

2)查看汇编,可以执行,但是执行的地址是在0x1FFF Fxxx,并且一直在循环执行。

2.硬件查看

1)晶振没有正常运行

2)3.3v供电正常

四、查资料思考

GD32 程序可以下载,但是主程序不能运行---BOOT0高电平导致

1.首先仿真时汇编运行的地址不对,如果是在“主FLASH存储器”区域(也就是我们编写代码的地方),那汇编地址应该是0x0800 xxxx

2.通过GD32使用手册,查到在0x1FFF Fxxx地址运行时是处于“引导装载程序”区域,而决定运行区域的关键时BOOT0,从而确定是“未知原因”导致BOOT0引脚为高电平导致

五、确定问题所在

1.通过万用表查询,BOOT0引脚确实是高电平

2.通过万用表测量,确定相邻引脚短路,此引脚有上拉

六、在网上找到的一篇同样遇到这个问题的文章,推荐一下

Boot 引脚引发的血案 - 知乎