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

STM32L4、STM32L4+和STM32G4系列 微控制器上的专利代码读取保护

[复制链接]
STMCU小助手 发布时间:2023-2-11 22:16
引言 软件提供商正在开发被称为IP(知识产权)代码的复杂中间件解决方案,保护它们对微控制器而言是一个非常重要的问题。
# r: {$ [3 d3 q& Z4 k% u为了满足这一重要要求,STM32L4、STM32L4 +和STM32G4系列MCU可提供以下保护功能:+ S& k7 t$ N4 |3 ]4 s4 @, w. {
• 读取保护(RDP):防止进行读取操作 2 A: C1 ~7 B2 M0 Q; [
• 写保护:防止进行不需要的写入或擦除操作 9 u9 D" j$ _& G0 j) m
• 专利代码读取保护(PCROP):防止在闪存和SRAM存储器上进行读写操作。
3 i0 n6 `) @* U% f) v• 防火墙:针对外部进程为敏感代码和数据提供访问保护。
# r# q* A) j! a, {. T  n
  T9 [; L& R3 |/ \+ S- ^5 S/ K本应用笔记对这些闪存保护功能进行了说明,重点介绍了专利代码读取保护(PCROP),并提供了PCROP保护的基本示例。- G9 B1 W3 @4 c$ U' }3 z
本文档随附的X-CUBE-PCROP固件封装包含了PCROP示例的源代码,以及基于STM32L4系列微控制器运行示例所需的所有固件模块,并且该封装可轻松移植到STM32L4 +和STM32G4系列微控制器上。
" ~2 e7 u" ~" y/ Y# P! s
) w! O/ k4 f- Z8 P) X# A

' ^, |* C7 O  T; @! x$ z1 单分区存储器保护说明' b1 S" t: f2 Y; R$ m( I
基于Arm®(a)内核的STM32L4、STM32L4+和STM32G4系列微控制器采用多种机制,可对全存储器或特定段进行读写保护。. E6 }" ?) Y+ H. l6 N: d# W
读保护用于保护代码免受外部访问的转储(SW IP保护),而写保护用于保护代码或数据不被意外擦除。除闪存外,这些保护还扩展到STM32L4和STM32L4+系列的SRAM2,以及STM32G4系列的CCM(内核耦合存储器)SRAM。
; r! p! A! l  U/ y# y0 y( f0 A8 CSTM32L4xx MCU还具有防火墙机制,可在存储器中创建受信执行区域。
3 s4 W( q. L5 y# J2 n

1 D- F; @4 t& ?3 M7 _ 1.1 读取保护(RDP)
& F  o2 j/ p$ C; m4 R# X  M 读取保护是全局闪存读保护,可保护嵌入式固件代码,可以预防复制、逆向工程、使用调试工具读出或其他方式的入侵攻击。该保护应在二进制代码载入嵌入式闪存后,由用户进行设置。读取保护适用于:
; P( K4 u5 p+ X9 k) X# I • 主闪存
4 I$ b5 Y" B  Q( i5 }• 实时时钟(RTC)中的备份寄存器 - H3 e! A, j, \# }- m
• SRAM2(STM32L4/STM32L4+)或CCM-SRAM(STM32G4); t0 w; q9 R! f3 J- C4 m& I
• 选项字节(仅限级别 2)。
- ]. W0 s0 x9 J 以下章节中对三个RDP级别(0,1和2)进行定义和描述。4 z* A' p9 Z4 d: m! t, o
/ c8 M, P" ]! x$ h3 b6 s* O: ?) _
1.1.1 读保护级别00 \8 I& n9 s; z7 d& C( l3 f" |
级别0是默认级别,闪存完全打开,可在所有引导配置(调试功能,从RAM、从系统内存引导加载程序或从闪存启动)下进行全部内存操作。在这种模式下没有保护,该模式可满足开发和调试需求。
$ y, u4 m" s) F# i: p1 a) b  P
8 X! P/ M& F* X+ `
1.1.2 读保护级别1 - k. i% T8 P. `4 Z4 v6 ~% x1 j
激活读保护级别1时,即使是从SRAM或系统内存引导加载程序来启动,也不能使用调试功能(如串行线路或JTAG)分别访问(读取,擦除和编程)STM32L4/L4+和STM32G4系列的闪存或SRAM2和CCM-SRAM。在这些情况下,任何对受保护区域的读请求都会生成总线错误。; C9 ^6 F; X) A, H
但是,当从闪存启动时,则允许从用户代码访问闪存和SRAM2(STM32L4/L4+)或CCM-SRAM(STM32G4)。
$ w  @, G+ Q, n+ [
$ L2 @* F. q/ ~: e! j6 A, D
将RDP选项字节重新编程为级别0,可禁用RDP级别1保护,这会导致闪存被批量擦除;而且SRAM2(STM32L4/L4+)或CCM-SRAM(STM32G4)和备份寄存器会复位。
5 G/ R' l3 n" ]7 U7 f2 @, W) W# p* s  S
1.1.3 读保护级别2# B7 [4 N5 a- Y) {
激活RDP级别2时,级别1下提供的所有保护均有效,MCU受到全面保护。RDP选项字节和所有其他选项字节都会被冻结,不能再修改。JTAG、SWV(单线查看器)、ETM和边界扫描全部禁用。
- u/ j8 B: C  S: ?2 v! |
7 e+ t' X, J* N; y; w2 q
% Q' v, Y& {% a# p8 T, g; J- j! O
从闪存启动时,用户代码可以访问内存内容。但是,不再能从SRAM或从系统内存引导加载程序启动。
1 a8 l3 Q% E# ]% O6 ~
( G  [8 m' z7 ?7 }8 O# b$ ~# Y' E

& H( x/ h# g5 a0 G$ H这种保护是不可逆的(JTAG熔断),所以不能回到保护级别1或0。) c/ o4 h  u& N
5 y* F5 W8 s5 a1 t9 ^
7 R# @" @( B6 O7 |7 W- h" H( j: A
R[RIHB}}@`8OTR}GEUJ%FQY.png 1 q+ r' s! f# i
. {" V$ h5 W. n& I1 x
1.1.4 受RDP保护的STM32内部闪存内容更新
! U5 q7 ]* U3 Z# O  T+ A. s当Flash RDP保护激活时(级别1或级别2),内部闪存内容不能通过调试进行更新,或者当从SRAM或系统内存引导程序启动时也不能更新。因此对最终产品的一个重要要求就是,能够将内部闪存中的嵌入式固件升级为新的固件版本,添加新功能并修正潜在问题。该要求可以通过实现用户专用固件来解决,使用诸如USART的通信协议来进行重新编程过程,从而执行内部闪存的应用内编程(IAP)。5 \$ K( N7 C6 p; `0 f

