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

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

[复制链接]
STMCU小助手 发布时间:2023-2-11 22:16
引言 软件提供商正在开发被称为IP(知识产权)代码的复杂中间件解决方案,保护它们对微控制器而言是一个非常重要的问题。 & j+ o4 X0 ?( X6 j1 i& j. c
为了满足这一重要要求,STM32L4、STM32L4 +和STM32G4系列MCU可提供以下保护功能:
* b1 J# l$ l# C- O • 读取保护(RDP):防止进行读取操作
+ ~: S: ]$ l4 z% ~3 L0 a! r$ e• 写保护:防止进行不需要的写入或擦除操作
0 H& S- a  c: \% B$ S• 专利代码读取保护(PCROP):防止在闪存和SRAM存储器上进行读写操作。
& J" W, T) u& r( b# l. N• 防火墙:针对外部进程为敏感代码和数据提供访问保护。 7 n+ S, [  o' K" O# l' m
& A9 O( N. f/ y4 q
本应用笔记对这些闪存保护功能进行了说明,重点介绍了专利代码读取保护(PCROP),并提供了PCROP保护的基本示例。
2 N4 A9 A9 z5 G) T
本文档随附的X-CUBE-PCROP固件封装包含了PCROP示例的源代码,以及基于STM32L4系列微控制器运行示例所需的所有固件模块,并且该封装可轻松移植到STM32L4 +和STM32G4系列微控制器上。5 U% x. {* n& e
) j; o1 I4 s8 m, W5 f! u. K
* p1 T) a5 q" m$ f0 z
1 单分区存储器保护说明
( D' {( G4 ]; n* } 基于Arm®(a)内核的STM32L4、STM32L4+和STM32G4系列微控制器采用多种机制,可对全存储器或特定段进行读写保护。' |. w4 E" c( Q9 O$ I
读保护用于保护代码免受外部访问的转储(SW IP保护),而写保护用于保护代码或数据不被意外擦除。除闪存外,这些保护还扩展到STM32L4和STM32L4+系列的SRAM2,以及STM32G4系列的CCM(内核耦合存储器)SRAM。
$ e+ ]' e7 G: b2 V) e' I) rSTM32L4xx MCU还具有防火墙机制,可在存储器中创建受信执行区域。) l% D+ z* c% q7 g0 T

* `0 x( B. r2 w! i" }7 X, b3 p- j 1.1 读取保护(RDP)
* C+ f2 C+ k1 z 读取保护是全局闪存读保护,可保护嵌入式固件代码,可以预防复制、逆向工程、使用调试工具读出或其他方式的入侵攻击。该保护应在二进制代码载入嵌入式闪存后,由用户进行设置。读取保护适用于:$ |% p( D* F* U  ~1 N2 H
• 主闪存
) h; Z4 v% q& W! w" [: ?• 实时时钟(RTC)中的备份寄存器
9 o6 o) j$ n, w# l- F! V4 ^% L) x• SRAM2(STM32L4/STM32L4+)或CCM-SRAM(STM32G4)
" ~& d5 k  y$ e% l9 d • 选项字节(仅限级别 2)。- H/ x  F# a6 o2 `7 b* ]6 B' d9 r
以下章节中对三个RDP级别(0,1和2)进行定义和描述。
% W) }: l) q# t
! z% N* l" {- E. \ 1.1.1 读保护级别05 m1 z$ u+ b% u0 M. W" O7 C
级别0是默认级别,闪存完全打开,可在所有引导配置(调试功能,从RAM、从系统内存引导加载程序或从闪存启动)下进行全部内存操作。在这种模式下没有保护,该模式可满足开发和调试需求。
8 C+ S, K9 k$ `$ P% n. I( a
' I% p0 \8 {7 d- w) r# T7 H
1.1.2 读保护级别1
  D5 R5 {- s3 L! H+ \7 |+ G9 c激活读保护级别1时,即使是从SRAM或系统内存引导加载程序来启动,也不能使用调试功能(如串行线路或JTAG)分别访问(读取,擦除和编程)STM32L4/L4+和STM32G4系列的闪存或SRAM2和CCM-SRAM。在这些情况下,任何对受保护区域的读请求都会生成总线错误。/ n( U) n& m8 s6 G; v
但是,当从闪存启动时,则允许从用户代码访问闪存和SRAM2(STM32L4/L4+)或CCM-SRAM(STM32G4)。& H5 g. X2 T/ e/ C! h5 }; p  }
/ U" f' n4 M, h! Z8 X! }
将RDP选项字节重新编程为级别0,可禁用RDP级别1保护,这会导致闪存被批量擦除;而且SRAM2(STM32L4/L4+)或CCM-SRAM(STM32G4)和备份寄存器会复位。
1 @6 Y& Z* o/ v) y1 i; J4 G" e1 \9 b4 Y0 i8 t
1.1.3 读保护级别2  q/ _5 ]! m; `4 x- v% l5 ^
激活RDP级别2时,级别1下提供的所有保护均有效,MCU受到全面保护。RDP选项字节和所有其他选项字节都会被冻结,不能再修改。JTAG、SWV(单线查看器)、ETM和边界扫描全部禁用。
5 o# _1 ?. s  q3 h8 N" J) B) t7 `3 N

