凡亿助教-小云
凡事用心,一起进步
打开APP
公司名片
凡亿专栏 | 程序下载正常,断电重启就不跑了
程序下载正常,断电重启就不跑了

嵌入式开发时经常遇到反常情况,程序刚下载完运行完全正常,断电再上电后芯片完全没反应,反复重新下载又能临时恢复。核心问题大多出在启动模式配置上,不是代码逻辑写错了。

5.png

1. 启动引脚电平不对

MCU的BOOT启动引脚,上电瞬间的电平状态决定了芯片从哪个区域启动。

如果引脚悬空,上电时电平处于不确定状态,芯片可能随机进入串口下载模式,不会从Flash里加载用户程序。

2. 启动分区选错

下载程序时,把代码烧写到了RAM调试分区,而不是非易失性的Flash存储区。

RAM掉电后数据会完全丢失,断电重启后程序自然就不存在了,芯片无法正常启动运行。

3. 启动延时没适配

部分外部晶振启动需要几毫秒的稳定时间,代码里没有加足够的启动延时。

芯片刚上电就开始读取外部Flash的程序,此时晶振还没稳定,时序不匹配导致读取出错,程序直接跑飞。

4. 快速修复方法

把BOOT引脚通过电阻固定到正确的电平状态,确认程序下载到主Flash分区。

在启动代码开头加10毫秒的延时,等待外部时钟稳定,断电重启就能正常运行。


本文凡亿教育原创文章,转载请注明来源!

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表凡亿课堂立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。
相关阅读
进入分区查看更多精彩内容>
精彩评论

暂无评论