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

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

[复制链接]
STMCU小助手 发布时间:2021-12-9 10:55
1.在main函数中加入启用读保护功能。
( \/ D( B8 c1 [, p7 j# p; \& `, Z. J5 e5 R% H+ I
20201109092040958.png
4 f6 {) j/ Q! ?6 k0 b( I
; U5 Y' ?' Z/ U% I
2.读保护函数
+ k9 \4 X; {* r
8 f2 l0 T$ n/ T) p+ }$ d" @( l/ Y& {
; @2 {7 R* a* M
20201109092040946.png

9 v9 v4 {& ^! }1 ]  i
' X4 V; r. ]0 S# Q% ]4 w/ D% `6 O
  1. int main(void)! W% w7 f: h2 [: E, v$ S. L
  2. {
    % a8 N' i2 Q. a% [( C# i
  3. Flash_EnableReadProtection();3 }: ^5 W7 _) w+ I  K
  4. While(1)
    4 I& r" o) a3 g8 X: a
  5. {
    " B( s4 H$ T0 {( X5 Q) Z
  6. # ^* V! B3 r* b, e6 D8 l& [! i
  7. }
    . Z8 w  I7 \) e/ o( B
  8. }5 [: w8 ]) n& l; V. L: ]5 a! `( u
  9. ! v( y2 }2 _- u; V% p
  10. void Flash_EnableReadProtection(void)
    - {* U6 l; B+ O- _5 H: s: K* r1 _
  11. {# b+ _* @  Z* F

  12. ) z- T/ S- n( `7 h0 |9 L
  13.   FLASH_OBProgramInitTypeDef OBInit;
    % a' \7 f# h% p7 C* n

  14. 2 g) m* A+ f+ n4 U  q) y- q
  15.   __HAL_FLASH_PREFETCH_BUFFER_DISABLE();; f6 d0 s/ O: O' G, {
  16. 3 v/ M9 }! t- r: U( i* W
  17.   HAL_FLASHEx_OBGetConfig(&OBInit);( n0 U5 c$ |  q' L* Z2 e
  18.   if(OBInit.RDPLevel == OB_RDP_LEVEL_0)- {# M  g! C; i0 y/ E
  19.   {
    4 q8 c2 z& w, Z3 f7 b# ]5 [9 D
  20.     OBInit.OptionType = OPTIONBYTE_RDP;5 F! c* I& m4 P& u
  21.     OBInit.RDPLevel = OB_RDP_LEVEL_1;; X$ O! Y5 k! E! U) U% s) i! [2 K; d
  22.     HAL_FLASH_Unlock();
    : A- x/ H! z( Z- w& n
  23.     HAL_FLASH_OB_Unlock();
    ) r0 \) F5 w$ z  ]4 i2 N. Z
  24.     HAL_FLASHEx_OBProgram(&OBInit);
    3 U  L2 k. P7 N
  25.     HAL_FLASH_OB_Lock();
    . r5 [! w9 z+ X0 y: D. o+ p
  26.     HAL_FLASH_Lock();
    0 ~% h8 ~3 L7 a& Q
  27.   }
    ! B& D4 M( U. w; b4 [3 h6 w& s
  28.   __HAL_FLASH_PREFETCH_BUFFER_ENABLE();
    / l3 V  O# ~# c  s7 w8 n

  29. 0 y2 D5 V3 y8 R# g' S
  30. }
    5 R! F- @$ D/ ?0 [1 d/ i* F/ V, q
  31. 2 N) h3 a: D, P8 j+ l6 c5 ]
  32. void Flash_DisableReadProtection(void)
    ! u3 Y, Q0 i. h7 z+ ]2 b
  33. {* A) m# J/ d2 c3 |4 G6 F+ q, ]
  34. ' H; q' {: [0 I9 t; U/ b( l+ s
  35.   FLASH_OBProgramInitTypeDef OBInit;7 i% J+ m5 M6 s: E+ O( D
  36. 4 ~5 W: u# d0 E! {2 @; T( z
  37.   __HAL_FLASH_PREFETCH_BUFFER_DISABLE();( d. z6 H/ M& f; @& H* n9 F

  38. 8 c# {8 l% ?, U6 b" K% }4 n, s
  39.   HAL_FLASHEx_OBGetConfig(&OBInit);
    " R) C# `1 L) S5 e
  40.   if(OBInit.RDPLevel == OB_RDP_LEVEL_1)( S' Y, d5 g* |, I+ Q
  41.   {2 _- d, h6 K" \9 e9 @
  42.     OBInit.OptionType = OPTIONBYTE_RDP;/ P; z$ o# u  ~7 o" L6 J
  43.     OBInit.RDPLevel = OB_RDP_LEVEL_0;
    6 t9 G6 T$ @: q' M) J& \
  44.     HAL_FLASH_Unlock();$ h4 O) M; e. a2 r; t
  45.     HAL_FLASH_OB_Unlock();- Y1 n0 C- y, i1 j0 n+ X) X
  46.     HAL_FLASHEx_OBProgram(&OBInit);
    - p' g% y, Y" x" }+ N0 A
  47.     HAL_FLASH_OB_Lock();
    0 F6 u2 A' P. c
  48.     HAL_FLASH_Lock();
    7 N* G7 S4 `( A# {& q
  49.   }( j! ?7 U9 u7 p
  50.   __HAL_FLASH_PREFETCH_BUFFER_ENABLE();- b) L8 _, I( A) U
  51. $ O7 z5 @! |/ p; Y
  52. }  {! |9 g0 k+ O& c5 o) I  \5 ^
复制代码

8 `2 z! I) k% D) {
/ N- P- x, @: Z8 g/ g
收藏 评论0 发布时间:2021-12-9 10:55

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版