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

FLASH 被异常改写

[复制链接]
aimejia 发布时间:2018-5-17 13:18
本帖最后由 aimejia 于 2018-5-17 13:28 编辑 8 R$ p: f9 H% W

: ~4 h( E) D/ @% a! t% O' J问 题 描 述 :3 j# F  z- ^# j  r$ r
某客户反馈, 当 MCU 频繁的正常通断电的时候。FLASH 被异常改写,出现各种各样的异常(整片4 g% X1 e; B: t" v4 @
别擦除、中断向量表被改写为 0、写保护被清掉、被加上读保护 ……..)8 t9 @8 v! ~/ p! ]4 ]7 {
6 B" w0 f" Q$ R
问 题 调 研 :0 F8 m0 |) h! v9 Z
首先跟客户沟通:) s( b) G8 i0 n# l4 m0 e+ X( c/ s0 o$ m
•  他们是延续之前的项目,进行的一些软硬件简单修改。之前的项目没有出现过类似的问题。& C$ o5 ^1 b1 L7 c3 P! P
•  确认通断电的时间是足够,就是说他们断电后所有的 VDD 都回到 0.上电的时序也是正常。6 o2 d/ C0 N+ w5 K
•  原理图确认这是 follow 了我们的参考设计。; G6 d: J: l, H0 M& K9 u
•  测量工作时的电压,只是发觉他们上电时会有一些抖动,其它一切正常。尝试让他们改善上电电路,去掉这一抖2 ^4 k" t  z( o9 @. O$ H
动,再次实验,仍然出现类似的问题。
+ }: C- m5 E1 w( r7 N" F  }: k到这里似乎跟硬件没有任何的问题了, 接着让客户代码进行删减又做了如下实验:
% D& d, @- b9 T" }1 l+ m1, 去掉能 APP 部分代码,仅仅留下 IAP 代码。做相同的实验,问题再现。
5 |6 l' o, s5 D. q0 d2, 进一步删减程序,客户去掉程序中所有跟 flash 以及 OPTION BYTE 相关的部分,做相同的实验,问题再现。
/ S+ n. M: w/ {* _+ E, b$ ^! w3, 没招,再删,最后仅仅留下下面程序:9 C% e0 K/ _) _, g
8.png + ^  t8 R5 n' C. ^. b
/ V  _+ ]7 c$ X
9.png
" t4 U! {9 V/ q  F6 m& j& M7 k( u- T. e
10.png
0 ~* c. C  [; A* X2 G5 h客户反应只要掉用了 delay_init 函数就会出问题,不调用就不会出问题(仅仅做了一天的实验)。到这里似乎跟我们的软
' c" T( |5 E4 G2 P( o件有关系了,我们进一步分析发现他们改写了我们的 systick 的 config 函数,那么我就做下一个实验。, q. G/ Q1 t  C# B/ V" ^
4, 改为标准库中的 systick 例程,去掉写保护,加一个 GPIO 定时翻转程序。同时在烧录之后,加上写保护,做相( T4 o( `* Q5 R6 {1 K; A7 @
同的实验,问题再现。( O& V! y6 f  o* N
5, 到这里我们都怀疑是芯片真的有损伤了,我们再做了一个实验用 cubemx 生成了一个 GPIO 翻转和 systick 的延; g+ H! p) O" h* D7 o4 x! G
时,做相同的实验,问题再现。
" g! V$ G! J% Y3 l7 t6 q2 A原因:1 A1 Z5 Q5 o4 Y3 K4 Y$ }4 p$ b
到这里我们似乎是江郎才尽,只能坐等 FA 的报告,看看芯片是否真的坏了与否。我们抱着怀疑一切的态度,请他们的硬件# a  j. S1 V( C6 K
工程师再次确认他们的硬件和原理图的一致性,我们怀疑他们的硬件是否有装错的元器件。主要集中在 MCU 周边。最后他们. {" ~) j# L8 F5 T5 t* D# b% i
的工程反馈,他们的 PDR_ON 脚,板子上装的元器件跟原理图不一致。他们把 R47 和 R48 都装了,那么相当于在 PDR_ON9 X, g; [* ]3 C/ T4 w( P
上是一个 0.6v 的电压,也就是关断了 MCU 内部复位。
+ }8 ~% k5 s; B真是山穷水尽疑无路,柳暗花明又一村,问题应该跟内部复位有关。3 p4 |7 V+ E/ ^' p6 w0 q0 ^+ ]* v8 I
11.png
1 r5 Q5 p+ n" F4 q1 G9 G0 K" {2 S; X5 c
12.png
; m4 X% N6 c+ E' h  O0 ]从上面规格书来看,如果我们关断 mcu 内部的复位电路,需要在外部接一个复位信号保证 VDD 达到正常工作电压之0 h* P: H9 [1 Q) C; p, R
前一直使 MCU 处于复位状态。$ u& g( b2 L  J& z

6 g' l3 s9 n  R5 f, A8 _...
; j6 J) G& P3 _
3 y2 [; {7 W1 ~$ M5 \了解更多,请下载后阅读2 i  Y! H) a& R5 E/ Y
' Z/ C$ S/ H1 H; ^( n4 K
下载地址1>>      下载地址2>>       更多实战经验>>$ o4 D; z2 \  v$ A; w

1 o3 n6 W9 N* |) o3 s
赞 收藏 1 评论8 发布时间:2018-5-17 13:18

举报

8个回答
七哥 回答时间:2018-5-17 17:56:40
过程描述详细,分析到位。+ Z: [: `3 X+ G* ?# W. g/ a

$ ~8 U+ H+ a* p  l1 I总之,问题出在,不按套路出牌。
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
8 B4 @( n! m9 G' ~0 _7 ]學習了,謝謝分享.

$ U( Z0 ^. @/ a( \- C5 J  }! r不客气哦
aimejia 回答时间:2018-5-21 09:50:18
toofree 发表于 2018-5-17 17:56
" X+ a) I# L* p( b, p0 J* @8 {过程描述详细,分析到位。
# A" F8 Q/ G5 O6 Z8 V, {8 ?. w. t
总之,问题出在,不按套路出牌。

4 y, c. k: i3 o$ A' r$ G看来问题都要一个个排查啊
lyzd 回答时间:2018-6-29 09:52:17
学习到了,,,,
robter 回答时间:2018-7-17 21:25:57
都是很好的经验,值得借鉴
365天 回答时间:2019-1-24 13:15:02
长知识。学习如何排查问题。
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版