電子產(chǎn)業(yè)一站式賦能平臺

PCB聯(lián)盟網(wǎng)

搜索
查看: 553|回復(fù): 0
收起左側(cè)

MCUBootUtility v6.3發(fā)布,支持獲取與解析啟動日志

[復(fù)制鏈接]

302

主題

307

帖子

1896

積分

三級會員

Rank: 3Rank: 3

積分
1896
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2024-9-20 11:31:00 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
痞子衡維護(hù)的 NXP-MCUBootUtility 工具距離上一個大版本(v5.3.0)發(fā)布過去一年了,期間痞子衡也做過三個版本更新,但不足以單獨介紹。這一次痞子衡為大家?guī)砹巳轮匾姹緑6.3.x,這次更新主要是想和大家特別聊聊 ROM 啟動日志這個特性的支持。5 b+ X' M9 ]. Y8 x$ N$ u' p8 I
一、v6.0 - v6.3更新記錄-- v5.3.2  k* L! o; \2 g# h" E
Improvement:
4 H; `# n4 X1 y, J& j1 R    1. [RTyyyy] 使能 RT1180 的 XMCD 支持
% U& S+ ]# u! g) NBufixes:
2 c! C  W3 J& R6 g8 H1 D! z7 I    1. [RTyyyy] XMCD配置界面里write dummy cycle設(shè)置不生效- {4 S1 S# @. {. `
-- v6.0.0+ c( d$ g7 D8 P/ E
Features:
! D: c3 E6 a' n8 ^% g- D    1. [Wireless] 支持K32W0x1
. f- s$ Y: f; Q    2. [Wireless] 支持RW61x
5 w; d4 ~; R8 E/ `- R    3. [RW61x] 支持裸應(yīng)用程序文件作為輸入源文件+ M7 T  l( P, o1 k# M) e# _0 r
    4. [RW61x] 支持UART和USB-HID兩種下載方式(COM端口/USB設(shè)備自動識別)7 ^7 Y  }, u+ x% [
    5. [RW61x] 支持用于開發(fā)階段的非安全加密啟動(未簽名)7 n# N' E3 b9 j
    6. [RW61x] 支持FlexSPI NOR啟動設(shè)備3 ?! `. y, \" j; t; ]9 f9 w
Bufixes:
5 K  T9 e1 K- z! i+ m    1. [RTyyyy] 修復(fù)對第二個FlexSPI NOR設(shè)備的下載支持% {& i2 X" F7 _$ U- h- C
    2. [RTxxx] 修復(fù)對FlexSPI NOR設(shè)備的下載支持
$ H" W) X2 h" i) O3 k, O/ P-- v6.1.06 h3 W9 s" s5 V
Features:
3 a- q9 O8 U# c  J9 k    1. [RTxxx] 支持i.MXRT700 A0+ q+ G+ r4 Y+ V1 n
    2. [RT700] 支持裸應(yīng)用程序文件作為輸入源文件
; S3 q4 l2 T8 ]    3. [RT700] 支持UART和USB-HID兩種下載方式(COM端口/USB設(shè)備自動識別
- l( G5 F0 X+ K) F- i    4. [RT700] 支持用于開發(fā)階段的非安全加密啟動(未簽名)
1 f  Z/ g2 v% f9 G% H) D) F$ B% D    5. [RT700] 支持XSPI NOR啟動設(shè)備
* U9 L# h7 ^( M. S/ S$ A& k-- v6.2.0
3 k; a& `) L! h" L) IFeatures:8 K2 V9 H' r+ T5 w% _5 z2 t; j5 m
    1. [RT700] 支持下載程序進(jìn)第二個XSPI上連接的啟動設(shè)備. N& X, O/ x7 k: ^7 x
Bufixes:
7 b- o1 t! x' q7 x' b9 _# m* p    1. [RT700] 當(dāng)NOR Flash的FDCB區(qū)域非空時,下載可能報錯& _7 G( I1 }2 `8 M: h( I# N
    2. [RT700] 當(dāng)待下載程序鏈接在安全SRAM地址時,下載會報錯
, |- T& t( ~' k+ N) G2 G-- v6.3.0
/ Q+ Y6 {1 ]/ o# n0 G1 Y9 XFeatures:
# h' C, U- x# P9 K% f. h    1. [RT] 可以支持獲取并解析ROM啟動日志) f+ H  O: Y$ z5 I. g9 v1 @
Improvement:6 g9 [" C; J/ z2 q  a1 E
    1. [RT] 對FlexSPI NOR設(shè)備做擦除時,可自定義對齊長度4 L5 l! v5 x* f1 C! h
    2. [RT1170] 增加對英飛凌S28H系列Octal Flash支持0 x7 I! [  D' d# H
二、幾個不可忽視的更新2.1 初步支持RT700i.MX RT700 是 RT 三位數(shù)家族最新一代旗艦產(chǎn)品,是 i.MX RT500 的升級,可以說是恩智浦有史以來最強(qiáng)大最復(fù)雜的 MCU。鑒于官網(wǎng)還沒有發(fā)布這顆芯片,這里暫不過多介紹了。
2 W5 Z4 L' Q) v; L: N2.2 支持自定義FlexSPI NOR設(shè)備擦除對齊長度我們知道軟件對于 RT 四位數(shù)的啟動設(shè)備下載支持,靠得是加載二級 Flashloader 實現(xiàn)的。無論是一鍵下載模式,還是通用編程器模式,軟件都會將擦除范圍參數(shù)(起始地址,長度)傳遞給 Flashloader 處理,而 Flashloader 里會自動做對齊處理(根據(jù)實際情況,組合 Block 和 Sector 擦除命令,比如粗粒度先用 Block 擦除,細(xì)粒度再用 Sector 擦除)。# V7 b% v6 ?6 r3 o4 Z+ {
上述 Flashloader 里的關(guān)于擦除處理機(jī)制看似很完美,但是對于一些特殊類型的 Flash 可能會失效。比如 Infineon MirrorBit Flash 類型,這種 Flash 僅在某幾個特定 Block 上支持 Sector 擦除,對于這種情況,就不能任由 Flashloader 來管理擦除粒度了,因此需要用戶能夠強(qiáng)制指定擦除對齊長度。+ P$ C1 l/ r0 ?' k& Y
在工具目錄 \src        argets\xxx\bltargetconfig.py 文件中僅可見如下定義,我們可以改變這個定義值來設(shè)置擦除對齊長度,對于 Infineon MirrorBit Flash,我們需要將擦除對齊設(shè)為 Block 長度 256KB。2 _' V" e0 E2 q6 U1 v$ y$ r6 Y
xspiNorEraseAlignment = 1 # in byte
' Y' X" @- G  {5 M' [$ p2.3 對于RT ROM啟動日志解析支持i.MX RT 系列發(fā)布至今,如果要給客戶支持問題類型做一個總結(jié),基本上啟動相關(guān)問題要占 30%。如果遇到芯片無法啟動問題,除了常規(guī)經(jīng)驗以外,我們還可以通過 ROM 啟動日志來輔助分析。
0 X6 [2 t2 r- y2 M5 {6 J所謂 ROM 啟動日志,就是 ROM 在執(zhí)行過程中記錄的狀態(tài),這個狀態(tài)數(shù)據(jù)被存在在芯片內(nèi)部 RAM 固定位置處(芯片出廠后,這個位置就無法更改了,被寫死在 ROM 代碼里)。如果遇到啟動失敗問題,我們可以讀出日志數(shù)據(jù)予以分析。- D. }" x4 ~. Y) O+ k
軟件支持兩種途徑獲取并解析啟動日志數(shù)據(jù):
& f6 J# k" l6 M4 X4 q
  • 途徑一:用戶根據(jù)界面里 Log Start, Log Length 信息先讀取出日志數(shù)據(jù)文件(比如用 JLink 去讀取),然后在界面 Log Data 框里選取這個日志文件路徑,最后點擊 View Boot Log 按鈕解析。
  • 途徑二:在芯片啟動失敗自動轉(zhuǎn)入串行下載模式時,不勾選軟件 One Step 模式,單步連接保證芯片處于 Flashloader 模式(便于 blhost 工具讀取內(nèi)部 RAM),直接點擊 View Boot Log 按鈕獲取并解析。
  • 回復(fù)

    使用道具 舉報

    發(fā)表回復(fù)

    您需要登錄后才可以回帖 登錄 | 立即注冊

    本版積分規(guī)則


    聯(lián)系客服 關(guān)注微信 下載APP 返回頂部 返回列表