# V$ `9 }3 a& U8 u2 e  E: D  P1.2 写保护
4 o& `1 y' e+ [1 `+ a* V+ x" M写保护用来保护指定内存区域的内容,避免更新或擦除代码段或非易失性数据。
, }0 n* ~, t# q; k& d5 x+ ?( U
  M% ]/ }! L" I- Q7 S( T

2 _% i9 }1 J+ f' ]1.2.1 闪存写保护. ^% _. \1 `5 H# E0 M2 }
写保护区域的数量取决于闪存架构。+ H" O5 n8 e: ]0 k5 F
对于STM32L4和STM32L4+系列,每个闪存中可以以2KB粒度定义最多2个区域。3 m' c3 T0 j! t9 i8 }2 {1 D: I  v
STM32G4 3类设备能够以单分区或双分区工作。) p- _$ Z$ n2 ~% T7 k
• 在单分区模式(DBANK = 0)中,最多能够以4 KB的粒度定义四个写保护区域。
; A  `0 [3 q: N2 Y1 H; d. X  p5 q• 在双分区模式(DBANK = 1)中,最多可以定义两个写保护区域; \, Y# H, `% v% u( l
每个存储库中2 KB的粒度。STM32G4 Cat2设备只能在单个闪存库中工作。能够以2 KB粒度定义两个写保护区域。
& V/ Z3 x: w, F1 E图 1中的灰色区域是具有两个粒度为2 KB的写保护(WRP)区域的双分区结构的示例。
! d. o. c: c, Y' ?0 {8 |( s  {( [9 G% M% K- p& T  b. w

0 O$ v, {7 i% |- {. Y NYV27(QS}(4S7RKY9R)$UFP.png
5 R# q4 y/ G; A$ m1 q( q* y( k0 f/ Y3 O" F& i% k, ]. z
受保护区域无法被擦除和编程,任何写请求都会产生写保护错误。如果要擦除/编程的地址属于闪存中处于写保护状态的区域,则通过硬件将WRPERR标志置位。例如,如果闪存中至少有一页是写保护的,则不能对其进行批量擦除,并且设置WRPERR标志可通过嵌入式用户代码或使用STM32 ST-Link Utility软件和调试接口,进行使能或禁用写保护管理。
) ~! B: [( U, m$ R; T1 W8 V8 }8 ~% J7 N# X+ ?
; C4 H% Y, T2 J2 d0 ~
完整版请查看:附件
* L, ~: D# b+ T+ z% n; }' ]3 L+ }0 |/ j+ t9 ]4 ~
' O7 r5 E; t, H$ L0 Q- c- U

STM32L4、STM32L4 和STM32G4系列微控制器上的专利代码读取保护.pdf

下载

1.18 MB, 下载次数: 3

收藏 评论0 发布时间:2023-2-11 22:16

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版