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

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

[复制链接]
STMCU小助手 发布时间:2023-2-11 22:16
引言 软件提供商正在开发被称为IP(知识产权)代码的复杂中间件解决方案,保护它们对微控制器而言是一个非常重要的问题。
& q. i4 ]7 w. ]5 s$ m为了满足这一重要要求,STM32L4、STM32L4 +和STM32G4系列MCU可提供以下保护功能:$ H$ s0 k- _) h$ T8 p9 J7 }
• 读取保护(RDP):防止进行读取操作
! p/ i# k' v: O. I0 k1 v9 P, c+ ~• 写保护:防止进行不需要的写入或擦除操作
; o6 x" X  a; ]+ |4 o( t$ T• 专利代码读取保护(PCROP):防止在闪存和SRAM存储器上进行读写操作。 " S. j' s6 q1 P, s
• 防火墙:针对外部进程为敏感代码和数据提供访问保护。
. {$ I6 \1 H9 z+ v9 ]8 j, T8 J2 y- P; f0 ~4 e& T
本应用笔记对这些闪存保护功能进行了说明,重点介绍了专利代码读取保护(PCROP),并提供了PCROP保护的基本示例。
, ?7 M3 y* `6 g2 ?: Z; ^
本文档随附的X-CUBE-PCROP固件封装包含了PCROP示例的源代码,以及基于STM32L4系列微控制器运行示例所需的所有固件模块,并且该封装可轻松移植到STM32L4 +和STM32G4系列微控制器上。
4 k" K$ b9 t! @
8 e: c& p, k" g
8 r1 S% o$ B! ~( [5 ~4 O" \
1 单分区存储器保护说明
! h# t6 _* o2 g( Y 基于Arm®(a)内核的STM32L4、STM32L4+和STM32G4系列微控制器采用多种机制,可对全存储器或特定段进行读写保护。! f0 s7 d6 X! W: X( g
读保护用于保护代码免受外部访问的转储(SW IP保护),而写保护用于保护代码或数据不被意外擦除。除闪存外,这些保护还扩展到STM32L4和STM32L4+系列的SRAM2,以及STM32G4系列的CCM(内核耦合存储器)SRAM。 . r) b% x2 s& A. M$ ?
STM32L4xx MCU还具有防火墙机制,可在存储器中创建受信执行区域。: v& V4 I# w. k4 F
5 n! i  `# X$ S6 h4 ]; H) v) |) S0 g
1.1 读取保护(RDP)# k4 g; R# r+ f# q& @, _6 o
读取保护是全局闪存读保护,可保护嵌入式固件代码,可以预防复制、逆向工程、使用调试工具读出或其他方式的入侵攻击。该保护应在二进制代码载入嵌入式闪存后,由用户进行设置。读取保护适用于:% |# i) ^1 t' H- }" r) ^. l
• 主闪存
$ G. W, g1 N7 R& e8 r3 K• 实时时钟(RTC)中的备份寄存器
1 O) Q/ j0 @' \  C: A( }1 L• SRAM2(STM32L4/STM32L4+)或CCM-SRAM(STM32G4)
5 C" G" g; w. i4 F7 M$ L# J • 选项字节(仅限级别 2)。
& `; v3 d% j2 k0 E( T0 G 以下章节中对三个RDP级别(0,1和2)进行定义和描述。
7 V" L7 j( \. i, `; n6 S, q/ n% I- u6 K+ m8 r# Q
1.1.1 读保护级别0$ Q: z; T, O1 T! {% e. d2 q% `
级别0是默认级别,闪存完全打开,可在所有引导配置(调试功能,从RAM、从系统内存引导加载程序或从闪存启动)下进行全部内存操作。在这种模式下没有保护,该模式可满足开发和调试需求。
5 S+ @: M5 Q& ^
; i  w' r& x8 K" ]3 g
1.1.2 读保护级别1 . S( B* R# `4 H) I9 n
激活读保护级别1时,即使是从SRAM或系统内存引导加载程序来启动,也不能使用调试功能(如串行线路或JTAG)分别访问(读取,擦除和编程)STM32L4/L4+和STM32G4系列的闪存或SRAM2和CCM-SRAM。在这些情况下,任何对受保护区域的读请求都会生成总线错误。& H; r  G3 t/ \) [2 a
但是,当从闪存启动时,则允许从用户代码访问闪存和SRAM2(STM32L4/L4+)或CCM-SRAM(STM32G4)。" J4 W4 R' w4 J- ]: F  t; ~

' ^$ N# s* l  N: i3 N将RDP选项字节重新编程为级别0,可禁用RDP级别1保护,这会导致闪存被批量擦除;而且SRAM2(STM32L4/L4+)或CCM-SRAM(STM32G4)和备份寄存器会复位。7 C/ D2 H: ]- K# q

3 m7 \: i) g, K: G1 j- s* E1.1.3 读保护级别2
+ y) `1 u7 g! u1 Z* _& K! }- ?( Y1 Q% I激活RDP级别2时,级别1下提供的所有保护均有效,MCU受到全面保护。RDP选项字节和所有其他选项字节都会被冻结,不能再修改。JTAG、SWV(单线查看器)、ETM和边界扫描全部禁用。% t1 e, m- {( v7 k; D

# t) e; ~$ U* d% _$ E  p$ I8 P

# X/ J, s: o$ P& a2 {' D从闪存启动时,用户代码可以访问内存内容。但是,不再能从SRAM或从系统内存引导加载程序启动。2 B& k- h) J5 `" v  i
# @; k+ y  C# w& e. j( n+ ?5 F
" x* N7 H2 S( m4 p5 Z/ t  N4 J
这种保护是不可逆的(JTAG熔断),所以不能回到保护级别1或0。
! f  i7 |: ^: ?& ?$ H
; B% a. k/ i; i  t( U
& n' v& G- u! m
R[RIHB}}@`8OTR}GEUJ%FQY.png $ ?: f& M5 D# X/ |0 R5 N0 C. N+ [
7 [( Z4 x/ U% v" H  B8 F$ m% h
1.1.4 受RDP保护的STM32内部闪存内容更新
5 N0 G3 m; D8 Q  N( |& w当Flash RDP保护激活时(级别1或级别2),内部闪存内容不能通过调试进行更新,或者当从SRAM或系统内存引导程序启动时也不能更新。因此对最终产品的一个重要要求就是,能够将内部闪存中的嵌入式固件升级为新的固件版本,添加新功能并修正潜在问题。该要求可以通过实现用户专用固件来解决,使用诸如USART的通信协议来进行重新编程过程,从而执行内部闪存的应用内编程(IAP)。/ q- _( q8 U& j, n+ z4 G, O% H

, p5 Z' H6 {$ m- O6 d1.2 写保护
0 ]8 Z) b8 R4 l* R写保护用来保护指定内存区域的内容,避免更新或擦除代码段或非易失性数据。
* h, [6 A; ~1 S- Z0 H4 y
+ [# Z3 U7 o& i' q2 f, Q
+ n% _6 x  z8 D' ?: [  C; g
1.2.1 闪存写保护7 u' D5 P6 \6 R( C
写保护区域的数量取决于闪存架构。
# M" f# n2 U2 K对于STM32L4和STM32L4+系列,每个闪存中可以以2KB粒度定义最多2个区域。; [) s! l& q0 r! \
STM32G4 3类设备能够以单分区或双分区工作。
4 |. D1 ]/ n) a7 a1 I( m• 在单分区模式(DBANK = 0)中,最多能够以4 KB的粒度定义四个写保护区域。/ w3 r" h9 ]* K" {3 M- V% v2 ], _
• 在双分区模式(DBANK = 1)中,最多可以定义两个写保护区域
3 E  X0 T9 k" Y( x每个存储库中2 KB的粒度。STM32G4 Cat2设备只能在单个闪存库中工作。能够以2 KB粒度定义两个写保护区域。
- q5 x6 N; I; Y% E4 h5 L5 ]图 1中的灰色区域是具有两个粒度为2 KB的写保护(WRP)区域的双分区结构的示例。
2 }- E# V. ~+ _6 E3 o! ]
9 @8 |/ v% U* a. m/ D5 |$ J) S6 o" o* o; ^: y6 N
NYV27(QS}(4S7RKY9R)$UFP.png 3 c7 d& {) D: y9 t; v
) R5 M% \, ]; G* w4 H6 t4 ~/ ^
受保护区域无法被擦除和编程,任何写请求都会产生写保护错误。如果要擦除/编程的地址属于闪存中处于写保护状态的区域,则通过硬件将WRPERR标志置位。例如,如果闪存中至少有一页是写保护的,则不能对其进行批量擦除,并且设置WRPERR标志可通过嵌入式用户代码或使用STM32 ST-Link Utility软件和调试接口,进行使能或禁用写保护管理。
6 x* y2 F( i$ X* c( G' u/ u+ J, `5 \" D% J- \5 |
1 U5 s' r5 J) V. t
完整版请查看:附件
# S* }& }: B5 ^9 y, [' |* R& C3 o5 [/ X* D- g) b6 J. \
$ u" ]; G5 T2 S) q( ~3 l

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 手机版