电子产业一站式赋能平台

PCB联盟网

搜索
查看: 802|回复: 0
收起左侧

MCUBootUtility v6.3发布,支持获取与解析启动日志

[复制链接]

359

主题

364

帖子

2887

积分

三级会员

Rank: 3Rank: 3

积分
2887
发表于 2024-9-20 11:31:00 | 显示全部楼层 |阅读模式
痞子衡维护的 NXP-MCUBootUtility 工具距离上一个大版本(v5.3.0)发布过去一年了,期间痞子衡也做过三个版本更新,但不足以单独介绍。这一次痞子衡为大家带来了全新重要版本v6.3.x,这次更新主要是想和大家特别聊聊 ROM 启动日志这个特性的支持。# i0 Q9 E0 _0 V3 t
一、v6.0 - v6.3更新记录-- v5.3.29 F  A8 r( I' d7 C( u
Improvement:0 J% H& I. K" K' i/ A$ ~
    1. [RTyyyy] 使能 RT1180 的 XMCD 支持
4 K$ E0 O  w: c1 y1 k" Q( YBufixes:
2 g; i8 t, [0 a, @4 J    1. [RTyyyy] XMCD配置界面里write dummy cycle设置不生效
! S9 v, M: Z" p3 u" l- s-- v6.0.0
* b  h  T1 j3 l" t4 g+ yFeatures:
1 ^% X4 j$ A& @, t    1. [Wireless] 支持K32W0x1
) B- r( ^& ^% D0 V: y    2. [Wireless] 支持RW61x
, x. D, ^; y6 U* C& c    3. [RW61x] 支持裸应用程序文件作为输入源文件
6 V) `3 C. D/ z1 D( v, N4 o    4. [RW61x] 支持UART和USB-HID两种下载方式(COM端口/USB设备自动识别), m8 \6 m/ m$ |( D8 i1 H; |4 q
    5. [RW61x] 支持用于开发阶段的非安全加密启动(未签名), f2 t) {5 R" n! M
    6. [RW61x] 支持FlexSPI NOR启动设备
6 |. B" d6 b3 G0 pBufixes:' o, w! e. O; x# f1 b* s  h
    1. [RTyyyy] 修复对第二个FlexSPI NOR设备的下载支持4 u/ ^5 X  [8 W
    2. [RTxxx] 修复对FlexSPI NOR设备的下载支持/ P' x& d1 H2 L" t" D! |3 f
-- v6.1.06 w* w/ f" e: r" d: [
Features:$ }5 r; w4 I* i2 z$ a
    1. [RTxxx] 支持i.MXRT700 A0! c4 Y  t5 U7 y3 B+ D7 p2 [) j
    2. [RT700] 支持裸应用程序文件作为输入源文件
: I6 v& B6 |8 O* }5 K1 {" a4 P9 Q0 i    3. [RT700] 支持UART和USB-HID两种下载方式(COM端口/USB设备自动识别, X! B, L/ m( x+ Y
    4. [RT700] 支持用于开发阶段的非安全加密启动(未签名)
/ W2 ^# U& U5 p# f( e    5. [RT700] 支持XSPI NOR启动设备
& C( _7 z" |0 y* D-- v6.2.0% P$ p& u7 ?; z9 Y3 u& r
Features:" s* _8 }7 a9 o- _! d3 u( w0 H# [
    1. [RT700] 支持下载程序进第二个XSPI上连接的启动设备
, i. @' @9 Q, @% L5 {7 ~& {( D# F; J& Y1 vBufixes:
' G% k  B1 e' R4 k% ^8 d, r& w    1. [RT700] 当NOR Flash的FDCB区域非空时,下载可能报错( w5 R* b6 c; F& G+ p+ ^7 \2 }& P4 U5 w
    2. [RT700] 当待下载程序链接在安全SRAM地址时,下载会报错* Z9 \" Q* ^3 z, A0 d1 t6 Q1 N
-- v6.3.08 p6 H7 I/ ?6 G) r+ w. ^3 E1 B
Features:
: I0 S( Q/ p1 N& m; v. K3 u    1. [RT] 可以支持获取并解析ROM启动日志0 N. Z- {* h" v9 ^  C% I6 W- S: u% L
Improvement:
2 f" f. A$ C. M& @) ]    1. [RT] 对FlexSPI NOR设备做擦除时,可自定义对齐长度3 f! M3 O# D: M2 g% r& K: e, w
    2. [RT1170] 增加对英飞凌S28H系列Octal Flash支持
1 m2 x* W! a2 a- O7 l. P二、几个不可忽视的更新2.1 初步支持RT700i.MX RT700 是 RT 三位数家族最新一代旗舰产品,是 i.MX RT500 的升级,可以说是恩智浦有史以来最强大最复杂的 MCU。鉴于官网还没有发布这颗芯片,这里暂不过多介绍了。
6 C$ H# g) z4 J/ B! l4 B2.2 支持自定义FlexSPI NOR设备擦除对齐长度我们知道软件对于 RT 四位数的启动设备下载支持,靠得是加载二级 Flashloader 实现的。无论是一键下载模式,还是通用编程器模式,软件都会将擦除范围参数(起始地址,长度)传递给 Flashloader 处理,而 Flashloader 里会自动做对齐处理(根据实际情况,组合 Block 和 Sector 擦除命令,比如粗粒度先用 Block 擦除,细粒度再用 Sector 擦除)。  h/ d( P# R: }, F
上述 Flashloader 里的关于擦除处理机制看似很完美,但是对于一些特殊类型的 Flash 可能会失效。比如 Infineon MirrorBit Flash 类型,这种 Flash 仅在某几个特定 Block 上支持 Sector 擦除,对于这种情况,就不能任由 Flashloader 来管理擦除粒度了,因此需要用户能够强制指定擦除对齐长度。
+ }  I1 }2 u% X1 Y, ^. W- ^) T" g在工具目录 \src        argets\xxx\bltargetconfig.py 文件中仅可见如下定义,我们可以改变这个定义值来设置擦除对齐长度,对于 Infineon MirrorBit Flash,我们需要将擦除对齐设为 Block 长度 256KB。5 z# d3 h6 V5 {7 f! i! N
xspiNorEraseAlignment = 1 # in byte8 c- @" @% y% c, S" M  m; h5 [; A
2.3 对于RT ROM启动日志解析支持i.MX RT 系列发布至今,如果要给客户支持问题类型做一个总结,基本上启动相关问题要占 30%。如果遇到芯片无法启动问题,除了常规经验以外,我们还可以通过 ROM 启动日志来辅助分析。
- h& u& K6 M; Z+ n0 j$ M所谓 ROM 启动日志,就是 ROM 在执行过程中记录的状态,这个状态数据被存在在芯片内部 RAM 固定位置处(芯片出厂后,这个位置就无法更改了,被写死在 ROM 代码里)。如果遇到启动失败问题,我们可以读出日志数据予以分析。
6 }5 ]0 x  g. C* _软件支持两种途径获取并解析启动日志数据:5 g4 M' I* K9 C, I2 k
  • 途径一:用户根据界面里 Log Start, Log Length 信息先读取出日志数据文件(比如用 JLink 去读取),然后在界面 Log Data 框里选取这个日志文件路径,最后点击 View Boot Log 按钮解析。
  • 途径二:在芯片启动失败自动转入串行下载模式时,不勾选软件 One Step 模式,单步连接保证芯片处于 Flashloader 模式(便于 blhost 工具读取内部 RAM),直接点击 View Boot Log 按钮获取并解析。
  • 回复

    使用道具 举报

    发表回复

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则


    联系客服 关注微信 下载APP 返回顶部 返回列表