• 资料介绍
  • 在线预览
  • 相关推荐
申请入驻 产业图谱

LAT1374 RT-Thread环境下Flash错误标志问题解析

2025/03/19
590
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

LAT1374 RT-Thread环境下Flash错误标志问题解析

526.85 KB

简介

客户在使用 STM32G474RE 进行产品开发的时候,操作系统软件使用了 RT-Thread5.0,同时由于要做 ClassB 认证,所以在 RT-Thread 系统上,移植了 ClassB 2-3-0 版本安全库。用户程序另外一个功能是固件升级,在调试固件升级程序的过程中,发现一旦执行了ClassB 的启动自检,就会出现固件升级失败。调试发现,固件升级失败的原因是写 Flash 的时候发现 Flash 状态寄存器的错误标志被置位,导致 Flash 写操作失败。客户根据现此象反馈 ClassB 的自检代码有隐患,导致 Flash 出错。本文分析了出现该错误的原因以及解决办法。

问题描述

根据客户的问题反馈,我在 NUCLEO-G474RE 开发板上单独移植 ClassB,通过调试,没有发现类似问题。为了复现该问题,从 RT-Thread 官方网站上下载了 5.0 版本的 RTThread 代码。RT-Thread 对 STM32 的支持是相当友好的,代码中包含了对多数 STM32开发板的支持,所以对于 NUCLEO-G474RE 开发板,只需要找到对应的目录,打开工程即可。

问题分析与解决

结合参考手册对 PGAERR 以及 PGSERR 的描述,只能从写 Flash 的角度去分析问题产生的原因,最终通过单步调试,发现其中一句代码导致了该错误标志位的置起。

小结

在 STM32 软件开发中,不当的指针操作,尤其使用未经初始化的指针可能会引起莫名奇妙的问题,所以在使用指针变量的时候,需要注意指针地址的正确性。

在线预览

相关推荐

意法半导体拥有49,000名半导体技术的创造者和创新者,掌握半导体供应链和先进的制造设备。作为一 家半导体垂直整合制造商(IDM),意法半导体与二十多万家客户、成千上万名合作伙伴一起研发产品和 解决方案,共同构建生态系统,帮助他们更好地应对各种挑战和新机遇,满足世界对可持续发展的更高需 求。意法半导体的技术让人们的出行更智能,让电源和能源管理更高效,让云连接的自主化设备应用更广 泛。我们正按计划在所有直接和间接排放(包括范围1和范围2)、产品运输、商务旅行以及员工通勤排 放(重点关注的范围3)方面实现碳中和,并在2027年底前实现100%使用可再生电力的目标。 详情请浏 览意法半导体公司网站:www.st.com.cn