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

STM32H7芯片IAP跳转失败的原因有可能是这个

[复制链接]
yumeii 发布时间:2019-12-27 13:55
使用STM32H750VB编写用户引导程序【BOOT CODE】和应用程序【APP CODE】。根据数据手册描述,STM32H750有128K Bytes的片内flash,地址是从0x0800 0000~~0x0801 FFFF。将用户bootloader放在0x0800 0000~0x0800 2FFF,应用程序放在0x08003000~0x0801 FFFF。但当按照这样的存储分配设计时,发现总是没法实现从BOOT区到APP区的跳转。! t6 \/ S2 J( E

! l0 O- `' K4 c- W2 N

7 L! l9 y) |" w( K% ~) `基于这些信息,我们在想会不会是,比如中断矢量表定位问题,注意了之后发现,代码应该没有问题。我这边就这个问题找了块STM32H743的板做了验证测试。发现从BOOT区到APP区的跳转并没有异常,那么之前怎么又有问题呢?. b; [+ Q% d; C

! X( h7 P9 K6 c3 M/ E+ y- y
7 ~4 t. x6 \+ Q5 Y
再次思考之前信息的症结所在。我用的默认内部SRAM区为AXI SRAM,地址区间在0x24000000 --0x2407FFFF,即下面表格中的A区,而之后使用的默认内部SRAM区是DTCM SRAM,地址区间在0x20000000 -0x2001FFFF,即下面表格中的B区。! V7 n5 Z# [& b: H7 o. T
* {4 \6 u, l9 v% Q* S

3 f, U& E$ F9 k9 h' T) Z) P  b 1.png
- X6 @* d: l2 U* r% e/ j  _( F0 Y  A
' f# G) @0 Y6 K4 K9 }8 k
0 l$ z8 ]+ J. n( Y8 B3 |# I
难道是这个差别导致跳转的不同结果?当然,这两个SRAM区在使用上还是有差异的。
' ~; Z' ~+ }( g
' H2 G4 b+ y* w
7 f# A, k! J  w$ Y: d
我尝试着将测试工程的默认SRAM区从TCM RAM也改成AXI SRAM进行测试。果真没法实现从BOOT区到APP区的跳转!看来跳转失败跟选择这个默认SRAM区有关系。也就是说当我默认使用DTCM RAM时跳转正常,如果默认使用AXI SRAM时会跳转失败。
- H* {! V2 Z7 j3 M  p* q( w: {4 S
3 Z$ u) N7 P5 U: r" L
2.png 4 ?) Z( U2 ], J# e; Q
# B( Q" t" ?: P

& P+ |$ C. x, Z+ t我们知道,STM32H7系列芯片支持D-CACHE/I-CACHE。具体到这里,如果使用AXI SRAM往往会用到D-CACHE。我们的工程代码里也的确开启了D-CACHE,如果是因为这个原因,如果在做跳转操作之前关闭D-CACHE应该就能实现正常跳转。 于是对代码稍加调整,实际上也就是加了句关闭D-CACHE的代码。【红色方框处】
  Q' n5 {8 {% |  y0 h- Z
$ E. U0 N6 l0 y$ x

4 m9 D! s% I; {* Y 3.png
) x* J4 G! E& N  d) T! f/ B, m( E. s1 P. K2 q# M

, p5 R$ H. e' B; X1 `3 s1 O再次进行测试,此时即使使用AXI RAM做为默认内存空间,从用户BOOT区也能可靠跳转到APP区,完美实现。
0 Z7 w+ h* I# S( [
! y" n! G) ]$ J  L; V  A
& Y6 d& D+ S$ w' |( u7 y
这里涉及到STM32H7系列芯片内部不同存储区的访问特性和D-Cache相关知识,细节还是挺多的。有兴趣的话,可以自行查看相关技术手册做进一步的了解和探究。
" i, z5 h1 E, U; U6 s7 q9 ]2 f4 E; C
& R) m; o( Q' }9 e, V0 @5 L
赞 收藏 评论0 发布时间:2019-12-27 13:55

举报

0个回答

所属标签

相似技术帖

官网相关资源

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