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

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

[复制链接]
STMCU小助手 发布时间:2023-2-11 22:16
引言 软件提供商正在开发被称为IP(知识产权)代码的复杂中间件解决方案,保护它们对微控制器而言是一个非常重要的问题。
2 X6 [3 E; b9 f: `5 z1 h8 ?为了满足这一重要要求,STM32L4、STM32L4 +和STM32G4系列MCU可提供以下保护功能:
- d% Y# |3 f8 D! L4 ?5 h • 读取保护(RDP):防止进行读取操作 / t: J( o! w  W0 F6 H8 _6 ^; c
• 写保护:防止进行不需要的写入或擦除操作 $ X8 z4 Z: K- V2 B  W2 p
• 专利代码读取保护(PCROP):防止在闪存和SRAM存储器上进行读写操作。
1 Y+ a5 W" N4 Y8 f# {! p• 防火墙:针对外部进程为敏感代码和数据提供访问保护。 0 s, r4 C( d( q$ j! V

) i3 b3 G+ J1 {* Q8 K本应用笔记对这些闪存保护功能进行了说明,重点介绍了专利代码读取保护(PCROP),并提供了PCROP保护的基本示例。7 `! l4 e9 t. V5 t% @/ `! U
本文档随附的X-CUBE-PCROP固件封装包含了PCROP示例的源代码,以及基于STM32L4系列微控制器运行示例所需的所有固件模块,并且该封装可轻松移植到STM32L4 +和STM32G4系列微控制器上。. G- s5 X3 k5 w7 A& @
: `, m7 I6 K2 W# m; l: f" ]6 q1 p! L
' u4 [, c- W! ?, z! Y# g
1 单分区存储器保护说明
7 e. u+ {& A' G 基于Arm®(a)内核的STM32L4、STM32L4+和STM32G4系列微控制器采用多种机制,可对全存储器或特定段进行读写保护。
) x( x, I  i$ B+ g/ `' P  p3 K 读保护用于保护代码免受外部访问的转储(SW IP保护),而写保护用于保护代码或数据不被意外擦除。除闪存外,这些保护还扩展到STM32L4和STM32L4+系列的SRAM2,以及STM32G4系列的CCM(内核耦合存储器)SRAM。 ) G- U# L% u- T  H- w# }" j( Y
STM32L4xx MCU还具有防火墙机制,可在存储器中创建受信执行区域。% w- {' c. i- U/ v- l1 R( M

; Q0 j$ o  J( P) O* N, R 1.1 读取保护(RDP)8 k5 {2 B5 a0 o6 D  G$ L0 U- Y1 {9 H' r# Z
读取保护是全局闪存读保护,可保护嵌入式固件代码,可以预防复制、逆向工程、使用调试工具读出或其他方式的入侵攻击。该保护应在二进制代码载入嵌入式闪存后,由用户进行设置。读取保护适用于:
, ^: d" k/ F. k2 ^! _ • 主闪存 ) b0 G# N$ f( Q# N3 d, |4 I' O" @4 b
• 实时时钟(RTC)中的备份寄存器
) R9 M. `7 {7 M% A' o• SRAM2(STM32L4/STM32L4+)或CCM-SRAM(STM32G4)  d* f( `2 U$ G7 A: W  r9 Y
• 选项字节(仅限级别 2)。" @# @- Q1 y. ?( k0 W% K
以下章节中对三个RDP级别(0,1和2)进行定义和描述。, Z7 b2 [2 P; G

: b. }6 z8 A9 D9 p9 D 1.1.1 读保护级别0
5 t, ^$ E% _5 o 级别0是默认级别,闪存完全打开,可在所有引导配置(调试功能,从RAM、从系统内存引导加载程序或从闪存启动)下进行全部内存操作。在这种模式下没有保护,该模式可满足开发和调试需求。& M1 n9 i6 Y3 x/ ?5 s" f

" H7 c1 `1 e' L, m1 q+ v; z1 L5 u) S 1.1.2 读保护级别1 + \1 _7 I4 t% B" Y3 y9 ?. n! L
激活读保护级别1时,即使是从SRAM或系统内存引导加载程序来启动,也不能使用调试功能(如串行线路或JTAG)分别访问(读取,擦除和编程)STM32L4/L4+和STM32G4系列的闪存或SRAM2和CCM-SRAM。在这些情况下,任何对受保护区域的读请求都会生成总线错误。
6 I4 m, R' O; {7 [6 d$ h 但是,当从闪存启动时,则允许从用户代码访问闪存和SRAM2(STM32L4/L4+)或CCM-SRAM(STM32G4)。
" m# E% }$ O4 s8 C1 Y6 d

4 J4 w$ V5 {- K" g2 R将RDP选项字节重新编程为级别0,可禁用RDP级别1保护,这会导致闪存被批量擦除;而且SRAM2(STM32L4/L4+)或CCM-SRAM(STM32G4)和备份寄存器会复位。
% W! U: t. t4 z& L+ t  S, P, t: K. h+ B  x8 A
1.1.3 读保护级别2
2 V0 d4 `, ~/ [激活RDP级别2时,级别1下提供的所有保护均有效,MCU受到全面保护。RDP选项字节和所有其他选项字节都会被冻结,不能再修改。JTAG、SWV(单线查看器)、ETM和边界扫描全部禁用。
& r; j% y  n( {4 Q, A- r
6 F  [" F" ]! T
6 q0 r; ?/ |! r# X! W: s3 ^( n% }
从闪存启动时,用户代码可以访问内存内容。但是,不再能从SRAM或从系统内存引导加载程序启动。
) e8 F- k1 [) w* Y
: a/ s% @+ R+ ]* x

. N: G6 Z' t8 D3 J, x1 u! O# U2 N9 y这种保护是不可逆的(JTAG熔断),所以不能回到保护级别1或0。0 G) S- u) B* ~2 Q0 w4 C7 @

% G2 G/ |7 o) y" l0 b

- I. n7 C/ W  Y( ]2 B9 M- t+ j R[RIHB}}@`8OTR}GEUJ%FQY.png & A1 \& p2 s1 r; p

7 G5 R. A$ _# }3 B7 s8 b4 V6 v 1.1.4 受RDP保护的STM32内部闪存内容更新
$ |( N& J  [# G7 Z当Flash RDP保护激活时(级别1或级别2),内部闪存内容不能通过调试进行更新,或者当从SRAM或系统内存引导程序启动时也不能更新。因此对最终产品的一个重要要求就是,能够将内部闪存中的嵌入式固件升级为新的固件版本,添加新功能并修正潜在问题。该要求可以通过实现用户专用固件来解决,使用诸如USART的通信协议来进行重新编程过程,从而执行内部闪存的应用内编程(IAP)。6 P6 V7 T( e& W5 l4 P
% b/ b( n" @* @5 d
1.2 写保护
6 R  R' c9 o- M% ~写保护用来保护指定内存区域的内容,避免更新或擦除代码段或非易失性数据。6 v3 W$ O5 M: z# Y/ C. X

# D  \0 N' [1 w5 N) N) w% t7 Q: {

6 Z: j# W# d) \- z1.2.1 闪存写保护
6 b* ^$ h. U3 i& K写保护区域的数量取决于闪存架构。
  U+ U5 N: k, y, Y2 ~对于STM32L4和STM32L4+系列,每个闪存中可以以2KB粒度定义最多2个区域。* F6 ?- [5 x2 @0 g: _& `' W
STM32G4 3类设备能够以单分区或双分区工作。
' T6 `9 y, \; T( s; x• 在单分区模式(DBANK = 0)中,最多能够以4 KB的粒度定义四个写保护区域。
& Y6 {. u+ F" C0 I& l• 在双分区模式(DBANK = 1)中,最多可以定义两个写保护区域* T1 |3 C$ j% C4 {1 j
每个存储库中2 KB的粒度。STM32G4 Cat2设备只能在单个闪存库中工作。能够以2 KB粒度定义两个写保护区域。" Z0 H8 N5 V" }; Q" ~' e$ S# J
图 1中的灰色区域是具有两个粒度为2 KB的写保护(WRP)区域的双分区结构的示例。
/ \* |% ^1 B  M7 P
! Z+ v9 X( H' F- y* O
( m" p' a# T3 Y* Z- z. W NYV27(QS}(4S7RKY9R)$UFP.png
. t; C1 |1 `& P8 r9 L/ ~) S% g
8 c+ D6 X. ~- a% N* z8 ^; t# S受保护区域无法被擦除和编程,任何写请求都会产生写保护错误。如果要擦除/编程的地址属于闪存中处于写保护状态的区域,则通过硬件将WRPERR标志置位。例如,如果闪存中至少有一页是写保护的,则不能对其进行批量擦除,并且设置WRPERR标志可通过嵌入式用户代码或使用STM32 ST-Link Utility软件和调试接口,进行使能或禁用写保护管理。
  ?, O3 I* m2 }9 A2 N
" h5 t$ t5 K( `  \0 r" C2 m/ H

5 f: Z1 Q: T, ]# I# |5 V. V完整版请查看:附件5 O% Q, N, G! ~5 N6 n; h4 m* c3 R
, Y: B* {6 Q- ]7 Y7 B, A

/ J8 [6 P; Q1 {. n4 f# L! _* l

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

下载

1.18 MB, 下载次数: 2

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

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版