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

【经验分享】干扰环境下 Flash 数据丢失

[复制链接]
STMCU小助手 发布时间:2022-2-21 19:58
问题:
, v9 \2 {; B: M9 Y6 C& }该问题由某客户提出,发生在 STM32F103VBT6 器件上。据其工程师讲述:其产品中使用了 STM32,已批量生产。其部分产品在交予客户使用一段时间之后出现故障。其工程师在对故障产品进行分析时发现,STM32 的 Flash 中部分数据丢失,原数据皆被 0xFF 取代。丢失数据的 Flash 区间的地址不固定,大小也不固定,呈一定随机性。该现象只在车载环境下发生,而在实验室无法复现。% a: p. G1 \* J$ o3 \& v

' @1 B3 U( |% M' o; f2 Y7 s- u" B$ f3 ?, w1 [# Z4 w+ J
调研:
" z6 a: X8 {! }: G' a检查硬件设计,核对 VDD、VDDA、VBAT、Vref+、Vref-、VSS、VSSA、NRST、BOOT0、BOOT1 等管脚的周边电路设计,未见异常。检查软件设计,发现其中有对 Flash 进行擦除和写入的操作,分别如表(二)及表(一)所示:: W' ?# m0 R) o( K- M9 `9 K9 {
8 A0 P$ f9 _" I7 z
6M0GH}J3CZ}}3]~]UPN3M3V.png
- e* Q* O& R  f) a
; u7 n0 x: d% K+ J( n7 \, d4 x `~1J[(@N1}M7PESN(6~E283.png
5 l2 D% E- o9 \4 |+ X/ }
  G+ h7 u. b$ u  p- V% a修改这两个函数,对函数体内的代码只保留其中的行(1)、行(2)、行(3),其余全部删除。重新编译后更新到之前出现问题的若干产品中,然后将这些产品安装到原来的工作环境中长期测试,结果显示更新软件后的产品不再出现 Flash 中数据丢失的现象。
3 o2 c6 D: A* b2 s  q; w; r
: P$ ]+ h+ R. x9 B. G$ t2 y
8 M" {0 z3 [6 ]
# Y/ C0 t; s1 D) \4 ^结论:
+ R$ Y+ X% L; L. b" E干扰造成 STM32 中的程序跑飞,从而错误的执行了对 Flash 进行擦除或写入操作的代码,最终导致Flash 中的内容丢失。
# B! [6 @- F% p, {; v; H8 b6 i
$ T2 c8 G' c& t" v) F, d7 |) C$ G
处理:: k! g4 P( x) R- E  y- |
软件中要保证对 Flash 擦除或写入的操作的可控性,要有严格的逻辑验证,否则最好不要在软件加入这样代码。
8 ]5 Y7 A4 L( `7 _( t1 A6 j1 P2 L' U( B4 E
建议:
2 D+ p+ H- p( W: n' O什么是可控性?如何做到严格的逻辑验证?在这个问题上不妨借鉴一下成功的案例:美国导弹核潜艇上对导弹发射按钮的管理。核武器的威力是强大的,发射按钮的管理权掌握在单个人的手里是可怕的。为了避免如此危险的武器被滥用,在导弹核潜艇上,导弹的发射按钮是由三个人共同管理的。艇长、副艇长各有一把钥匙,武控官掌握着口令。发射导弹时,必须由武控官输入口令,然后艇长、副艇长同时用各自的钥匙操纵各自的按钮,导弹才得以发射。考虑特殊的情况,如果某个人通过特别的手段同时掌握了两把钥匙和口令,能否发射导弹?答案是不能。因为艇长、副艇长和武控官各自的作业位置相距很远,而且有时间限制,一个人是无法完成这三项作业的。如果艇长、副艇长和武控官合谋叛乱又如何呢?还是发射不了导弹。因为发射导弹的另一半口令和导弹的瞄准参数根本不在潜艇上,只有在下达核攻击命令时才通过密文发给潜艇。甚至,在导弹发射之后,艇上人员也无从知到它将飞往何处,也控制不了。这样,强大的武器最终掌握在中央指挥机关的手里。回到 STM32 的问题,如表(一)、表(二)所示的函数,谈不上逻辑验证,一旦被调用会好不犹豫的执行下去,而不在乎调用是合法的还是非法的。为了避免 Flash 被误擦、误写,STM32 在硬件设计上是有所考虑的,就是在擦除或写入之前,必须验证口令,如果口令不对 Flash 控制器拒绝相应的操作。然而,表(一)、表(二)所示的函数中,口令的验证形同虚设,没有起到应有的作用。因为,在这两段程序中,口令的验证是无条件通过的。犹如锁上门后,却把钥匙留在锁眼里,是不能防盗的。仿照核潜艇的管理思路给出一个一般性的流程,如表(三)所示,供参考。
; \; U+ F$ |5 m4 I0 a# f( F
' f, p+ o8 `$ f8 ]. S6 i9 @' G7 O
收藏 评论0 发布时间:2022-2-21 19:58

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版