痞子衡嵌入式:MCUBootUtility v6.3發佈,支持獲取與解析啟動日誌

来源:https://www.cnblogs.com/henjay724/p/18422138
-Advertisement-
Play Games

-- 痞子衡維護的 NXP-MCUBootUtility 工具距離上一個大版本(v5.3.0)發佈過去一年了,期間痞子衡也做過三個版本更新,但不足以單獨介紹。這一次痞子衡為大家帶來了全新重要版本v6.3.x,這次更新主要是想和大家特別聊聊 ROM 啟動日誌這個特性的支持。 一、v6.0 - v6.3 ...


--
  痞子衡維護的 NXP-MCUBootUtility 工具距離上一個大版本(v5.3.0)發佈過去一年了,期間痞子衡也做過三個版本更新,但不足以單獨介紹。這一次痞子衡為大家帶來了全新重要版本v6.3.x,這次更新主要是想和大家特別聊聊 ROM 啟動日誌這個特性的支持。

一、v6.0 - v6.3更新記錄

-- v5.3.2
Improvement:
    1. [RTyyyy] 使能 RT1180 的 XMCD 支持
Bufixes:
    1. [RTyyyy] XMCD配置界面里write dummy cycle設置不生效

-- v6.0.0
Features:
    1. [Wireless] 支持K32W0x1
    2. [Wireless] 支持RW61x
    3. [RW61x] 支持裸應用程式文件作為輸入源文件
    4. [RW61x] 支持UART和USB-HID兩種下載方式(COM埠/USB設備自動識別)
    5. [RW61x] 支持用於開發階段的非安全加密啟動(未簽名)
    6. [RW61x] 支持FlexSPI NOR啟動設備
Bufixes:
    1. [RTyyyy] 修複對第二個FlexSPI NOR設備的下載支持
    2. [RTxxx] 修複對FlexSPI NOR設備的下載支持

