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

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

[复制链接]
STMCU小助手 发布时间:2023-2-11 22:16
引言 软件提供商正在开发被称为IP(知识产权)代码的复杂中间件解决方案,保护它们对微控制器而言是一个非常重要的问题。
# x- F) B, w. Q# t1 e为了满足这一重要要求,STM32L4、STM32L4 +和STM32G4系列MCU可提供以下保护功能:2 {% w1 b8 A! p1 L  P1 W. k$ K
• 读取保护(RDP):防止进行读取操作
' {0 Z+ b5 ^8 T: \6 h* o, f• 写保护:防止进行不需要的写入或擦除操作 $ V. f8 M. Z, o, M8 G
• 专利代码读取保护(PCROP):防止在闪存和SRAM存储器上进行读写操作。 2 k) D. y0 I" }: Z! [; I( [
• 防火墙:针对外部进程为敏感代码和数据提供访问保护。 & u" r: z$ t* u7 d7 R' x4 C

  ^. X# I0 {7 c( l, G1 O本应用笔记对这些闪存保护功能进行了说明,重点介绍了专利代码读取保护(PCROP),并提供了PCROP保护的基本示例。
9 o+ }" R- O6 E  [4 M) W, b" V
本文档随附的X-CUBE-PCROP固件封装包含了PCROP示例的源代码,以及基于STM32L4系列微控制器运行示例所需的所有固件模块,并且该封装可轻松移植到STM32L4 +和STM32G4系列微控制器上。" X/ i1 \' V2 S/ h( {! B
% \0 K5 ~) [$ g6 ^) I! r
. z! @  @4 S3 W, A
1 单分区存储器保护说明% Y0 E* O0 G1 X* G0 v: c
基于Arm®(a)内核的STM32L4、STM32L4+和STM32G4系列微控制器采用多种机制,可对全存储器或特定段进行读写保护。
) U  k8 U# J* ~" Z( x 读保护用于保护代码免受外部访问的转储(SW IP保护),而写保护用于保护代码或数据不被意外擦除。除闪存外,这些保护还扩展到STM32L4和STM32L4+系列的SRAM2,以及STM32G4系列的CCM(内核耦合存储器)SRAM。
) j6 b6 y: ^; b. P2 ^9 a0 \& E; ~/ ISTM32L4xx MCU还具有防火墙机制,可在存储器中创建受信执行区域。
8 G4 u9 m4 ?+ ]* C  T2 ^# e
) T8 s2 b1 ]4 A7 T1 b, [& f+ i& {
1.1 读取保护(RDP)+ ~( l4 o, |, z; Y# {
读取保护是全局闪存读保护,可保护嵌入式固件代码,可以预防复制、逆向工程、使用调试工具读出或其他方式的入侵攻击。该保护应在二进制代码载入嵌入式闪存后,由用户进行设置。读取保护适用于:
% u. a4 U' v" k* h" j% K: ~ • 主闪存
8 h4 s. o6 k4 P( r• 实时时钟(RTC)中的备份寄存器
% T/ k2 K4 @+ l# T• SRAM2(STM32L4/STM32L4+)或CCM-SRAM(STM32G4)( ~# x% R/ r! W3 q4 K0 H" e) o
• 选项字节(仅限级别 2)。' Z8 D/ F3 Q- X: }8 n$ T$ Y* \
以下章节中对三个RDP级别(0,1和2)进行定义和描述。+ N9 z8 r& e& d) e. P

2 K' N, B+ ?3 L  `) @$ G8 E 1.1.1 读保护级别0
, v) i! i& L0 Y" z  R' V# N  Q  T0 C 级别0是默认级别,闪存完全打开,可在所有引导配置(调试功能,从RAM、从系统内存引导加载程序或从闪存启动)下进行全部内存操作。在这种模式下没有保护,该模式可满足开发和调试需求。
/ T, S, P; H3 M% Q- T
* p" P$ J7 Q8 x) ~3 o; s
1.1.2 读保护级别1
# x# s( ^0 e8 r1 {9 N, j/ Z# l; F激活读保护级别1时,即使是从SRAM或系统内存引导加载程序来启动,也不能使用调试功能(如串行线路或JTAG)分别访问(读取,擦除和编程)STM32L4/L4+和STM32G4系列的闪存或SRAM2和CCM-SRAM。在这些情况下,任何对受保护区域的读请求都会生成总线错误。
; a0 J, `  N9 a4 s- u* c: J 但是,当从闪存启动时,则允许从用户代码访问闪存和SRAM2(STM32L4/L4+)或CCM-SRAM(STM32G4)。
) h+ y! W' j/ \5 P. f
: M0 O, n, \' R, C
将RDP选项字节重新编程为级别0,可禁用RDP级别1保护,这会导致闪存被批量擦除;而且SRAM2(STM32L4/L4+)或CCM-SRAM(STM32G4)和备份寄存器会复位。( r/ \/ R, A7 a& W, B: k4 t& U
; E8 ]* q3 [4 c( H: X1 R1 @
1.1.3 读保护级别20 `1 P# d9 A; \( }3 w  k. Z
激活RDP级别2时,级别1下提供的所有保护均有效,MCU受到全面保护。RDP选项字节和所有其他选项字节都会被冻结,不能再修改。JTAG、SWV(单线查看器)、ETM和边界扫描全部禁用。
! f/ h' ?* n4 q
! |+ \& u9 i' b3 H( {* ?- {
) L0 ~) E) M+ |* ~
从闪存启动时,用户代码可以访问内存内容。但是,不再能从SRAM或从系统内存引导加载程序启动。) {& P0 h6 R0 A2 Y+ l8 Z- t

. ~) H0 }2 W2 s% _
; u7 v! c( J$ C& [, q/ B
这种保护是不可逆的(JTAG熔断),所以不能回到保护级别1或0。$ F  D, x6 @' `6 s4 l
5 f) ~1 q! J0 k  f

# z+ x" y0 H1 Q  w; W6 }# Z, k R[RIHB}}@`8OTR}GEUJ%FQY.png
6 D/ x4 _+ D; F. B5 a
, W  L1 c) k: t9 g$ F 1.1.4 受RDP保护的STM32内部闪存内容更新9 h& r! F  s# F* w) W- p0 [
当Flash RDP保护激活时(级别1或级别2),内部闪存内容不能通过调试进行更新,或者当从SRAM或系统内存引导程序启动时也不能更新。因此对最终产品的一个重要要求就是,能够将内部闪存中的嵌入式固件升级为新的固件版本,添加新功能并修正潜在问题。该要求可以通过实现用户专用固件来解决,使用诸如USART的通信协议来进行重新编程过程,从而执行内部闪存的应用内编程(IAP)。2 _+ u: T* P/ l% A  h! o$ x, g4 f

