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

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

[复制链接]
STMCU小助手 发布时间:2023-2-11 22:16
引言 软件提供商正在开发被称为IP(知识产权)代码的复杂中间件解决方案,保护它们对微控制器而言是一个非常重要的问题。
' T. o, x5 h: K* ?' Q4 G4 a为了满足这一重要要求,STM32L4、STM32L4 +和STM32G4系列MCU可提供以下保护功能:+ {0 X$ [, {+ W' r
• 读取保护(RDP):防止进行读取操作 , X5 @! j# m. N
• 写保护:防止进行不需要的写入或擦除操作
* ?; H% q2 P- x) q" y- m• 专利代码读取保护(PCROP):防止在闪存和SRAM存储器上进行读写操作。
+ m4 G. q6 K# u9 }2 s• 防火墙:针对外部进程为敏感代码和数据提供访问保护。 3 t  e; ?6 A( ^( |' C! r; f
& \% s& B( H4 Z) M& Z9 D
本应用笔记对这些闪存保护功能进行了说明,重点介绍了专利代码读取保护(PCROP),并提供了PCROP保护的基本示例。
4 ^+ E2 W6 R$ l- o/ M8 X% x: K. r
本文档随附的X-CUBE-PCROP固件封装包含了PCROP示例的源代码,以及基于STM32L4系列微控制器运行示例所需的所有固件模块,并且该封装可轻松移植到STM32L4 +和STM32G4系列微控制器上。' _5 d; M4 a- l  u+ f# [& `
2 a. N% r1 W4 }0 j& D
. E; f1 |) o, _$ h, W- p
1 单分区存储器保护说明6 m; @1 E  q4 N" G: j2 a
基于Arm®(a)内核的STM32L4、STM32L4+和STM32G4系列微控制器采用多种机制,可对全存储器或特定段进行读写保护。: I/ w+ j: F0 ~
读保护用于保护代码免受外部访问的转储(SW IP保护),而写保护用于保护代码或数据不被意外擦除。除闪存外,这些保护还扩展到STM32L4和STM32L4+系列的SRAM2,以及STM32G4系列的CCM(内核耦合存储器)SRAM。 / y+ h7 h9 \' ?  H) k) c
STM32L4xx MCU还具有防火墙机制,可在存储器中创建受信执行区域。% l& o# p7 P" \2 E0 d( X3 o5 p
1 Y) N* ]1 ^$ L: e" ~! F; T/ m6 d
1.1 读取保护(RDP)
5 M0 k' _( M: X8 }  ~! M 读取保护是全局闪存读保护,可保护嵌入式固件代码,可以预防复制、逆向工程、使用调试工具读出或其他方式的入侵攻击。该保护应在二进制代码载入嵌入式闪存后,由用户进行设置。读取保护适用于:' ^! s! K* R# w4 i
• 主闪存 1 e( X1 A/ p/ m& ]8 m
• 实时时钟(RTC)中的备份寄存器
# N# P& z3 s, f3 |/ f  v2 k# s  ?• SRAM2(STM32L4/STM32L4+)或CCM-SRAM(STM32G4)
0 S3 x1 o6 p! q" I; T* o  @ • 选项字节(仅限级别 2)。: E' _# L2 f8 y) Q
以下章节中对三个RDP级别(0,1和2)进行定义和描述。. ]+ S9 |0 R; e5 V1 o" i3 I6 K

