0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

STM32G0复位后死机

STM32单片机 来源:STM32单片机 作者:STM32单片机 2022-03-17 10:56 次阅读

引言

有客户反映,STM32G071RBT6 在使用 STM32CubeProgrammer 烧录完程序后只能运行一次,复位后,程序无法运行,如果掉电后重新上电,程序恢复正常。

问题描述

根据客户描述,该问题可通过以下步骤复现:

2.1. 测试代码的功能流程图

准备测试代码 App1 和 App2:

2c535562-a535-11ec-952b-dac502259ad0.png

2c66dfe2-a535-11ec-952b-dac502259ad0.png

2.2. 问题复现步骤

操作步骤

(1) 在 STM32CubeProgrammer 中下载

应用程序 App1(如图 3),并设置 RDP=1(如图 4);然后断开 STM32CubeProgrammer 的连接,板子断电后重新上电;

2c7c134e-a535-11ec-952b-dac502259ad0.png

2c9731f6-a535-11ec-952b-dac502259ad0.png

(2) 根据 log 提示(如图 5),按下用户按键,板子会在 RDP 降级的过程中,产生全片擦除的动作,等待 10s,确保芯片擦除完成后从板子再断电并重新上电;

2cb1cb74-a535-11ec-952b-dac502259ad0.png

(3) 使用 STM32CubeProgrammer 重新连接板子,在下载界面选中“Run afterprogramming”后,下载应用程序 App2(如图 6),下载完成后,可以看到板子执行闪灯的效果,并从 App2 的 log 信息可知,此时的 empty check 位被置起(如图 7)。

2cce2f3a-a535-11ec-952b-dac502259ad0.png

2ce82854-a535-11ec-952b-dac502259ad0.png

(4) 在不断电的情况下,如果直接按下外部复位按钮,程序将出现无法执行的现象。

问题解决

通过问题的复现,我们注意到,程序无法正常运行时,实际进入了内置的 ISP 程序,即内置的 bootloader 程序。为什么会进入 bootloader 呢?在 G0 的参考手册中,我们注意到 empty check 的描述如下:

2d1bb16a-a535-11ec-952b-dac502259ad0.png

这里的描述有两点是很重要的。

A :出厂的芯片,因为是没有程序的空片,empty check 位是被置位的,但实际电路中因 boot 管脚定义的程序从 Main Flash 启动的场景时,程序会由于 empty check 位而强制从内置的 bootloader 启动。

B :empty check 只会在加载 OptionByte 时更新,所以在空片上下载完程序后,应当通过 power on reset 或者手动清除该位,程序才可以正常运行。

我们来验证一下,在复现问题的第(4)步中,如果先按下用户按钮,应用程序 App2会通过软件清除 empty check 位,再通过外部复位按钮,则程序正常运行, 根据 log 信息可以看到 empty check 位被清除(如图 9),且程序运行恢复正常。

2d368288-a535-11ec-952b-dac502259ad0.png

小结

本文描述的问题虽然隐藏的比较深,但规律还是很明显的,只要重新上电即可恢复,说明很可能和 power on reset 有关。在参考手册中搜索 power on reset 关键字,可以很快的找到一些线索。所以分析问题时,要多关注这样的有规律的问题信息。

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • STM32
    +关注

    关注

    2265

    文章

    10870

    浏览量

    354692
  • 程序
    +关注

    关注

    116

    文章

    3773

    浏览量

    80830

原文标题:工程师笔记|STM32G0 复位后死机

文章出处:【微信号:STM32_STM8_MCU,微信公众号:STM32单片机】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    STM32G0系列安全手册

    本文档描述如何在安全相关系统的背景下使用 STM32G0 Series 微控制器,并指定了为达到目标安全完整性等级,用户需承担的安装和操作责任。本手册适用于 STM32G0 Series 微控制器
    发表于 09-07 06:51

    关于STM32G0将会在今年爆发吗?

    STM32G0将会在今年爆发吗?
    的头像 发表于 03-04 11:21 4596次阅读

    AN5096_介绍STM32G0系列硬件开发

    AN5096_介绍STM32G0系列硬件开发
    发表于 11-21 08:11 4次下载
    AN5096_介绍<b class='flag-5'>STM32G0</b>系列硬件开发

    STM32G0学习资料

    STM32G0学习资料
    发表于 11-21 08:11 16次下载
    <b class='flag-5'>STM32G0</b>学习资料

    AN5145_从STM32F0系列迁移到STM32G0系列的应用

    AN5145_从STM32F0系列迁移到STM32G0系列的应用
    发表于 11-21 17:06 17次下载
    AN5145_从<b class='flag-5'>STM32F0</b>系列迁移到<b class='flag-5'>STM32G0</b>系列的应用

    AN5145_从STM32F0系列到 STM32G0 系列的应用移手册

    AN5145_从STM32F0系列到 STM32G0 系列的应用移手册
    发表于 11-21 17:06 13次下载
    AN5145_从<b class='flag-5'>STM32F0</b>系列到 <b class='flag-5'>STM32G0</b> 系列的应用移手册

    PM0223_STM32L0STM32G0单片机编程手册

    PM0223_STM32L0STM32G0单片机编程手册
    发表于 11-24 08:29 13次下载
    PM0223_<b class='flag-5'>STM32L0</b>和<b class='flag-5'>STM32G0</b>单片机编程手册

    STM32G0开发笔记:FreeRTOS和FreeModbus库使用

    使用Platformio平台的libopencm3开发框架来开发STM32G0,以下为FreeRTOS和FreeModbus库使用。
    的头像 发表于 01-16 14:44 5435次阅读
    <b class='flag-5'>STM32G0</b>开发笔记:FreeRTOS和FreeModbus库使用

    STM32G0开发笔记:使用FreeRTOS系统

    使用Platformio平台的libopencm3开发框架来开发STM32G0,下面为使用FreeRTOS系统。
    的头像 发表于 01-16 15:07 2314次阅读
    <b class='flag-5'>STM32G0</b>开发笔记:使用FreeRTOS系统

    STM32G0开发笔记:串口中断的使用

    使用Platformio平台的libopencm3开发框架来开发STM32G0,以下为串口中断的使用。
    的头像 发表于 01-17 10:46 2275次阅读

    STM32G0开发笔记:LED灯示例

    使用Platformio平台的libopencm3开发框架来开发STM32G0,下面为LED灯示例。
    的头像 发表于 01-17 10:52 1371次阅读
    <b class='flag-5'>STM32G0</b>开发笔记:LED灯示例

    使用platformio平台和Arduino框架开发STM32G0

    使用platformio平台和Arduino框架开发STM32G0,开发环境使用VSCode+PlatformIO插件;
    的头像 发表于 01-17 11:05 3491次阅读
    使用platformio平台和Arduino框架开发<b class='flag-5'>STM32G0</b>

    STM32G0系列安全手册

    电子发烧友网站提供《STM32G0系列安全手册.pdf》资料免费下载
    发表于 07-31 16:25 0次下载
    <b class='flag-5'>STM32G0</b>系列安全手册

    【经验分享】STM32G0的安全功能

    电子发烧友网站提供《【经验分享】STM32G0的安全功能.pdf》资料免费下载
    发表于 07-28 17:34 0次下载
    【经验分享】<b class='flag-5'>STM32G0</b>的安全功能

    工程师笔记 | STM32G0 复位死机

    工程师笔记 | STM32G0 复位死机
    的头像 发表于 10-17 15:23 1428次阅读
    工程师笔记 | <b class='flag-5'>STM32G0</b> <b class='flag-5'>复位</b><b class='flag-5'>后</b><b class='flag-5'>死机</b>