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

基于STM32 擦除flash失败问题的经验分享

[复制链接]
攻城狮Melo 发布时间:2023-3-21 17:48
硬件平台STM32F407VE,HAL库。标准库不会有此问题- w9 J3 X" J% W
+ c5 z/ K3 @* A1 j/ Z* O
软件跑freertos! m: a( H* ]0 I; t" H
& \2 y" d# i4 B2 e( n/ m
问题描述:STM32 擦除flash失败,CPU跳不出串口中断,看门狗重启。
( S1 L) g! ~. w& ~0 E# C

. P5 U+ s) @5 f: H' j2 s# B2 T问题一、FlashStatus!=HAL_OK解决办法:
7 `" L! |# }8 L! N1 d4 N! k4 i
* @1 v' T0 S1 \& s. p& S1 U- X1、flash擦写前禁止flash数据缓存,操作完后恢复0 O1 s7 R' h# q; c6 M$ h

0 H' }7 T7 d* @4 ?( L/* Disable data cache */
) k  j; ?8 b0 \0 N# U0 I      __HAL_FLASH_DATA_CACHE_DISABLE();//FLASH操作期间,必须禁止数据缓存0 i4 p( x" v4 W
6 V4 @8 H: \) y8 p. D. j1 _9 ~
        /* Enable data cache */# @, y5 c3 |1 h. T$ p
    __HAL_FLASH_DATA_CACHE_ENABLE();//开启数据缓存% G9 D$ b, o- W: W. I3 F
) i; `; f) C( K  h; r$ ?! ?% }: H
5 L; Q+ \1 E' {# |+ |
2、如果上述办法还不行可以在操作flash前增加清标志操作
( L+ v% ^1 p' k$ }( X
- g# j9 c* _3 m& u* i# U5 P) W9 z  /* Clear pending flags (if any) */: F' ~  Q; i# l. A# o
  __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP    | FLASH_FLAG_OPERR | FLASH_FLAG_WRPERR | \
0 v# t; c+ [1 f' h* |: y                         FLASH_FLAG_PGAERR | FLASH_FLAG_PGPERR | FLASH_FLAG_PGSERR);
5 I/ c9 D' z" \2 F
4 e# p) p& W3 e# N

2 b$ A1 i: `2 u7 Y# j  L5 h3、看门狗影响
' `+ F: Z2 v( [2 u' Y& N操作flash期间不要调用HAL_IWDG_Refresh(&hiwdg);
0 D' h/ j2 d$ o/ r% W  Y
, g2 {. T3 {% _$ ]: x8 L5 L并且看门狗未开启或者屏蔽MX_IWDG_Init();的初始化0 S9 `/ y* M2 T% e, c

6 S) l# Q2 [; c  U' [. A
软件最好不调用HAL_IWDG_Refresh(&hiwdg);$ ~" n0 J0 }: J! s8 o! f
+ s3 V! M4 K% x" ^+ k8 `6 X0 o1 t) I
e05570f93a9d4b45af6c28789ac8b3b8.png   m" U6 l1 G3 }* N2 u
( F+ [+ [. e* z
问题二:擦除flash失败,死机问题
& c& o% ^, \- t我用了串口空闲中断+DMA接收、发送模式6 v8 `0 |$ l% h5 S) R+ Q
+ Q$ k1 ?7 i4 Q8 G- Z- m
软件仿真发现很容易在擦flash的时候CPU频繁进入串口中断(其他任务无法进入),最后复位
' y% p; r7 D3 o% j7 M* k$ k
' r# K  h  N4 g* @
关键问题是:+ Y3 B- P2 m& F+ V( v
- u( N3 ^6 g) j0 _
HAL_UART_IRQHandler(&huart2);必须在中断里优先执行,放在最前端,不能放在用户程序以后。4 G4 X9 |. Y" ~1 A/ C

4 O/ k  B' ]# Z% u8 R6 m0 p+ K
如果不用flash擦写,顺序其实关系不大。
' s" Z' m# p: D- @5 k$ e! t
: K  y, n" v5 a0 O& u
可能跟芯片也有关系(之前用F429就没这个问题)
# e" {3 ?* w8 S* `1 J3 y0 C! q0 e& _, E) x  J. S, H* E
e8c79ff264e7403b859febd2154ff4da.png 4 A* ]+ {7 a$ \* d+ T+ J3 S8 C5 z
/ P7 y9 a+ M# e5 B$ ]* v% P/ C
$ w2 b" v  X) k5 t' s8 E5 \6 C
————————————————5 j/ V1 D! ~1 {, G8 |
版权声明:axsdffff1& e3 C4 u' a4 M2 n
如有侵权请联系删除5 p7 q3 F4 p, `2 T

" p; @3 Z) g7 Y* M; o2 ^7 H6 [5 Q* i8 I

; v3 r5 N$ p" j8 T7 o
收藏 评论0 发布时间:2023-3-21 17:48

举报

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