-- v6.1.0
Features:
    1. [RTxxx] 支持i.MXRT700 A0
    2. [RT700] 支持裸應用程式文件作為輸入源文件
    3. [RT700] 支持UART和USB-HID兩種下載方式(COM埠/USB設備自動識別
    4. [RT700] 支持用於開發階段的非安全加密啟動(未簽名)
    5. [RT700] 支持XSPI NOR啟動設備

-- v6.2.0
Features:
    1. [RT700] 支持下載程式進第二個XSPI上連接的啟動設備
Bufixes:
    1. [RT700] 當NOR Flash的FDCB區域非空時,下載可能報錯
    2. [RT700] 當待下載程式鏈接在安全SRAM地址時,下載會報錯

-- v6.3.0
Features:
    1. [RT] 可以支持獲取並解析ROM啟動日誌
Improvement:
    1. [RT] 對FlexSPI NOR設備做擦除時,可自定義對齊長度
    2. [RT1170] 增加對英飛凌S28H系列Octal Flash支持

二、幾個不可忽視的更新

2.1 初步支持RT700

  i.MX RT700 是 RT 三位數家族最新一代旗艦產品,是 i.MX RT500 的升級,可以說是恩智浦有史以來最強大最複雜的 MCU。鑒於官網還沒有發佈這顆晶元,這裡暫不過多介紹了。

2.2 支持自定義FlexSPI NOR設備擦除對齊長度

  我們知道軟體對於 RT 四位數的啟動設備下載支持,靠得是載入二級 Flashloader 實現的。無論是一鍵下載模式,還是通用編程器模式,軟體都會將擦除範圍參數(起始地址,長度)傳遞給 Flashloader 處理,而 Flashloader 里會自動做對齊處理(根據實際情況,組合 Block 和 Sector 擦除命令,比如粗粒度先用 Block 擦除,細粒度再用 Sector 擦除)。

  上述 Flashloader 里的關於擦除處理機制看似很完美,但是對於一些特殊類型的 Flash 可能會失效。比如 Infineon MirrorBit Flash 類型,這種 Flash 僅在某幾個特定 Block 上支持 Sector 擦除,對於這種情況,就不能任由 Flashloader 來管理擦除粒度了,因此需要用戶能夠強制指定擦除對齊長度。

  在工具目錄 \src\targets\xxx\bltargetconfig.py 文件中僅可見如下定義,我們可以改變這個定義值來設置擦除對齊長度,對於 Infineon MirrorBit Flash,我們需要將擦除對齊設為 Block 長度 256KB。

xspiNorEraseAlignment = 1 # in byte

2.3 對於RT ROM啟動日誌解析支持

  i.MX RT 系列發佈至今,如果要給客戶支持問題類型做一個總結,基本上啟動相關問題要占 30%。如果遇到晶元無法啟動問題,除了常規經驗以外,我們還可以通過 ROM 啟動日誌來輔助分析。

  所謂 ROM 啟動日誌,就是 ROM 在執行過程中記錄的狀態,這個狀態數據被存在在晶元內部 RAM 固定位置處(晶元出廠後,這個位置就無法更改了,被寫死在 ROM 代碼里)。如果遇到啟動失敗問題,我們可以讀出日誌數據予以分析。

  軟體支持兩種途徑獲取並解析啟動日誌數據:

  • 途徑一:用戶根據界面里 Log Start, Log Length 信息先讀取出日誌數據文件(比如用 JLink 去讀取),然後在界面 Log Data 框里選取這個日誌文件路徑,最後點擊 View Boot Log 按鈕解析。
  • 途徑二:在晶元啟動失敗自動轉入串列下載模式時,不勾選軟體 One Step 模式,單步連接保證晶元處於 Flashloader 模式(便於 blhost 工具讀取內部 RAM),直接點擊 View Boot Log 按鈕獲取並解析。

  途徑二通過軟體直接從晶元 RAM 里讀取啟動日誌數據有一個註意點,因為是藉助載入 Flashloader 執行實現的,所以如果 Flashloader 依賴的 RAM 空間與啟動日誌存儲空間有衝突,可能會導致日誌數據損壞。

  至此,這次更新的主要特性便介紹完了。MCUBootUtility項目地址如下。雖然當前版本(v6.3.x)功能已經非常完備,你還是可以在此基礎上再添加自己想要的功能。如此神器,還不快快去下載試用?

歡迎訂閱

文章會同時發佈到我的 博客園主頁CSDN主頁知乎主頁微信公眾號 平臺上。

微信搜索"痞子衡嵌入式"或者掃描下麵二維碼,就可以在手機上第一時間看了哦。

  最後歡迎關註痞子衡個人微信公眾號【痞子衡嵌入式】,一個專註嵌入式技術的公眾號,跟著痞子衡一起玩轉嵌入式。

痞子衡嵌入式-微信二維碼 痞子衡嵌入式-微信收款二維碼 痞子衡嵌入式-支付寶收款二維碼

  衡傑(痞子衡),目前就職於某全球頂級半導體原廠MCU系統部門,擔任高級嵌入式系統應用工程師。

  專欄內所有文章的轉載請註明出處:http://www.cnblogs.com/henjay724/

  與痞子衡進一步交流或咨詢業務合作請發郵件至 [email protected]

  可以關註痞子衡的Github主頁 https://github.com/JayHeng,有很多好玩的嵌入式項目。

  關於專欄文章有任何疑問請直接在博客下麵留言,痞子衡會及時回覆免費(劃重點)答疑。

  痞子衡郵箱已被私信擠爆,技術問題不推薦私信,堅持私信請先掃碼付款(5元起步)再發。



您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • 徒弟不懂git怎麼用, 於是寫了篇文章, 把本地git操作從頭寫了一遍, 自己去看吧! 0、基本概念 •Git是一個免費、開源的、分散式版本控制系統 •它使用一個特殊的叫做倉庫的資料庫來記錄文件的變化 •倉庫中的每個文件都有一個完整的版本歷史記錄 1)安裝 sudo apt-update sudo ...
  • 想著做個輪腿的機器人玩玩,但是如果光用PID做演算法,對於輪子加腿的結構似乎效果並不好,為了實現輪腿本身能夠飛坡在一定高度下能夠跳躍,我想著上個模擬模型來調試和學習LQR演算法 機器人模擬的軟體似乎挺多,我查到比較常用的有ROS套件的一個,還有就是webots 本著界面簡單,開源(還有校園網方便下載)的 ...
  • 1.在開機過程中,快速按下鍵盤上的方向鍵↑和↓。目的是告知引導程式,我們需要在引導頁面選擇不同的操作,以便讓引導程式暫停。 使用↑和↓將選擇行設置為第一行(背景高亮即為選中),按下鍵盤上的e,進入編輯模式 2.將游標一直移動到 rhgb quiet 後面,將其(rhgb quiet) 替換成 ini ...
  • 下載 nvm 點擊進入 nvm git 倉庫下載 nvm windows 用戶點擊 exe 文件進行下載。 下載完畢之後點擊安裝包進行安裝 檢查是否安裝成功 打開windows 控制欄輸入 nvm -v 檢查是否安裝成功 使用 nvm 下載 node.js 打開控制欄輸入 nvm install l ...
  • 大家好,我是痞子衡,是正經搞技術的痞子。今天痞子衡給大家介紹的是恩智浦i.MXRT系列MCU的ROM啟動日誌。 關於 i.MX RT 啟動問題解決的文章,痞子衡寫過非常多,其中大部分都是具體到某一類啟動設備下的具體問題分析,比較依賴經驗,這些經驗當然是非常有用的。此外也有一篇 《啟動失敗先查看SRC ...
  • 1、概述 操作系統一般都是安裝在硬碟內的,硬碟是一種存儲數據的介質,U 盤同樣也是一種存儲數據的介質,因此也可以把操作系統安裝進 U 盤裡。 因為大部分 U 盤的性能比較差,不能流暢地運行完整版的操作系統,所以只能安裝精簡了大部分功能、只保留基本運行環境的簡化版操作系統(即 PE )。 PE 是 W ...
  • 1.基礎工具安裝 ①Ubuntu虛擬機下交叉編譯工具鏈安裝 香橙派5Pro為Arm64位架構,因此需要安裝g++-aarch64-linux-gnu以及gcc-aarch64-linux-gnu(有其它交叉編譯器,本文以此編譯器為例) 更新軟體源 sudo apt update sudo apt u ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...