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

本文档记录了在GD32F10x芯片上遇到的程序无法正常运行的问题。问题表现为仿真运行时地址错误,程序未进入主函数,且晶振未正常工作。经过分析,发现BOOT0引脚为高电平,导致程序在引导装载程序区域循环。通过万用表检查,发现BOOT0引脚短路,修复后问题解决。文章分享了这一故障排查过程,对于遇到类似问题的GD32开发者具有参考价值。
摘要由CSDN通过智能技术生成

一、环境

1.芯片:GD32F10x

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

3.下载器:J-LINK

二、问题

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

2.但是主程序没有运行

三、问题现象

1.KEIL仿真:

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

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

2.硬件查看

1)晶振没有正常运行

2)3.3v供电正常

四、查资料思考

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

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

五、确定问题所在

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

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

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

Boot 引脚引发的血案 - 知乎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值