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

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

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

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

[復(fù)制鏈接]

166

主題

166

帖子

1453

積分

三級會員

Rank: 3Rank: 3

積分
1453
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2024-9-20 11:31:00 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
痞子衡維護的 NXP-MCUBootUtility 工具距離上一個大版本(v5.3.0)發(fā)布過去一年了,期間痞子衡也做過三個版本更新,但不足以單獨介紹。這一次痞子衡為大家?guī)砹巳轮匾姹緑6.3.x,這次更新主要是想和大家特別聊聊 ROM 啟動日志這個特性的支持。
一、v6.0 - v6.3更新記錄-- v5.3.2
Improvement:
    1. [RTyyyy] 使能 RT1180 的 XMCD 支持
Bufixes:
    1. [RTyyyy] XMCD配置界面里write dummy cycle設(shè)置不生效
-- v6.0.0
Features:
    1. [Wireless] 支持K32W0x1
    2. [Wireless] 支持RW61x
    3. [RW61x] 支持裸應(yīng)用程序文件作為輸入源文件
    4. [RW61x] 支持UART和USB-HID兩種下載方式(COM端口/USB設(shè)備自動識別)
    5. [RW61x] 支持用于開發(fā)階段的非安全加密啟動(未簽名)
    6. [RW61x] 支持FlexSPI NOR啟動設(shè)備
Bufixes:
    1. [RTyyyy] 修復(fù)對第二個FlexSPI NOR設(shè)備的下載支持
    2. [RTxxx] 修復(fù)對FlexSPI NOR設(shè)備的下載支持
-- v6.1.0
Features:
    1. [RTxxx] 支持i.MXRT700 A0
    2. [RT700] 支持裸應(yīng)用程序文件作為輸入源文件
    3. [RT700] 支持UART和USB-HID兩種下載方式(COM端口/USB設(shè)備自動識別
    4. [RT700] 支持用于開發(fā)階段的非安全加密啟動(未簽名)
    5. [RT700] 支持XSPI NOR啟動設(shè)備
-- v6.2.0
Features:
    1. [RT700] 支持下載程序進第二個XSPI上連接的啟動設(shè)備
Bufixes:
    1. [RT700] 當NOR Flash的FDCB區(qū)域非空時,下載可能報錯
    2. [RT700] 當待下載程序鏈接在安全SRAM地址時,下載會報錯
-- v6.3.0
Features:
    1. [RT] 可以支持獲取并解析ROM啟動日志
Improvement:
    1. [RT] 對FlexSPI NOR設(shè)備做擦除時,可自定義對齊長度
    2. [RT1170] 增加對英飛凌S28H系列Octal Flash支持
二、幾個不可忽視的更新2.1 初步支持RT700i.MX RT700 是 RT 三位數(shù)家族最新一代旗艦產(chǎn)品,是 i.MX RT500 的升級,可以說是恩智浦有史以來最強大最復(fù)雜的 MCU。鑒于官網(wǎng)還沒有發(fā)布這顆芯片,這里暫不過多介紹了。
2.2 支持自定義FlexSPI NOR設(shè)備擦除對齊長度我們知道軟件對于 RT 四位數(shù)的啟動設(shè)備下載支持,靠得是加載二級 Flashloader 實現(xiàn)的。無論是一鍵下載模式,還是通用編程器模式,軟件都會將擦除范圍參數(shù)(起始地址,長度)傳遞給 Flashloader 處理,而 Flashloader 里會自動做對齊處理(根據(jù)實際情況,組合 Block 和 Sector 擦除命令,比如粗粒度先用 Block 擦除,細粒度再用 Sector 擦除)。
上述 Flashloader 里的關(guān)于擦除處理機制看似很完美,但是對于一些特殊類型的 Flash 可能會失效。比如 Infineon MirrorBit Flash 類型,這種 Flash 僅在某幾個特定 Block 上支持 Sector 擦除,對于這種情況,就不能任由 Flashloader 來管理擦除粒度了,因此需要用戶能夠強制指定擦除對齊長度。
在工具目錄 \src        argets\xxx\bltargetconfig.py 文件中僅可見如下定義,我們可以改變這個定義值來設(shè)置擦除對齊長度,對于 Infineon MirrorBit Flash,我們需要將擦除對齊設(shè)為 Block 長度 256KB。
xspiNorEraseAlignment = 1 # in byte
2.3 對于RT ROM啟動日志解析支持i.MX RT 系列發(fā)布至今,如果要給客戶支持問題類型做一個總結(jié),基本上啟動相關(guān)問題要占 30%。如果遇到芯片無法啟動問題,除了常規(guī)經(jīng)驗以外,我們還可以通過 ROM 啟動日志來輔助分析。
所謂 ROM 啟動日志,就是 ROM 在執(zhí)行過程中記錄的狀態(tài),這個狀態(tài)數(shù)據(jù)被存在在芯片內(nèi)部 RAM 固定位置處(芯片出廠后,這個位置就無法更改了,被寫死在 ROM 代碼里)。如果遇到啟動失敗問題,我們可以讀出日志數(shù)據(jù)予以分析。
軟件支持兩種途徑獲取并解析啟動日志數(shù)據(jù):
  • 途徑一:用戶根據(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ī)則

    關(guān)閉

    站長推薦上一條 /1 下一條


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