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

【经验分享】STM32G031 程序设置读保护

[复制链接]
STMCU小助手 发布时间:2021-12-9 10:55
1.在main函数中加入启用读保护功能。5 K9 a' a  E# l6 a0 d5 @
& S9 O+ e- v; T) Y9 c$ M5 P* W4 E! o, X
20201109092040958.png

4 W: h6 ?( D* b# X# Y$ i( i1 p+ z. {* S
2.读保护函数
) ?% b8 l2 n; k" ]! u
7 U6 }& K/ y3 i  q# I8 ]: M  j& O" u9 Z- m7 ?7 O  _
20201109092040946.png

5 P2 o/ Z1 i% ^* ]
8 n+ }9 n7 ^7 w7 z5 ?# j% J7 q- W7 u' {; B( E5 u7 U
  1. int main(void)
    1 G6 H7 e' n' r6 Z# \7 Q% O* X
  2. {$ L9 P6 J" c" c+ g
  3. Flash_EnableReadProtection();
    * z# e, q2 r8 q# L; \% n/ o
  4. While(1)
    # q! K3 w3 }: }% ~
  5. {
    7 y; ?& F, Z' ^5 }* r! X

  6. ' w3 f. j; p' R7 C$ T1 U) v
  7. }
    " Q4 T* a* z) @$ G0 u2 f
  8. }
      K9 {7 d* q; M# y- M
  9. 0 Q' {3 f: ?  ~2 a2 T  l5 s) b
  10. void Flash_EnableReadProtection(void)9 U% p4 B- b$ j7 L9 Q7 O' c$ p6 t
  11. {
      y, y& o* A' `/ g  U. G

  12. & |1 @( V- g' V+ e
  13.   FLASH_OBProgramInitTypeDef OBInit;: I- N( c; W1 A4 s+ p. }

  14. 2 z# O8 H6 s$ o, W  u+ `
  15.   __HAL_FLASH_PREFETCH_BUFFER_DISABLE();4 M) |/ f) w: ^& H& t

  16. 3 g  X/ b7 G% u& _
  17.   HAL_FLASHEx_OBGetConfig(&OBInit);
    4 R8 \  a; I! c5 U/ e+ h  ^' y
  18.   if(OBInit.RDPLevel == OB_RDP_LEVEL_0)
    ) [1 m3 g" z* N
  19.   {
    , d+ h8 \  d0 g
  20.     OBInit.OptionType = OPTIONBYTE_RDP;" \; G  e5 g% m2 r/ y  c2 `
  21.     OBInit.RDPLevel = OB_RDP_LEVEL_1;+ A1 Z; {. W6 C  a4 h
  22.     HAL_FLASH_Unlock();/ q6 S3 G& r; n
  23.     HAL_FLASH_OB_Unlock();
    : x( L" O2 X) b& f# I" [: c" I
  24.     HAL_FLASHEx_OBProgram(&OBInit);
    ( @7 q( c9 I3 A& N2 O2 N
  25.     HAL_FLASH_OB_Lock();0 S2 o4 b3 P6 H& t$ {9 Y8 @
  26.     HAL_FLASH_Lock();1 C5 K1 {* A% \: p  E1 E1 L4 f
  27.   }
    1 v0 z, u) Y6 U0 @
  28.   __HAL_FLASH_PREFETCH_BUFFER_ENABLE();3 h: S  n! h; Q( A
  29. ' T1 d1 E; @/ D; b8 i1 G/ Y" K/ ^
  30. }: `/ N. n* _/ r' ?

  31. " X, w2 d" I6 k
  32. void Flash_DisableReadProtection(void)
    # k6 u# A1 \+ K. y* L
  33. {
    ; [6 T0 d  d7 i( b% z2 r& ^

  34.   |/ I3 k( b+ U
  35.   FLASH_OBProgramInitTypeDef OBInit;: t, V" D( ^4 n8 Q5 c- K3 P3 u
  36. : r, Z+ Y; h, r  A' a" Q0 P: A/ M
  37.   __HAL_FLASH_PREFETCH_BUFFER_DISABLE();
    3 R+ Y' M) V' d: ]$ N6 T. u: v- f

  38. 7 j& k3 s" T6 q: u' U( n7 a5 D
  39.   HAL_FLASHEx_OBGetConfig(&OBInit);
    8 B2 Z, g* Y% J0 |
  40.   if(OBInit.RDPLevel == OB_RDP_LEVEL_1)
    3 Z5 j0 b5 }8 ^# w
  41.   {# G8 c8 ^5 E, k" X7 o6 `
  42.     OBInit.OptionType = OPTIONBYTE_RDP;) I4 E7 y9 a. [0 s( r+ F$ O
  43.     OBInit.RDPLevel = OB_RDP_LEVEL_0;, a* Q$ J9 @8 _& T) E; F
  44.     HAL_FLASH_Unlock();
    8 r/ `( h/ r: H5 O0 G
  45.     HAL_FLASH_OB_Unlock();
    & t$ S9 E+ q3 c! ]# z5 ^( b, C- O# s9 c
  46.     HAL_FLASHEx_OBProgram(&OBInit);: Q. Q5 M( e1 c- \# {1 ^# \2 G7 \
  47.     HAL_FLASH_OB_Lock();# f  d9 |7 N8 Q3 W
  48.     HAL_FLASH_Lock();
    ) ], H0 `2 [0 @7 Y+ c+ Z
  49.   }
    . W2 o9 f/ J. `5 {. t- z
  50.   __HAL_FLASH_PREFETCH_BUFFER_ENABLE();3 p3 v7 w, @  x/ V

  51. $ t; e! z" Q" p8 K( c! `: Q
  52. }; \, ~' q  {6 [
复制代码
- Z, W/ I2 ^7 v6 b) S1 s

/ [' J/ N7 G( A1 C/ V. I8 {
收藏 评论0 发布时间:2021-12-9 10:55

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版