深入探讨FLASH被非法改写的问题

问题描述:某stm32客户反馈, 当stm32f407v芯片频繁的正常通断电的时候,flash 会被非法改写,出现各种各样的异常(整片被擦除、中断向量表被改写、写保护被清除等等)。
经过与跟客户沟通了解到 :
•他们是延续之前的项目,进行的一些软硬件简单修改。之前的项目没有出现过类似的问题。
•确认通断电的时间是足够,即断电后所有的vdd都回到0;上电的时序也正常。
•原理图参考了st相关开发板的参考设计。
•测量工作时的电压,除了发觉上电时会有一些抖动外,其它一切正常。尝试让他们改善上电电路,去掉这一抖动,再次实验,仍然出现类似的问题。
到这里似乎跟硬件没关联了, 接着对客户代码进行删减又做了如下实验:
1,去掉app 部分代码,仅仅留下iap代码。做相同的实验,问题再现。
2,进一步删减程序,去掉程序中所有跟flash以及option byte 相关的部分,做相同的
实验,问题依旧。
3,没招,再删,最后仅仅留下下面程序:
客户反应只要调用了delay_init函数就会出问题,不调用就不会出问题(仅仅做了一天的实验)。到这里似乎跟软件有关系了,我们进一步分析发现他们改写了我们的systick的config函数,那么我就做下一个实验。
1,改为标准库中的systick例程,去掉写保护,加一个gpio定时翻转程序。同时在烧录之后,加上写保护,做相同的实验,问题再现。
2,改为标准库中的systick例程,去掉写保护,加一个gpio定时翻转。同时在烧录之后,加上写保护,做相同的实验,问题还是再现。
3,到这里我们有点怀疑是芯片真的有损伤了。我们又用cubemx生成了一个gpio翻转和systick的延时,做相同的实验,问题照旧。
4,到此,我们一方面请芯片设计人员做进一步确认,看看芯片是否真的坏了。同时,我们抱着怀疑一切的态度,请客户的硬件工程师再次确认他们的硬件和原理图的一致性,我们怀疑他们的硬件是否有装错的元器件。主要集中在mcu周边。最后他们的工程师反馈,stm32的pdr_on脚,板子上装的元器件跟原理图不一致。他们把r47和r48都装了,那么相当于在pdr_on上是一个0.6v的电压,也就是关断了mcu内部复位。
真是山穷水尽疑无路,柳暗花明又一村,看来问题应该跟内部复位有关。
查看stm32f407数据手册,可以看到相关信息。
从上面规格书来看,stm32f407v的内部复位电路可以选择性开启或关闭,如果选择关闭mcu内部的复位电路,需要在外部接一个复位监测电路保证vdd达到正常工作电压之前一直使mcu处于复位状态。而这里,客户本意并不想关闭内部复位,外部也没有相应的电源监测复位电路。既然这样,根据手册描述,pdr_on脚接到vdd即可。具体到这里,去掉r48这个1k欧姆的电阻。重做实验验证,异常消失。
结论
其实之前也碰到过另外西安客户发生过频繁上电不工作的情况。因他们是使用了旧的数据手册,没有把pdr_on脚拉到vdd 所致。
对于st mcu来说,这个pdr_on引脚有的封装是被引出来了,有的封装没有引出,如果没有引出的是默认使能内部复位功能,如果引出的话,大家也要当心有的型号是拉低使能内部复位;有的是拉高使能内部复位,设计和使用时注意这点。

光谱成像技术的分类
5G边缘云网关是工业数据采集所用的“利器”
爱生活享受生活,蒸汽拖把好用吗?
IGBT短路保护之退饱和即Desat概念
数控伺服系统的ADAMS/MATLA联合仿真研究
深入探讨FLASH被非法改写的问题
基于FPGA的高阶调制16APSK体制信号的相干解调算法浅析
电池需要合理的使用和保养才能够使用长久
用PLC来判断开关量信号的故障方法
科技创新引领行业新风向 华为MateBook D 14靠实力说话
KEIL工具可通过MPS对基于CORTEX-M处理器的系统建立样机
微波滤波器的发展历史及未来趋势
高通正式公布了2019年第三季度财报营收为49亿美元
运用远距离无线通讯模块程控制飞机场机库大门开关启停的方案
Intel、美光宣布投产25nm NAND闪存
节前买本本挨宰的幕后隐情
DON抓取算法:训练无需标注数据集,省时省力
孙学良院士Angew:晶界电子绝缘策略助力硫化物固态锂电池
耳用小型扩音器电路图解析
D7242P场扫描电路的应用电路图