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
    +关注

    关注

    2243

    文章

    10683

    浏览量

    349298
  • 程序
    +关注

    关注

    114

    文章

    3630

    浏览量

    79653

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

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

收藏 人收藏

    评论

    相关推荐

    stm32g0外部晶振不工作的原因?

    stm32g0外部晶振不工作 使用cubemx,如果配置成外部8M,pll设置为64M,示波器观察有波形,程序却无法运行,使用内部晶振,配置为64M,无问题,不知道怎么解决了。 具体型号stm32g070rb
    发表于 03-29 07:27

    STM32F0的SPL库能在STM32G0上用吗?

    原来用的STM32F0系列,使用的V3.5.0的标准外设库。现在改用STM32G0系列,发现官网提供的固件库是STM32CubeG0,里面是HAL和LL库。为了节省开发时间,想还是用SPL库,有对应的SPL吗?
    发表于 04-08 08:29

    意法STM32G0 系列简介及资料手册!

    全新的STM32G0系列不仅仅是另一种Arm®Cortex®-M0+微控制器。它为高效微控制器必须具备的功能设定了新的定义。这一切都是关于最优化设计,通过详细的各种细节设置,帮您以最小的BOM成本
    发表于 09-02 15:58

    【原创文章】【重磅】在这 一芯难求 各种涨价的时代,STM32G0被委以重任...............

    本帖最后由 张飞电子学院蔡琰 于 2021-4-27 10:37 编辑 由于芯片制造工艺的区别,STM32G0被委以重任,撑起一片天,据我从官方了解的情况可以得出一个结论,不管从价格上还是从
    发表于 04-27 10:36

    STM32G0系列为什么能够减少客户的BOM成本?

    STM32G0系列为什么能够减少客户的BOM成本?STM32G0有哪几种低功耗工作模式?
    发表于 07-01 09:47

    STM32G0学习手册

    STM32G0学习手册,(WWDG)用于检测软件故障的发生,通常由外部干扰或无法预料的逻辑条件引起,导致应用程序放弃其正常顺序。 看门狗电路会在编程的时间段到期时生成MCU复位,除非程序在T6位清零
    发表于 08-10 07:52

    如何去实现一种基于STM32G0的按键控制LED亮灭设计

    STM32 NUCLEO-G071RB开发板有何功能?如何去实现一种基于STM32G0的按键控制LED亮灭设计?
    发表于 10-08 06:57

    STM32G0系列芯片的启动配置相关内容详细描述

    重要的一点,这篇文章将对 STM32G0 系列芯片的启动配置与程序下载做个简单的说明。启动配置STM32G0系列芯片的启动配置相关内容在官方文档《AN5096:Getting started with STM32G0 Serie
    发表于 12-10 07:03

    STM32Cube的STM32G0系列AzureRRTOS软件扩展

    X-CUBE-AZRTOS-G0 STM32Cube扩展包在STM32G0微控制器上运行,基于Arm® Cortex®处理器。
    发表于 11-25 07:32

    使用UART闪存STM32G0系列微控制器的方法是什么

    大家好,STM32L0 系列微控制器通过 UART 闪存,但 STM32G0 系列微控制器不是能够通过 UART 闪烁。所以问题是“使用 UART 闪存 STM32G0 系列微控制器的方法是什么”
    发表于 12-21 06:02

    如何使用STM32G0内置的引导加载程序来刷新Flash Loader Demo GUI设备呢?

    我们正在开始移植到 STM32G0 系列,我知道它们有一个内置的引导加载程序。我能够使用 Flash Loader Demo GUI 进入并激活引导加载程序。但是,当我进入选择 MCU 的步骤时,该
    发表于 01-06 07:18

    STM32G0是否有TSL库支持?

    评估 STM32G0,我在产品手册en.flstm32g0.pdf中注意到:嵌入式软件 STM32CubeG0 软件包包括 STM32Cube HAL 和低层 (LL) API 外设驱
    发表于 01-12 07:40

    STM32G0系列安全手册

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

    STM32G0驱动无刷电机有库吗?

    STM32G0驱动无刷电机,有库么
    发表于 09-22 06:04

    工程师笔记 | STM32G0 复位死机

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