6 A) \1 K0 t, B% a+ Z  b 1.1.1 读保护级别0! w  k2 ]7 U. ~! X9 U
级别0是默认级别,闪存完全打开,可在所有引导配置(调试功能,从RAM、从系统内存引导加载程序或从闪存启动)下进行全部内存操作。在这种模式下没有保护,该模式可满足开发和调试需求。
& [- r2 a# T  o) K

; h/ W  e6 R4 Q% Y$ ?* I 1.1.2 读保护级别1 . I4 T5 [9 O. U! T# G) n
激活读保护级别1时,即使是从SRAM或系统内存引导加载程序来启动,也不能使用调试功能(如串行线路或JTAG)分别访问(读取,擦除和编程)STM32L4/L4+和STM32G4系列的闪存或SRAM2和CCM-SRAM。在这些情况下,任何对受保护区域的读请求都会生成总线错误。
: N9 T0 @' v. c9 T: F2 \ 但是,当从闪存启动时,则允许从用户代码访问闪存和SRAM2(STM32L4/L4+)或CCM-SRAM(STM32G4)。2 T: l" K  X0 N3 p5 E: p

3 K9 M$ D+ @' A: Q+ e9 _将RDP选项字节重新编程为级别0,可禁用RDP级别1保护,这会导致闪存被批量擦除;而且SRAM2(STM32L4/L4+)或CCM-SRAM(STM32G4)和备份寄存器会复位。% K/ H4 Z, }& s6 h  N7 s

0 z% |% B4 R2 {2 p1.1.3 读保护级别2
; ^: v, c9 z$ ]2 X激活RDP级别2时,级别1下提供的所有保护均有效,MCU受到全面保护。RDP选项字节和所有其他选项字节都会被冻结,不能再修改。JTAG、SWV(单线查看器)、ETM和边界扫描全部禁用。( A& b7 |* s% ]
* {" q" b6 J3 ]1 U

! d8 p- R4 N1 X从闪存启动时,用户代码可以访问内存内容。但是,不再能从SRAM或从系统内存引导加载程序启动。
! H% F" b2 _, d$ n+ U
. ], q8 Z& t" t8 O$ Y. S3 T' y

5 [9 `4 R% u* @/ g5 r+ ]这种保护是不可逆的(JTAG熔断),所以不能回到保护级别1或0。8 U( n$ I& e% z2 ]9 [5 T
7 P; l/ H. O- _' k. Z& z& y
# w9 ~  A5 q' F% c
R[RIHB}}@`8OTR}GEUJ%FQY.png
5 h: Y. f2 S( L" R% h8 r8 }+ n; g
1.1.4 受RDP保护的STM32内部闪存内容更新
7 L7 q6 I4 |) q; O' Q当Flash RDP保护激活时(级别1或级别2),内部闪存内容不能通过调试进行更新,或者当从SRAM或系统内存引导程序启动时也不能更新。因此对最终产品的一个重要要求就是,能够将内部闪存中的嵌入式固件升级为新的固件版本,添加新功能并修正潜在问题。该要求可以通过实现用户专用固件来解决,使用诸如USART的通信协议来进行重新编程过程,从而执行内部闪存的应用内编程(IAP)。( t; @! H; b( t. J/ u  V
, t; E, `3 V0 I2 {! v) P
1.2 写保护
6 s1 d$ A" a1 k写保护用来保护指定内存区域的内容,避免更新或擦除代码段或非易失性数据。( L2 n3 K6 e5 `
! D3 ]' l9 g) {3 R# t" `

# W8 {  A6 w3 E1.2.1 闪存写保护6 K; o2 q5 H- P. a8 s9 d4 J
写保护区域的数量取决于闪存架构。
4 R3 D  x4 _0 w( p; y1 R对于STM32L4和STM32L4+系列,每个闪存中可以以2KB粒度定义最多2个区域。
% W& ~- r7 q" ]7 y3 b9 w6 nSTM32G4 3类设备能够以单分区或双分区工作。( v( |3 \+ I& R" q! B
• 在单分区模式(DBANK = 0)中,最多能够以4 KB的粒度定义四个写保护区域。
: o$ k: j3 v" q$ |" v• 在双分区模式(DBANK = 1)中,最多可以定义两个写保护区域8 O$ D+ z3 F4 i) g, z$ ?: s
每个存储库中2 KB的粒度。STM32G4 Cat2设备只能在单个闪存库中工作。能够以2 KB粒度定义两个写保护区域。& |$ }; |8 Y) J7 B/ |0 T% d  D( q
图 1中的灰色区域是具有两个粒度为2 KB的写保护(WRP)区域的双分区结构的示例。5 Z( P0 h, ^; X: x7 N

( t( ?* L& h6 `7 w9 l/ E& ]% y
/ [1 Q# E2 o  j9 o" A4 A/ b NYV27(QS}(4S7RKY9R)$UFP.png
1 V/ D: p' o& S' c9 d, T- J. i
2 G  u( N7 v3 L1 E/ g' z受保护区域无法被擦除和编程,任何写请求都会产生写保护错误。如果要擦除/编程的地址属于闪存中处于写保护状态的区域,则通过硬件将WRPERR标志置位。例如,如果闪存中至少有一页是写保护的,则不能对其进行批量擦除,并且设置WRPERR标志可通过嵌入式用户代码或使用STM32 ST-Link Utility软件和调试接口,进行使能或禁用写保护管理。
$ s+ ^8 w  O1 C7 y  B  v# @7 k8 |9 A. ^3 c1 j& ~

: K5 @8 I9 U) D3 w完整版请查看:附件9 E- k- }3 N; g0 U2 F/ @1 p% D

6 D* t4 U  g, S$ @6 q4 F: O
  ?$ e) c3 N, o* B; F, `) |

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