引言
有客户反映,STM32G071RBT6 在使用 STM32CubeProgrammer 烧录完程序后只能运行一次,复位后,程序无法运行,如果掉电后重新上电,程序恢复正常。
问题描述
根据客户描述,该问题可通过以下步骤复现:
2.1. 测试代码的功能流程图
准备测试代码 App1 和 App2:
2.2. 问题复现步骤
操作步骤
(1) 在 STM32CubeProgrammer 中下载
应用程序 App1(如图 3),并设置 RDP=1(如图 4);然后断开 STM32CubeProgrammer 的连接,板子断电后重新上电;
(2) 根据 log 提示(如图 5),按下用户按键,板子会在 RDP 降级的过程中,产生全片擦除的动作,等待 10s,确保芯片擦除完成后从板子再断电并重新上电;
(3) 使用 STM32CubeProgrammer 重新连接板子,在下载界面选中“Run afterprogramming”后,下载应用程序 App2(如图 6),下载完成后,可以看到板子执行闪灯的效果,并从 App2 的 log 信息可知,此时的 empty check 位被置起(如图 7)。
(4) 在不断电的情况下,如果直接按下外部复位按钮,程序将出现无法执行的现象。
问题解决
通过问题的复现,我们注意到,程序无法正常运行时,实际进入了内置的 ISP 程序,即内置的 bootloader 程序。为什么会进入 bootloader 呢?在 G0 的参考手册中,我们注意到 empty check 的描述如下:
这里的描述有两点是很重要的。
A :出厂的芯片,因为是没有程序的空片,empty check 位是被置位的,但实际电路中因 boot 管脚定义的程序从 Main Flash 启动的场景时,程序会由于 empty check 位而强制从内置的 bootloader 启动。
B :empty check 只会在加载 OptionByte 时更新,所以在空片上下载完程序后,应当通过 power on reset 或者手动清除该位,程序才可以正常运行。
我们来验证一下,在复现问题的第(4)步中,如果先按下用户按钮,应用程序 App2会通过软件清除 empty check 位,再通过外部复位按钮,则程序正常运行, 根据 log 信息可以看到 empty check 位被清除(如图 9),且程序运行恢复正常。
小结
本文描述的问题虽然隐藏的比较深,但规律还是很明显的,只要重新上电即可恢复,说明很可能和 power on reset 有关。在参考手册中搜索 power on reset 关键字,可以很快的找到一些线索。所以分析问题时,要多关注这样的有规律的问题信息。
上一篇:基于STM32的printf串口数据输出
下一篇:STM32中使用快速编程时有哪些需要注意的地方
推荐阅读最新更新时间:2024-11-10 11:44
推荐帖子
- 射频能量采集技术新发展(感觉和低功耗应用相关)
- 看到一篇文章,转一下,设计版权问题吧,只贴链接,大家感兴趣的可以看看,注意有第二页:http://www.ed-china.com/ART_8800044607_400020_500009_TS_0dc4b36b.HTM之所以发在这里,是因为之前一段时间,我曾经想到过一下使用超级电容和小太阳能电池板做低功耗时钟的电源,我前一段时间已经用捡到的那种一种遮阳帽子上靠太阳能驱动一个小电机风扇的小太阳能电池板(穷人,大家不要见笑,我经常捡一些人家丢弃的电子垃圾回来以后拆器件用)带动过用Launc
- wangfuchong 微控制器 MCU
- 关于驱动程序的徽标认证
- 各位大大我写了个驱动程序,想研究一下如何通过Windows的徽标认证,所以就去载了WLK用于测试以前微软提供的是HCT测试工具,通过它的测试,就可以提交给微软进行认证。但是现在说是统一改为WLK工具包了,不知道大大们对此有何见解?我载了一个WLK,但是无法安装,我的系统是XP的(正版)请大大们有弄过这个东西的教教我,谢谢啊分不够可以加关于驱动程序的徽标认证我只做过签名,要加徽标好象要不少钱的。1楼大大,那你知道WLK,或者之前的HCT么?能不能介绍介绍?谢谢WLK是Win
- chinapres 嵌入式系统
- 寻ZigBee和GPRS兼职开发人员
- 因公司项目需要,现招聘一名ZigBee和GPRS兼职开发人员。要求:1、使用过CC2430和任意一款的GPRS模块做过2到3个项目。2、要求人在北京。如有兴趣的朋友请将您的简历发到:dongfangrenli01@163.com或加QQ:1319565062薪资优厚寻ZigBee和GPRS兼职开发人员
- dongfanghanke RF/无线
- 在开发板上实现用户登录验证应该怎么做?
- 我现在在PAX270的板子使用linux2.6+BOA服务器,让远程的用户登录到板子上查看视频抓来的图片,其中有一些页面必须是具备一定权限的人才可以查看,不知道我怎么实现用户登录验证(即登录认证后的用户才可以访问相应的网页)?本人实在很笨,对嵌入式很不懂却偏偏学了这个。哪位大侠可以给我提供相应的代码和资料啊!在开发板上实现用户登录验证应该怎么做?
- 我上一谁呢 嵌入式系统
- #晒一晒# 你都已用过了哪些传感器?有哪些是国产的?
- 如题,如题,这传感器的大千世界你实际拿捏过哪些传感器?有哪些是国产芯的?在使用中遇到的坑、难题、挑战有哪些还对哪些传感器比较有兴趣去玩玩欢迎来跟帖分享~#晒一晒#你都已用过了哪些传感器?有哪些是国产的?这也太多了,温湿度,压力,超声波,差压,CO2,氧气,NO,红外等等,那个工程师都弄个很多 温湿度SHT30,气体传感器不记得型号了,PM2.5用的攀藤的。红外接收头发送头,具体型号不记得了。反正是国产的。。。热电偶传感器什么m
- nmg 国产芯片交流
- 电源设计必须注意的64个细节
- 1.变压器图纸、PCB、原理图这三者的变压器飞线位号需一致。理由:安规认证要求这是很多工程师在申请安规认证提交资料时会犯的一个毛病。2.X电容的泄放电阻需放两组。理由:UL62368、CCC认证要求断开一组电阻再测试X电容的残留电压很多新手会犯的一个错误,修正的办法只能重新改PCBLayout,浪费自己和采购打样的时间。3.变压器飞线的PCB孔径需考虑到最大飞线直径,必要时预留两组一大一小的PCB孔。
- 木犯001号 电源技术