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

STM32H750 上使用 PCROP 后导致 Hard Fault

[复制链接]
STMCU小助手 发布时间:2022-8-1 22:26
1. 引言
; r$ v( Z- r" A, vPCROP 全称为 Proprietary code read out protection(专用代码保护),它提供了一种新的代码保护机制,在 PCROP 区域的内容只能为可执行,不能读取或写入。这种机制可以为 OEM 厂商提供保护,方便保护自己 IP 的代码。本文主要记录在使用 PCROP 上遇到的 Hardfault 问题。
( O+ G( B) n7 x& v7 w: m4 o如何使用 PCROP 呢?
, P% d$ v2 L2 \5 |+ l8 g参考 AN4968 中 PCROP 的描述,PCROP 的使用大致有以下几个步骤:9 ]( P, Z5 B; Z& {3 F: R, q- A0 v; j
1. 将需要保护的文件,在 IDE 中标识为仅可执行,IAR 和 KEIL,CubeIDE 都有此类标识。7 L. l2 c9 K5 \" r! H/ J
2. 需要修改 Link 文件,将受保护文件中的 rw data, ro data, ro code 进行分区存放。
; t2 n: d! ], {  v3. 通过修改选项字,将受保护文件中的 ro code 中的内容进行 PCROP 保护。& {4 _, u9 e" @  K+ j) }
4. 编译工程产生保护文件的.o 文件,并把符号导出给实际应用工程使用。( ~2 ]( p' h3 R& M1 G

: I  I2 ?5 s# y+ A2 Z$ O& e4 Z- Q+ H/ U% @; W; A
2. 问题描述9 }$ _2 u2 z7 e" d( c
在我使用 IAR 进行 PCROP 的测试时,发生了如下错误。 " H: |' k+ ^  e% [. x( F5 S

) u1 Y4 a8 D1 h5 x

- e5 U( c) k4 q: x6 T  T- C 2J4`BV9(XZUGG6{NQU%7)H6.png 9 M7 V, h' }( J% ~* J( g4 d
# X; o5 p0 @- n) g! s; N5 r
3. 问题分析与定位: U1 ^6 B9 P3 c2 ]
PCROP 调试时,会遇到一个问题,那就是由于代码已经被保护起来,无法单步调试。目前知道的只是当 PCROP 打开的时候会导致 Hard Fault,而不使用 PCROP 没有问题。那么这个问题和PCROP 强相关了。$ L" r& f8 }1 e. X
接下来,只能通过一些简单的测试来定位发生问题的大概位置了,比如在函数入口添加一些简单的汇编代码,比如 IAR 中可以添加代码往寄存器 R5 中写入特殊测试值:__ASM(" MOVS R5,  #11"),通过这个简单的测试,发现函数并没有执行到这里来。所以大概在跳转之后,执行这一句代码之前就已经发生了问题。* f& h" h/ I  A4 J* s- x" Y7 Z
Hard Fault 的错误描述为:INVSTATE,无效状态代表的是试图切换到 ARM 状态,查看文档后有以下信息:
( T/ y. F$ s" Y' w. C' C: `; ^, [, O/ k$ M$ C- ^4 U8 h

0 g/ C6 s0 M9 E- e  h Q2E6~5`]M6~W2]4XGEAJ534.png ; U: Q8 @3 v9 ]1 D* y) O& A

0 i. ]" k( ~2 S& \# T7 v/ p把 PCROP 取消掉以后,查看汇编代码如下图 3:
9 T! {' {" b% }6 u1 L' D8 d
8 e; L4 I0 s" _5 g; g2 Y5 X
# Q( Z: t* n! E1 }, C8 l) P' w: F4 Y
$EXLP3AUTFH}_H`RGHELXBL.png / A7 ?7 h; @( l5 q
8 [0 p* I% o) k( l6 F0 F
0x9003 开头的是外部 flash 地址,首先会跳转到 0x9003’6fd8 去执行,如下图 4。 % C. L1 \) _1 o' Y9 }
6 t5 E) `& `9 k- b6 U0 s

, Z, V5 Q% m( f1 _' V @)H`8B}G%[{S~J]Z[WZE_S3.png $ o- x$ O8 m& y3 \$ k
2 ^8 h* s; o4 E

8 ]$ p# h3 U- i. X
: S! P) x( Z% N& r
完整版请查看:附件
$ Z; i9 g& P" }5 j* F1 P6 i' `+ S5 @4 L) i. \
% j/ M) F/ ~* g, `
9 C8 x5 }. z' I2 p/ w8 k) o

LAT1023_STM32H750上PCROP的使用问题.pdf

下载

575.09 KB, 下载次数: 0

赞 收藏 评论0 发布时间:2022-8-1 22:26

举报

0个回答

所属标签

相似技术帖

官网相关资源

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