# Z# E8 e/ S5 H' t# Q  a: G# i从闪存启动时,用户代码可以访问内存内容。但是,不再能从SRAM或从系统内存引导加载程序启动。
/ u, x& }$ H% `9 x! @4 k& R6 {' s+ A& V
8 a! I- c" W+ z' A
这种保护是不可逆的(JTAG熔断),所以不能回到保护级别1或0。/ d( I/ Q  [' x- |) F$ b4 L

/ X* g6 V2 X/ g" J- x. h* u  I% `
& `9 B7 R/ h$ L( F$ Q1 u0 }6 z6 {
R[RIHB}}@`8OTR}GEUJ%FQY.png 0 f' a- L, E9 q9 Y: J8 E( C

4 b/ `' K$ d  s( D' y: Q4 R5 k 1.1.4 受RDP保护的STM32内部闪存内容更新& A/ ^( h) t7 P6 e
当Flash RDP保护激活时(级别1或级别2),内部闪存内容不能通过调试进行更新,或者当从SRAM或系统内存引导程序启动时也不能更新。因此对最终产品的一个重要要求就是,能够将内部闪存中的嵌入式固件升级为新的固件版本,添加新功能并修正潜在问题。该要求可以通过实现用户专用固件来解决,使用诸如USART的通信协议来进行重新编程过程,从而执行内部闪存的应用内编程(IAP)。. {' F) D' }- z* ]( B

* b) X" J3 q$ z. o1.2 写保护
/ Z* z# H0 w8 a4 B. w! x" U2 Y写保护用来保护指定内存区域的内容,避免更新或擦除代码段或非易失性数据。, ~' n% L9 H1 I5 W4 ?

1 C5 K# l- f2 F/ `" b: W% m! M$ U

4 T3 R: X! m4 O5 s& s1 `1.2.1 闪存写保护
; r' U! c3 d- q9 u9 R' @写保护区域的数量取决于闪存架构。$ F* ]" x+ _# l) X( n
对于STM32L4和STM32L4+系列,每个闪存中可以以2KB粒度定义最多2个区域。, k! m9 ^1 a2 K1 Y5 b2 j9 G
STM32G4 3类设备能够以单分区或双分区工作。2 K- R! i3 j4 ~* G
• 在单分区模式(DBANK = 0)中,最多能够以4 KB的粒度定义四个写保护区域。  Q: ?8 X1 S& }: |
• 在双分区模式(DBANK = 1)中,最多可以定义两个写保护区域& z3 w% d8 K/ Z3 B0 u" v2 O# f
每个存储库中2 KB的粒度。STM32G4 Cat2设备只能在单个闪存库中工作。能够以2 KB粒度定义两个写保护区域。( l" x. W# r  q* G
图 1中的灰色区域是具有两个粒度为2 KB的写保护(WRP)区域的双分区结构的示例。4 B7 a: K% H+ |# |; `

' S; D; o+ W4 u9 B, d8 `! E. j$ ~) }$ h0 d9 \3 i
NYV27(QS}(4S7RKY9R)$UFP.png 3 `' X7 p( p& x4 M+ X
' L" a6 P! Q0 N) R/ l7 }/ j
受保护区域无法被擦除和编程,任何写请求都会产生写保护错误。如果要擦除/编程的地址属于闪存中处于写保护状态的区域,则通过硬件将WRPERR标志置位。例如,如果闪存中至少有一页是写保护的,则不能对其进行批量擦除,并且设置WRPERR标志可通过嵌入式用户代码或使用STM32 ST-Link Utility软件和调试接口,进行使能或禁用写保护管理。& }7 [" N! I( p, Q
8 j- w$ k/ b; H* Y
# O# j7 _" d. ~- L
完整版请查看:附件
5 Y" _$ Q1 U* p; T  G  K# t8 {; F( I+ z' Z: n
) D7 q2 s& Q, G3 a$ b

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

下载

1.18 MB, 下载次数: 3

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

举报

0个回答

所属标签

相似技术帖

官网相关资源

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