请选择 进入手机版 | 继续访问电脑版

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

FLASH 被异常改写

[复制链接]
aimejia 发布时间:2018-5-17 13:18
本帖最后由 aimejia 于 2018-5-17 13:28 编辑
5 U$ r( a0 ?6 Y: g* B) A
, `  D% l% _+ `* [# C问 题 描 述
, F5 I$ @* n4 J3 ^某客户反馈, 当 MCU 频繁的正常通断电的时候。FLASH 被异常改写,出现各种各样的异常(整片( G* |5 m0 [& H) z) j
别擦除、中断向量表被改写为 0、写保护被清掉、被加上读保护 ……..)
0 _5 U$ s* R. C, P3 x1 Q- }' c% O# ~6 m! [" K' a! J% M# E' E
问 题 调 研 :
7 K& A5 U' y: K* q: N' P( b& s  T首先跟客户沟通:( O7 R% T0 \  B+ r/ Z0 R4 ~3 @: R/ ^9 ]4 [
•  他们是延续之前的项目,进行的一些软硬件简单修改。之前的项目没有出现过类似的问题。
* M9 B" F; B7 g# G•  确认通断电的时间是足够,就是说他们断电后所有的 VDD 都回到 0.上电的时序也是正常。3 ?+ g0 K0 y6 B- f1 y
•  原理图确认这是 follow 了我们的参考设计。
9 l8 A( `$ S4 W•  测量工作时的电压,只是发觉他们上电时会有一些抖动,其它一切正常。尝试让他们改善上电电路,去掉这一抖
" c# i8 T6 n6 C" b* \& n* I8 N' Z# G动,再次实验,仍然出现类似的问题。0 }$ U* T- i( R; Q  u8 W. n' O( _4 ~
到这里似乎跟硬件没有任何的问题了, 接着让客户代码进行删减又做了如下实验:  j% n. p# I& j5 P3 `. j. H) e- L. f
1, 去掉能 APP 部分代码,仅仅留下 IAP 代码。做相同的实验,问题再现。
3 w* @) w9 K) O6 y0 ?) a2, 进一步删减程序,客户去掉程序中所有跟 flash 以及 OPTION BYTE 相关的部分,做相同的实验,问题再现。
) x; a0 d. U( {3, 没招,再删,最后仅仅留下下面程序:
- T: E+ x) {, V2 L4 t+ L: Y 8.png 6 ~5 D4 k7 }, k9 g

  f. z# t) M. L! _/ y7 a 9.png , u6 u7 l& a2 [

+ K7 ~* {% h( e 10.png 6 M) y+ ]5 @' M* ^
客户反应只要掉用了 delay_init 函数就会出问题,不调用就不会出问题(仅仅做了一天的实验)。到这里似乎跟我们的软  F' e+ t6 l) g* a$ G6 r) H
件有关系了,我们进一步分析发现他们改写了我们的 systick 的 config 函数,那么我就做下一个实验。
" R7 ]! L. C4 p4, 改为标准库中的 systick 例程,去掉写保护,加一个 GPIO 定时翻转程序。同时在烧录之后,加上写保护,做相
1 y" Y; O0 {! ~- l, H# T4 K* t% w. H同的实验,问题再现。
6 P" m6 @, {2 H  W/ q5, 到这里我们都怀疑是芯片真的有损伤了,我们再做了一个实验用 cubemx 生成了一个 GPIO 翻转和 systick 的延
7 P0 p9 R& g& F时,做相同的实验,问题再现。
( q/ r9 |2 e7 n原因:0 d1 u9 i# v1 V6 \) a
到这里我们似乎是江郎才尽,只能坐等 FA 的报告,看看芯片是否真的坏了与否。我们抱着怀疑一切的态度,请他们的硬件
# n$ X1 z( V; v工程师再次确认他们的硬件和原理图的一致性,我们怀疑他们的硬件是否有装错的元器件。主要集中在 MCU 周边。最后他们
3 g3 o6 h; q) V( N# S- M: H5 ?/ T5 |的工程反馈,他们的 PDR_ON 脚,板子上装的元器件跟原理图不一致。他们把 R47 和 R48 都装了,那么相当于在 PDR_ON7 ?/ B9 L' Q. l4 P- `* y
上是一个 0.6v 的电压,也就是关断了 MCU 内部复位。+ a0 T' A! t* `: N& F
真是山穷水尽疑无路,柳暗花明又一村,问题应该跟内部复位有关。$ X1 ]  U! m" ]' D6 Y/ k/ X
11.png , o) K$ ]) A) s9 \, O
% p  e0 ~' u3 ?" }0 m
12.png
1 y; s' |0 L0 v  r4 q- p从上面规格书来看,如果我们关断 mcu 内部的复位电路,需要在外部接一个复位信号保证 VDD 达到正常工作电压之4 Z2 C+ S+ x% e: `0 ?
前一直使 MCU 处于复位状态。: j/ _+ K) O1 a  f+ t" g

: O8 U' J; [& z1 E. O8 m...8 C. n, U- ?; p+ f

% x/ y; `9 M6 r. U" Q1 i6 z* R  J了解更多,请下载后阅读
  K$ `7 A% h: E% i6 N4 T, K2 d" {8 H* I$ g; k7 E3 Z
下载地址1>>      下载地址2>>       更多实战经验>>3 s7 Z0 C6 I. D9 \! `- u8 P
4 m% ~+ k$ l+ q; \4 b1 w; A, w
收藏 1 评论8 发布时间:2018-5-17 13:18

举报

8个回答
七哥 回答时间:2018-5-17 17:56:40
过程描述详细,分析到位。
4 G; f: Z, G. `  N5 G
: L3 C1 z0 H4 J3 A总之,问题出在,不按套路出牌。
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; ?: ]% E! z; y' x6 o6 a! h" n
學習了,謝謝分享.
" h5 a- m6 q7 z1 y& x5 l/ l# q+ ~
不客气哦
aimejia 回答时间:2018-5-21 09:50:18
toofree 发表于 2018-5-17 17:56+ j, ?1 w1 k: W: k6 X# k
过程描述详细,分析到位。
1 x2 W3 {& U" t/ f
4 ?* Q4 x9 ~6 a总之,问题出在,不按套路出牌。

& S: B1 r" I7 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 手机版