- ~2 [) s8 P5 k4 o1.2 写保护
6 j8 D4 L! `/ k: {写保护用来保护指定内存区域的内容,避免更新或擦除代码段或非易失性数据。$ b& Z3 S( i9 \" k; F

. ]- O( n* {* i6 y- v# J$ \3 s

6 ~, U& V$ N+ ^3 d% A7 ~( }1.2.1 闪存写保护0 D) V$ A" @* C& S1 K+ ^
写保护区域的数量取决于闪存架构。3 @1 g, I2 s: w: b/ |% g: c
对于STM32L4和STM32L4+系列,每个闪存中可以以2KB粒度定义最多2个区域。
5 V( F  h8 ?1 T* i1 e! a1 CSTM32G4 3类设备能够以单分区或双分区工作。
! m" \& k  n7 c$ h/ e# O• 在单分区模式(DBANK = 0)中,最多能够以4 KB的粒度定义四个写保护区域。. m7 S+ p0 M6 W$ ?5 z! ?
• 在双分区模式(DBANK = 1)中,最多可以定义两个写保护区域) X# T+ ~6 J$ K6 P; |
每个存储库中2 KB的粒度。STM32G4 Cat2设备只能在单个闪存库中工作。能够以2 KB粒度定义两个写保护区域。
" w* ]" {9 b# n  E# w) _( r# d+ G图 1中的灰色区域是具有两个粒度为2 KB的写保护(WRP)区域的双分区结构的示例。
! e% J+ B+ L0 |8 m: z! a5 b3 l

! T# k- R+ {  e6 I( f8 ^, l9 P7 d NYV27(QS}(4S7RKY9R)$UFP.png
! @, |" ^& U# {: G! _4 w  s0 ~  l( P
受保护区域无法被擦除和编程,任何写请求都会产生写保护错误。如果要擦除/编程的地址属于闪存中处于写保护状态的区域,则通过硬件将WRPERR标志置位。例如,如果闪存中至少有一页是写保护的,则不能对其进行批量擦除,并且设置WRPERR标志可通过嵌入式用户代码或使用STM32 ST-Link Utility软件和调试接口,进行使能或禁用写保护管理。# v2 l! p& _  Y- _

' g+ f2 R# W! o# p, h
$ N& g7 W3 m3 j4 o
完整版请查看:附件
. j! v% q& e' p5 q
& Q+ u+ t& t6 k* X9 q, N0 a' h3 J1 y) f3 t5 S6 E

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

下载

1.18 MB, 下载次数: 2

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

举报

0个回答
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版