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

FLASH 被异常改写

[复制链接]
aimejia 发布时间:2018-5-17 13:18
本帖最后由 aimejia 于 2018-5-17 13:28 编辑
" x( g, Y2 d2 ?8 w  W( y1 N
) D/ X( B4 x7 Q0 v* h1 W3 v6 `. i问 题 描 述 ) ^% H+ `, w# v  v: l
某客户反馈, 当 MCU 频繁的正常通断电的时候。FLASH 被异常改写,出现各种各样的异常(整片
6 Q# ~+ v8 j) c. L; e" l别擦除、中断向量表被改写为 0、写保护被清掉、被加上读保护 ……..)
8 Y4 W) ^& x) `. ?' T" o
" O5 L8 s! F, j) s; \6 C. g问 题 调 研 :
* [( o" y+ E( n, H% K: K首先跟客户沟通:
& z$ l( y, ^' r* n1 Y' N0 g( t& f•  他们是延续之前的项目,进行的一些软硬件简单修改。之前的项目没有出现过类似的问题。
! E$ e2 S& n7 t# ^9 ]2 b•  确认通断电的时间是足够,就是说他们断电后所有的 VDD 都回到 0.上电的时序也是正常。
5 P/ I: O5 l: L7 S( x# P•  原理图确认这是 follow 了我们的参考设计。! r4 M  U% h! ?: x1 y8 Q
•  测量工作时的电压,只是发觉他们上电时会有一些抖动,其它一切正常。尝试让他们改善上电电路,去掉这一抖8 w$ u4 ?7 g! h8 ^- Y- H2 Q
动,再次实验,仍然出现类似的问题。( k0 o4 q2 y, [* K8 o* Q! }
到这里似乎跟硬件没有任何的问题了, 接着让客户代码进行删减又做了如下实验:: ?/ S0 i! W( }  h9 o; T
1, 去掉能 APP 部分代码,仅仅留下 IAP 代码。做相同的实验,问题再现。3 i) q0 a: k4 H' j- S
2, 进一步删减程序,客户去掉程序中所有跟 flash 以及 OPTION BYTE 相关的部分,做相同的实验,问题再现。
3 C  X5 \1 p' Q) v3, 没招,再删,最后仅仅留下下面程序:6 E2 F' G( L. f) u+ x/ Q
8.png
/ m' H# Z. X; t" v3 b  J/ R1 G# N( q' S/ }  U% |
9.png
) R7 f. H$ Q6 f2 A  H* b% |) `+ u6 ?" l2 N8 q; o9 V4 q5 V/ [
10.png * [" l- W  f0 \: ]( ?! ^1 V
客户反应只要掉用了 delay_init 函数就会出问题,不调用就不会出问题(仅仅做了一天的实验)。到这里似乎跟我们的软
; ]+ \6 j: y$ E. {3 c件有关系了,我们进一步分析发现他们改写了我们的 systick 的 config 函数,那么我就做下一个实验。+ Q8 ?! B! P* A" Y; V; U
4, 改为标准库中的 systick 例程,去掉写保护,加一个 GPIO 定时翻转程序。同时在烧录之后,加上写保护,做相" U# K0 g% V) L; r: i5 ]
同的实验,问题再现。1 k) \* G" Z" D* Q4 I3 l" r0 _7 g
5, 到这里我们都怀疑是芯片真的有损伤了,我们再做了一个实验用 cubemx 生成了一个 GPIO 翻转和 systick 的延9 B4 Y# s# R$ F- q" l$ o9 m; e1 i
时,做相同的实验,问题再现。
' P% ^! ?% D% q. U原因:1 s& @! N0 q4 O. `8 Y
到这里我们似乎是江郎才尽,只能坐等 FA 的报告,看看芯片是否真的坏了与否。我们抱着怀疑一切的态度,请他们的硬件! N; o; H' N* A. b6 f1 F
工程师再次确认他们的硬件和原理图的一致性,我们怀疑他们的硬件是否有装错的元器件。主要集中在 MCU 周边。最后他们
2 I8 h$ J2 g6 a4 Y" n7 T3 p' x8 P3 x的工程反馈,他们的 PDR_ON 脚,板子上装的元器件跟原理图不一致。他们把 R47 和 R48 都装了,那么相当于在 PDR_ON4 ?# D2 _) o9 f1 t! S
上是一个 0.6v 的电压,也就是关断了 MCU 内部复位。' C- l1 G& k, k
真是山穷水尽疑无路,柳暗花明又一村,问题应该跟内部复位有关。. s3 k$ ^# F9 W# I* h2 u0 s, d6 X1 a6 ?
11.png : V8 p+ E" m4 W& l7 K9 s

* |5 i( V7 E( S$ ?& \! U! c- Y 12.png
: p" Y  J$ M8 o0 E  g3 \从上面规格书来看,如果我们关断 mcu 内部的复位电路,需要在外部接一个复位信号保证 VDD 达到正常工作电压之# O2 R5 f" i. i0 o# x
前一直使 MCU 处于复位状态。  f% G5 U  S2 J( s" o- ^4 p
7 {7 c8 \" ~4 B$ C. V! h
...* X5 }) l# E/ E/ p, @7 ^0 u+ d

( q6 V, m3 ]  E# l- k: f1 i了解更多,请下载后阅读: F% E1 ]8 T4 ~4 t4 `; \) d1 w+ v
$ e5 O, k( X$ m& I( R6 I$ j
下载地址1>>      下载地址2>>       更多实战经验>>
4 R& Z. I# [/ n  o; ]
' n  p: l" r3 a, S
收藏 1 评论8 发布时间:2018-5-17 13:18

举报

8个回答
七哥 回答时间:2018-5-17 17:56:40
过程描述详细,分析到位。0 `7 R1 |$ j' L3 r8 p  F; {
$ @% t  K. c( v+ f. q
总之,问题出在,不按套路出牌。
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- b! Q* N6 o& J& |5 L" x' ~. e5 T
學習了,謝謝分享.
; y, p7 n; j. J* u1 f
不客气哦
aimejia 回答时间:2018-5-21 09:50:18
toofree 发表于 2018-5-17 17:56& e& Z$ f0 O0 s: |7 p5 J
过程描述详细,分析到位。3 Z: o* w4 {0 t( h9 g

! w& W0 w! t- Z总之,问题出在,不按套路出牌。

. M+ ~& b6 ^# s! G8 x看来问题都要一个个排查啊
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 手机版