电子产业一站式赋能平台

PCB联盟网

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

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

[复制链接]

300

主题

305

帖子

1843

积分

三级会员

Rank: 3Rank: 3

积分
1843
发表于 2024-9-20 11:31:00 | 显示全部楼层 |阅读模式
痞子衡维护的 NXP-MCUBootUtility 工具距离上一个大版本(v5.3.0)发布过去一年了,期间痞子衡也做过三个版本更新,但不足以单独介绍。这一次痞子衡为大家带来了全新重要版本v6.3.x,这次更新主要是想和大家特别聊聊 ROM 启动日志这个特性的支持。# [, `9 p1 t7 |+ T% F3 c, O" u
一、v6.0 - v6.3更新记录-- v5.3.2
5 O! j9 `4 v, y- qImprovement:
; G8 m( \- |4 E! c2 h) `4 n6 a3 s5 |    1. [RTyyyy] 使能 RT1180 的 XMCD 支持) _1 k; [8 \  c' K: E
Bufixes:
4 H. g$ D7 m4 w; a    1. [RTyyyy] XMCD配置界面里write dummy cycle设置不生效* ^  x) O0 z7 W* K
-- v6.0.0- y, i0 h1 D7 M/ c/ E: F
Features:5 O! n4 m8 m2 y1 P' a% `& r
    1. [Wireless] 支持K32W0x1
- R' d$ K* {8 Q. u2 a0 F    2. [Wireless] 支持RW61x- d6 o! n0 ^) b
    3. [RW61x] 支持裸应用程序文件作为输入源文件: {+ l* _2 \+ R7 ~) T+ @
    4. [RW61x] 支持UART和USB-HID两种下载方式(COM端口/USB设备自动识别)
5 [3 B6 T$ g) [' P7 e+ c    5. [RW61x] 支持用于开发阶段的非安全加密启动(未签名)$ G0 l- n- ]3 g) @6 q% ^
    6. [RW61x] 支持FlexSPI NOR启动设备
! Q* P) P' E' v" X7 _$ c- pBufixes:
: S  @7 {7 b4 A- y6 ^: ~: s    1. [RTyyyy] 修复对第二个FlexSPI NOR设备的下载支持
# y( D' e$ s  I  M& I    2. [RTxxx] 修复对FlexSPI NOR设备的下载支持8 t) h9 j0 R# J+ B
-- v6.1.0# |5 M0 }( I$ N; }
Features:
% {# |: C3 G; ^! a    1. [RTxxx] 支持i.MXRT700 A0/ s  S$ K7 e+ K
    2. [RT700] 支持裸应用程序文件作为输入源文件
! h3 r) S  b6 Y, D5 ?/ l" {    3. [RT700] 支持UART和USB-HID两种下载方式(COM端口/USB设备自动识别
1 _4 M7 A1 W# x8 f4 b    4. [RT700] 支持用于开发阶段的非安全加密启动(未签名)
& A# R# G5 g7 g; T1 P6 M    5. [RT700] 支持XSPI NOR启动设备- a- w# h/ F8 @  m
-- v6.2.0% y3 A* ?8 u% J- @' T& U# G
Features:
& e: i( ^. I& R( n& v    1. [RT700] 支持下载程序进第二个XSPI上连接的启动设备
" @- e. G2 D0 \" O, F0 dBufixes:
6 s' q. ^" @( K/ `" N    1. [RT700] 当NOR Flash的FDCB区域非空时,下载可能报错6 L/ `) H! G' N. ?$ a0 l& _
    2. [RT700] 当待下载程序链接在安全SRAM地址时,下载会报错: x0 E5 i! P6 N/ t
-- v6.3.0
% p; L/ G' G  X* HFeatures:6 z" k, U  D1 h: Z1 {8 T4 y2 U& V- h
    1. [RT] 可以支持获取并解析ROM启动日志
2 g4 Q+ {( }4 l# D* r* OImprovement:& W4 f  l. i- M1 T( m# |* T
    1. [RT] 对FlexSPI NOR设备做擦除时,可自定义对齐长度$ z8 J3 _) E* s4 M2 F! a. @
    2. [RT1170] 增加对英飞凌S28H系列Octal Flash支持
- w2 [/ }5 S4 U" z) T二、几个不可忽视的更新2.1 初步支持RT700i.MX RT700 是 RT 三位数家族最新一代旗舰产品,是 i.MX RT500 的升级,可以说是恩智浦有史以来最强大最复杂的 MCU。鉴于官网还没有发布这颗芯片,这里暂不过多介绍了。- Q; A% V6 M- ?6 j& U  o
2.2 支持自定义FlexSPI NOR设备擦除对齐长度我们知道软件对于 RT 四位数的启动设备下载支持,靠得是加载二级 Flashloader 实现的。无论是一键下载模式,还是通用编程器模式,软件都会将擦除范围参数(起始地址,长度)传递给 Flashloader 处理,而 Flashloader 里会自动做对齐处理(根据实际情况,组合 Block 和 Sector 擦除命令,比如粗粒度先用 Block 擦除,细粒度再用 Sector 擦除)。
. n  b* m  U* n/ W5 u9 m2 \上述 Flashloader 里的关于擦除处理机制看似很完美,但是对于一些特殊类型的 Flash 可能会失效。比如 Infineon MirrorBit Flash 类型,这种 Flash 仅在某几个特定 Block 上支持 Sector 擦除,对于这种情况,就不能任由 Flashloader 来管理擦除粒度了,因此需要用户能够强制指定擦除对齐长度。/ C. B3 a0 R8 ~) H  a
在工具目录 \src        argets\xxx\bltargetconfig.py 文件中仅可见如下定义,我们可以改变这个定义值来设置擦除对齐长度,对于 Infineon MirrorBit Flash,我们需要将擦除对齐设为 Block 长度 256KB。. U) ?' J1 s: g8 P; T1 A4 `
xspiNorEraseAlignment = 1 # in byte
* a# D! ^7 V, l3 Z% u+ K2.3 对于RT ROM启动日志解析支持i.MX RT 系列发布至今,如果要给客户支持问题类型做一个总结,基本上启动相关问题要占 30%。如果遇到芯片无法启动问题,除了常规经验以外,我们还可以通过 ROM 启动日志来辅助分析。
. v/ l; {, O8 ~' H. n2 R8 W所谓 ROM 启动日志,就是 ROM 在执行过程中记录的状态,这个状态数据被存在在芯片内部 RAM 固定位置处(芯片出厂后,这个位置就无法更改了,被写死在 ROM 代码里)。如果遇到启动失败问题,我们可以读出日志数据予以分析。
9 n, x5 ~) o: e# x: h软件支持两种途径获取并解析启动日志数据:4 W# I% l2 \/ J
  • 途径一:用户根据界面里 Log Start, Log Length 信息先读取出日志数据文件(比如用 JLink 去读取),然后在界面 Log Data 框里选取这个日志文件路径,最后点击 View Boot Log 按钮解析。
  • 途径二:在芯片启动失败自动转入串行下载模式时,不勾选软件 One Step 模式,单步连接保证芯片处于 Flashloader 模式(便于 blhost 工具读取内部 RAM),直接点击 View Boot Log 按钮获取并解析。
  • 回复

    使用道具 举报

    发表回复

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

    本版积分规则


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