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

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

[复制链接]
STMCU小助手 发布时间:2021-11-8 01:02
1.在main函数中加入启用读保护功能。
% Y1 @$ }1 w, g9 ^7 x9 i1 S' G, a' \6 X" l
20201109092040958.png
5 ~0 Z2 p7 }7 Q$ x' |8 c
& ~/ o5 Y& x' b3 _& d
2.读保护函数
: ^  L7 J& J* [4 v* g9 S) o$ p1 _% e7 |4 @) o1 g
20201109092040946.png
: J- w; ?6 @8 n: N* {
% m2 v4 j! g/ o+ W" H$ M* l
8 ~6 H2 D: [  X7 o( [2 h, j
  1. int main(void)
    - V  |( m3 Q- R4 j- o' |+ D# b
  2. {# X- K$ n8 Q% C# ?, Y5 j+ [9 ^' m
  3. Flash_EnableReadProtection();. |5 I% O- ?6 s
  4. While(1)
    . b: F5 r2 l& _; p) Y; G0 x5 c# P
  5. {1 ?2 N: i" b0 K6 N

  6. $ E. r& T" r5 G+ K3 e2 U! z0 Y
  7. }# V, s6 R% C7 l6 `! ^
  8. }
    7 P. J3 G/ C/ t7 t9 E0 P
  9. 5 g+ J2 ]( J, E, W
  10. void Flash_EnableReadProtection(void)
    2 o( [4 J8 \3 Q
  11. {7 H# F1 ]3 g( y- U9 A
  12. , E# D' f* N% r
  13.   FLASH_OBProgramInitTypeDef OBInit;
    # p% ~9 K; F/ g( y# b5 x

  14. : U6 O( G* y( M. k; r3 D; J# m; ?
  15.   __HAL_FLASH_PREFETCH_BUFFER_DISABLE();
    ; X7 [( n, ~! W5 _( O  N! ?. ]
  16. ' [( J* F% L* E5 F" _& [
  17.   HAL_FLASHEx_OBGetConfig(&OBInit);
    1 r# u( J: i* b- {3 I! H4 T$ j& v
  18.   if(OBInit.RDPLevel == OB_RDP_LEVEL_0)8 l: y( T  }) A
  19.   {: y# `# F1 H0 ~
  20.     OBInit.OptionType = OPTIONBYTE_RDP;. ^' ]! S: R1 I5 S4 @  H
  21.     OBInit.RDPLevel = OB_RDP_LEVEL_1;
    . G. e: N7 ?( R7 W, m2 P
  22.     HAL_FLASH_Unlock();# ?6 i; W, V" H. ]3 L
  23.     HAL_FLASH_OB_Unlock();
    & y! W  b% c; y" y) O7 {
  24.     HAL_FLASHEx_OBProgram(&OBInit);5 `$ U5 w. @- k$ O- p1 d- ?  N
  25.     HAL_FLASH_OB_Lock();
    6 n$ ^& L8 W- u% y  K8 k$ p- ?- P
  26.     HAL_FLASH_Lock();
    : o( L  z# E% E# W5 K' z
  27.   }' K) p3 e- O$ k
  28.   __HAL_FLASH_PREFETCH_BUFFER_ENABLE();. |$ f2 i" p" P: G5 z; [

  29. ' O4 u& g, V5 i" ?- F& e
  30. }9 B3 b) l1 P' Y% A

  31. 1 o1 Z# {- f+ h4 n! K
  32. void Flash_DisableReadProtection(void). `8 }( }8 r6 L; y+ p1 n+ O
  33. {. \9 U( |# E' t

  34. ; ^* r% m* S/ o; I- `
  35.   FLASH_OBProgramInitTypeDef OBInit;
    $ i' e0 d. U5 C  ~6 d7 Q/ B

  36. ( c/ p, Y* M& _  w- q
  37.   __HAL_FLASH_PREFETCH_BUFFER_DISABLE();3 b1 h5 J0 s4 l, p0 V

  38. , d6 Y9 H+ `& J1 @
  39.   HAL_FLASHEx_OBGetConfig(&OBInit);
    3 w8 t; z! b. x6 l  U4 J5 R3 L+ e
  40.   if(OBInit.RDPLevel == OB_RDP_LEVEL_1)3 W7 B& F' H- P" M2 o8 D6 Q4 G
  41.   {
    1 G/ S- s, J3 R
  42.     OBInit.OptionType = OPTIONBYTE_RDP;
      d& W, g) b$ I' M0 W0 U3 `
  43.     OBInit.RDPLevel = OB_RDP_LEVEL_0;
    ! ]6 c. i- R" q* u/ V4 i
  44.     HAL_FLASH_Unlock();1 @, ]6 h1 h! k$ Q7 E
  45.     HAL_FLASH_OB_Unlock();& P5 d. O3 p* Q' @
  46.     HAL_FLASHEx_OBProgram(&OBInit);
    + ~* T! W6 R9 t. x$ d. F
  47.     HAL_FLASH_OB_Lock();" l3 P+ p/ F3 o% _! Z* V
  48.     HAL_FLASH_Lock();
    4 _) Y5 L" c- V+ s% u; ~$ |
  49.   }2 e& a2 S9 C; |0 ]5 G  f
  50.   __HAL_FLASH_PREFETCH_BUFFER_ENABLE();; m" J) c# z  v/ W4 K2 w

  51. , f! q, Q1 A' U8 x( Z
  52. }/ n5 a' e; H& g; j, g, S: @  d9 \
复制代码
7 v. z2 i) o* Y& g; ~6 n4 E

4 C6 x) _. D. W
收藏 评论0 发布时间:2021-11-8 01:02

举报

0个回答

所属标签

相似分享

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