你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

FLASH 被异常改写

[复制链接]
aimejia 发布时间:2018-5-17 13:18
本帖最后由 aimejia 于 2018-5-17 13:28 编辑
2 n4 b% o( y, E- ]2 J( P1 X, b9 \& q. D) V/ Z6 A
问 题 描 述
# V0 c; H: F- x% @, h" Z2 o8 F某客户反馈, 当 MCU 频繁的正常通断电的时候。FLASH 被异常改写,出现各种各样的异常(整片
& ]$ o" `6 E7 x# U% W) R! r) b别擦除、中断向量表被改写为 0、写保护被清掉、被加上读保护 ……..)( {: R+ c" n' }. E& m) G; x& g
3 Z+ ^$ n2 E/ i, K% R* o* b
问 题 调 研 :& J/ Z9 ^% m3 k& s: j  h2 I
首先跟客户沟通:3 E- m! ^; Y0 q/ l* U# {5 K
•  他们是延续之前的项目,进行的一些软硬件简单修改。之前的项目没有出现过类似的问题。- q/ `  W& G0 |8 x) ^+ n" u* n
•  确认通断电的时间是足够,就是说他们断电后所有的 VDD 都回到 0.上电的时序也是正常。
, M4 x; ~- G, h7 `1 O•  原理图确认这是 follow 了我们的参考设计。
* a% Y. _' W4 o•  测量工作时的电压,只是发觉他们上电时会有一些抖动,其它一切正常。尝试让他们改善上电电路,去掉这一抖
: Q, j" ?' A2 Q9 p4 z动,再次实验,仍然出现类似的问题。8 }! R5 b0 m! B# r# |
到这里似乎跟硬件没有任何的问题了, 接着让客户代码进行删减又做了如下实验:
) l3 x: e* O( g  M4 c; s1, 去掉能 APP 部分代码,仅仅留下 IAP 代码。做相同的实验,问题再现。2 N5 K% L. B3 j, i. F. C3 d, ?
2, 进一步删减程序,客户去掉程序中所有跟 flash 以及 OPTION BYTE 相关的部分,做相同的实验,问题再现。: e! \" d2 k0 y/ Z
3, 没招,再删,最后仅仅留下下面程序:
, x' m* ^* X, _ 8.png
% f. r1 W3 d3 D- \
2 d! L  `. C2 J7 P7 \4 U 9.png % ^2 J6 E, h- E

8 u( g* k. \( o) @; D 10.png
6 d( r& b% }9 g/ e+ s/ R# A* N客户反应只要掉用了 delay_init 函数就会出问题,不调用就不会出问题(仅仅做了一天的实验)。到这里似乎跟我们的软
/ ~- y3 V; `% D, e# F件有关系了,我们进一步分析发现他们改写了我们的 systick 的 config 函数,那么我就做下一个实验。
# P  |) _$ E! ]# ?* [4, 改为标准库中的 systick 例程,去掉写保护,加一个 GPIO 定时翻转程序。同时在烧录之后,加上写保护,做相1 t, l# G$ ]+ x/ b! T
同的实验,问题再现。$ L+ \; L5 r: }+ d
5, 到这里我们都怀疑是芯片真的有损伤了,我们再做了一个实验用 cubemx 生成了一个 GPIO 翻转和 systick 的延0 q+ Z% H6 A: l1 {8 W
时,做相同的实验,问题再现。. k" z. A* y7 I8 b* H. o! i
原因:* N8 c8 n  E0 N2 _
到这里我们似乎是江郎才尽,只能坐等 FA 的报告,看看芯片是否真的坏了与否。我们抱着怀疑一切的态度,请他们的硬件
9 _5 h& E/ J+ ?0 C, k6 T$ n; k工程师再次确认他们的硬件和原理图的一致性,我们怀疑他们的硬件是否有装错的元器件。主要集中在 MCU 周边。最后他们  o, a2 q) ^( C; H8 x1 O- n/ M
的工程反馈,他们的 PDR_ON 脚,板子上装的元器件跟原理图不一致。他们把 R47 和 R48 都装了,那么相当于在 PDR_ON6 t* @$ t' X  l/ @
上是一个 0.6v 的电压,也就是关断了 MCU 内部复位。
9 v  _6 c* \  o, M真是山穷水尽疑无路,柳暗花明又一村,问题应该跟内部复位有关。
  B1 W: G3 [6 ], J# m# h* l; X 11.png , L7 G- U  G/ h# `* ]

- A$ V0 x* H$ w3 K& F. p 12.png
, _9 Q5 k) O2 C; j. o从上面规格书来看,如果我们关断 mcu 内部的复位电路,需要在外部接一个复位信号保证 VDD 达到正常工作电压之
1 ]& h) f6 v1 q, U前一直使 MCU 处于复位状态。% s2 d, [: q4 G' d" Y0 i2 i
6 A6 e* |, v4 f" l$ w
...
. T6 P. [. w2 b' Z/ Q
0 @- T- J- M2 S( z了解更多,请下载后阅读+ H. d0 ^4 N# c( I( T
5 d( h& p. v/ x2 ]
下载地址1>>      下载地址2>>       更多实战经验>>
+ u, d1 O6 y! d+ H' _0 P* p) o

7 y3 Y) v1 n1 |! G7 o
收藏 1 评论8 发布时间:2018-5-17 13:18

举报

8个回答
七哥 回答时间:2018-5-17 17:56:40
过程描述详细,分析到位。) C! c/ v$ H/ `% g8 h1 h
0 f* o$ R" ?/ N" ~2 n4 m
总之,问题出在,不按套路出牌。
xmstudio 回答时间:2018-5-18 08:48:13
画原理图的人应该背锅,预留但是不安装的电阻应该标注一下,整理BOM表以及整理坐标文件的时候都应该去除
zhongfg 回答时间:2018-5-21 07:49:52
學習了,謝謝分享.
aimejia 回答时间:2018-5-21 09:33:11
zhongfg 发表于 2018-5-21 07:49
$ W& ?( _0 L7 L學習了,謝謝分享.
* |3 I+ g) o: |% h$ c: E1 y# J
不客气哦
aimejia 回答时间:2018-5-21 09:50:18
toofree 发表于 2018-5-17 17:56
) u# e* b' S- ^3 S7 o, ?* s过程描述详细,分析到位。
5 b+ s2 |7 Y5 h- H. c  L3 d: N6 N* v( l( z# V
总之,问题出在,不按套路出牌。
* d7 g5 S# i" @
看来问题都要一个个排查啊
lyzd 回答时间:2018-6-29 09:52:17
学习到了,,,,
robter 回答时间:2018-7-17 21:25:57
都是很好的经验,值得借鉴
365天 回答时间:2019-1-24 13:15:02
长知识。学习如何排查问题。

所属标签

相似分享

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版