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

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

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

[复制链接]
STMCU小助手 发布时间:2021-12-9 10:55
1.在main函数中加入启用读保护功能。
  _1 a4 |' k5 M$ b7 K* {' @  W- v8 J
20201109092040958.png

+ O; p4 p, ^6 ], I# z& D7 B
2 I, ^% j* B. |2.读保护函数+ r& @% ]9 o- D3 I& y. S
. \: \% i$ _2 h+ ]5 T: P

8 M- e& b' q2 v& J1 _% Y
20201109092040946.png
7 G2 M* `- N5 T' T

) x4 M& n' J7 P3 Z; V7 |
) u; @3 T5 s5 j1 p9 G; x
  1. int main(void)5 d* p& |; y( x) M$ f# i
  2. {$ T2 l& H0 U. ?: ?, H; i
  3. Flash_EnableReadProtection();
    , J) K" z; Q# A0 m* S; T
  4. While(1)
    # Z- Y3 `1 a% r+ u& k8 |: x3 k
  5. {$ |* a( f( ]+ g, ^/ U5 l
  6. # a* F% S5 p9 u% ^
  7. }
    $ {( A2 g. `8 L9 i6 r
  8. }
    " |8 ]# @' S7 o' r' h- v

  9. / H" V1 d* s1 T* A2 r% C& Q
  10. void Flash_EnableReadProtection(void). t* g( C! U% {# c% Q
  11. {1 r3 M% I$ Z0 `& i* G( {1 Z( g) b0 S

  12. - b* Y2 D% ~2 G, |! Q! D2 Q' F; L
  13.   FLASH_OBProgramInitTypeDef OBInit;
    ( j6 i- |. _, Z  s) w
  14. 8 ]* e* ]) n- u/ r9 P+ y
  15.   __HAL_FLASH_PREFETCH_BUFFER_DISABLE();# k/ d6 t0 y% b$ F$ h( U* P
  16.   M& I0 Q9 T9 h) r, \: s  s0 J. B
  17.   HAL_FLASHEx_OBGetConfig(&OBInit);
    * n% @4 v6 u5 B( S
  18.   if(OBInit.RDPLevel == OB_RDP_LEVEL_0)) U5 ]/ Y4 C+ s& h7 D" \
  19.   {
    # j! ~, @; E/ W! o3 C. ^3 V" Q0 D
  20.     OBInit.OptionType = OPTIONBYTE_RDP;
    + f( X9 L5 c  v3 ~) f/ r7 Q
  21.     OBInit.RDPLevel = OB_RDP_LEVEL_1;
    9 q  X4 w% N8 P- N; L' n$ r: s
  22.     HAL_FLASH_Unlock();9 c6 Z8 q3 w2 h+ _
  23.     HAL_FLASH_OB_Unlock();8 h4 o9 R3 Q% U" C+ F& h4 d& l5 k
  24.     HAL_FLASHEx_OBProgram(&OBInit);- }* k8 |/ s: _# n( E! Z- Q9 P* f
  25.     HAL_FLASH_OB_Lock();
    2 K8 O6 ^' c5 W
  26.     HAL_FLASH_Lock();8 ~2 h, z1 @3 V: j8 m9 N0 y
  27.   }
    5 c( t1 ], A4 |' f7 |! d% G6 o2 e' q
  28.   __HAL_FLASH_PREFETCH_BUFFER_ENABLE();
    6 [4 U* S2 _3 ^, _* v- [9 h
  29. 9 s6 e& |* r& b) \7 N6 U* d; ?
  30. }% Y3 T0 N/ {+ R0 v+ v! P& J: ~! F

  31. ( u( n/ W# W+ W3 s% T" ^* p* c
  32. void Flash_DisableReadProtection(void)* {; ]& b8 |' g0 w/ F& Q7 ]
  33. {
    6 E9 l4 h+ }9 w/ L- q

  34. " E) [3 e: r0 p1 Z$ f
  35.   FLASH_OBProgramInitTypeDef OBInit;' f* L% Q1 K" y8 _7 r9 G

  36. : Q) u4 E: ]$ g/ L& j9 g
  37.   __HAL_FLASH_PREFETCH_BUFFER_DISABLE();4 G/ v& M! {* E* j

  38. 2 z9 v% h) P' V) q  W/ R7 y
  39.   HAL_FLASHEx_OBGetConfig(&OBInit);' X/ w* C* u3 L  Z
  40.   if(OBInit.RDPLevel == OB_RDP_LEVEL_1)1 j# O% n& F& v' x* Y, P  B
  41.   {
    . g/ m: j( W5 H8 X% G7 R
  42.     OBInit.OptionType = OPTIONBYTE_RDP;
    % ]4 R7 X5 B( H9 K+ e, r8 I
  43.     OBInit.RDPLevel = OB_RDP_LEVEL_0;5 D0 s* O+ ?- i2 S
  44.     HAL_FLASH_Unlock();7 V  U+ y% R) q1 v- _' d
  45.     HAL_FLASH_OB_Unlock();- W! j8 h8 h  N: o" h' d3 ]1 w0 O
  46.     HAL_FLASHEx_OBProgram(&OBInit);" M& z8 a  Q! x4 K2 J. N5 J
  47.     HAL_FLASH_OB_Lock();
    ) r6 P& J: z! a. o" C9 ?7 e
  48.     HAL_FLASH_Lock();; M9 T+ Q8 L1 [$ H: z3 G6 ^4 ?; t
  49.   }
      n+ |6 R  Q; E9 X- }: C* A/ |
  50.   __HAL_FLASH_PREFETCH_BUFFER_ENABLE();* C' @6 E* U1 @, W- {

  51. 1 d6 E/ G7 t+ S- O
  52. }. E# t7 c" Q# @, X) D4 B
复制代码
/ f+ X$ e: F! r) ^8 c& A

# E- N3 r: Y& z2 u: M: f. G: k) P
收藏 评论0 发布时间:2021-12-9 10:55

举报

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