痞子衡嵌入式:恩智浦i.MXRT系列微控制器量產神器RT-Flash用戶指南

来源:https://www.cnblogs.com/henjay724/archive/2019/04/26/10776084.html
-Advertisement-
Play Games

RT-Flash是一個專為基於NXP i.MX RT系列晶元的產品量產而設計的工具,其功能與官方MfgTool2工具類似,但是解決了MfgTool2工具在實際量產使用中的一些痛點 ...


RT Flash

GitHub release GitHub commits GitHub All Releases GitHub license

English | 中文

1 軟體概覽

1.1 介紹

  RT-Flash是一個專為基於NXP i.MX RT系列晶元的產品量產而設計的工具,其功能與官方MfgTool2工具類似,但是解決了MfgTool2工具在實際量產使用中的一些痛點:

  • 使用MfgTool2僅能在xml中指定.sb文件,無法直接在GUI里選擇.sb文件;
  • 使用MfgTool2僅能選擇USB埠,無法使用UART埠;
  • 使用MfgTool2的USB埠下載時,有時無法識別某些埠連接,必須要加Hub方可識別;
  • 使用MfgTool2批量下載時,最多只能支持4塊板卡;

  藉助於RT-Flash,你可以輕鬆實現批量生產。RT-Flash主要功能如下:

  • 支持i.MXRT全系列MCU,包含i.MXRT1015、i.MXRT1021、i.MXRT1051/1052、i.MXRT1061/1062、i.MXRT1064 SIP
  • 支持UART和USB-HID兩種串列下載方式(COM埠/USB設備自動識別)
  • 支持下載.sb格式的image文件進啟動設備
  • 支持批量下載多個.sb格式的image文件(同一文件夾下)
  • 支持批量下載多個板卡(板卡數量不限)

1.2 下載

  RT-Flash完全基於Python語言開發,並且源代碼全部開源,其具體開發環境為Python 2.7.15 (32bit)、wxPython 4.0.3、pySerial 3.4、pywinusb 0.4.2、PyInstaller 3.3.1(或更高)。

  RT-Flash在發佈時藉助PyInstaller將所有的Python依賴全部打包進一個可執行文件(\RT-Flash\bin\RT-Flash.exe),因此如果不是對RT-Flash的二次開發,你不需要安裝任何Python軟體及相關庫。

Note1: 源代碼包里的RT-Flash.exe是在Windows 10 x64環境下打包的,也僅在該環境下測試過,如果因系統原因無法直接使用,你需要先安裝 Python2.7.15 x86版本 (安裝完成後確認\Python27\, \Python27\Scripts\目錄被添加到系統環境變數Path里),然後在\RT-Flash\env\目錄下點擊do_setup_by_pip.bat安裝開發RT-Flash所依賴的Python庫,最後點擊do_pack_by_pyinstaller.bat重新生成RT-Flash.exe可執行文件。

Note2: 必須使用Python2 x86版本去打包RT-Flash,因為RT-Flash使用了pywinusb庫,該庫在Python2 x64版本下無法用PyInstaller打包,pywinusb作者沒有計劃修複該問題。

1.3 安裝

  RT-Flash是一個是純綠色免安裝的工具,下載了源代碼包之後,直接雙擊\RT-Flash\bin\RT-Flash.exe即可使用。使用RT-Flash沒有任何軟體依賴,不需要額外安裝任何軟體。
  在RT-Flash.exe圖形界面顯示之前,會首先彈出一個控制台視窗,該控制台會伴隨著RT-Flash.exe圖形界面一起工作,很多圖形界面的操作都會在控制台視窗看到對應的底層命令執行,保留控制台主要是為了便於定位RT-Flash.exe的問題,目前RT-Flash尚處於早期階段,等後期軟體成熟會考慮移除控制台。

1.4 目錄

  RT-Flash軟體目錄組織如下:

\RT-Flash
                \apps                 --放置NXP官方評估板示例.sb格式image文件
                \bin                  --放置RT-Flash可執行文件
                \env                  --放置用於安裝RT-Flash開發環境以及打包腳本
                \gui                  --放置開發RT-Flash UI構建工程文件
                \img                  --放置RT-Flash使用過程中需載入的圖片
                \src                  --放置開發RT-Flash的所有Python源代碼文件
                \tools                --放置RT-Flash使用過程中需調用的外部程式
                      \blhost             --與Flashloader通信的上位機命令行工具
                      \sdphost            --與ROM通信的上位機命令行工具

1.5 界面

  下圖為RT-Flash工具的主界面,界面主要由四部分組成,各部分功能如下:

RT-Flash_mainWin

  • 【Menu Bar】:功能菜單欄,提供軟體通用設置。
  • 【Setup Window】:設置欄,提供MCU Device選項、串列介面選項。
  • 【Download Window】:下載主界面,提供對目標設備做一鍵下載操作。
  • 【Status Bar】:狀態欄,顯示軟體運行狀態信息。

2 準備工作

  在使用RT-Flash工具前主要有兩個準備工作:一、準備好i.MXRT硬體板以及串列下載連接線(USB/UART);二、準備好用於下載進Flash的.sb格式源文件。
  關於串列下載線連接,需要查看i.MXRT參考手冊System Boot章節,確保連接的UART/USB引腳是BootROM指定的。
  關於.sb格式源文件準備,可藉助NXP-MCUBootUtility工具(v1.2.0版本及以上),NXP-MCUBootUtility能夠識別五種常見格式(elf/axf/srec/hex/bin)的源image,並且能夠將源image文件轉換成.sb格式文件。
  如果只是為了快速驗證RT-Flash工具,在RT-Flash\apps文件夾下預設存放了全系列恩智浦官方i.MXRT評估板的led_blinky應用的.sb格式文件。

3 軟體使用

3.1 設置目標晶元

  在使用RT-Flash時首先需要配置目標設備,目標設備即MCU Device。以NXP官方開發板EVK-MIMXRT1060為例,該開發板主晶元為i.MXRT1062DVL6A,所以【RT Device】應設為i.MXRT106x。

RT-Flash_setMcuDevice

3.2 設置下載埠

  設置好目標設備之後,下一步便是連接目標設備,以USB-HID介面連接為例,給EVK-MIMXRT1060板子供電,並用USB Cable將PC與J9口連接起來,如果一切正常,應該可以在設備管理器找到vid,pid為0x1fc9,0x0135的HID-compliant vendor-defined device設備被枚舉。如果沒有發現該HID設備,請仔細檢查板子SW7撥碼開關是否將Boot Mode設為2'b01即Serial Downloader模式。

NXP-MCUBootUtility_usbhidDetected_e

  確認HID設備存在之後,選中USB-HID即可。

RT-Flash_setPort_usb_e

3.3 點擊一鍵下載

  選中要下載的.sb文件,直接點擊【Start】按鈕便可將.sb文件下載進啟動設備。如果成功下載,【Successful Boards】里數值會變成1,此外狀態欄里會顯示"Application image file (.sb) has been downloaded successfully!"。

RT-Flash_SingleBoardSingleSb_e

3.4 批量下載

3.4.1 批量多文件

  如果你想一次性下載多個.sb文件,你需要將這些文件放置於同一個文件夾,然後在工具里第二個【Browse】下選中這個文件夾(註意必須保證第一個【Browse】按鈕里的路徑是空),然後直接點擊【Start】按鈕便可。

RT-Flash_SingleBoardMultipleSb_e

3.4.2 批量多板卡

  如果你想一次性下載程式進多個板卡,你需要在板卡設置欄【Connected】填入實際連接板卡數(填入數值後必須按鍵盤上的Enter鍵來確定),以USB介面為例,此時你會看到【Detected】里會顯示實際識別板卡數,最終下載以實際識別板卡數為準。然後直接點擊【Start】按鈕便可。

RT-Flash_MultipleBoardSingleSb_e

  如果選擇的是UART介面,你必須在【RT Port Index】里逐一選中每個Port進行具體設置,並保證右側狀態均為"Already Set"。

RT-Flash_setPort_multipleUart_e

3.5 在HAB Closed情況下

  當晶元HAB狀態處於Closed的情況下,此時需要將你生成的含簽名的flashloader文件放置於RT-Flash指定目錄下(此處以RT106x為例),並且文件必須命名為ivt_flashloader_signed.bin。

RT-Flash_signedFlashloader_e

  除此以外,還需確保bltargetconfig.py文件里的兩個變數與你的含簽名flashloader文件相匹配。

RT-Flash_signedFlashloader_address_e


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

-Advertisement-
Play Games
更多相關文章
  • 一.概述 在Ocelot中,為了保護下游api資源,用戶訪問時需要進行認證鑒權,這需要在Ocelot 網關中添加認證服務。添加認證後,ReRoutes路由會進行身份驗證,並使用Ocelot的基於聲明的功能。在Startup.cs中註冊認證服務,為每個註冊提供一個方案 (authenticationP ...
  • 當一個頁面中添加了許多同類型控制項,當需要控制這些控制項進行顯示或隱藏的時候,需要一個個的將Visible屬性設置為false,十分不方便, 後通過論壇受一位大神(至於叫什麼忘了)的啟發,通過建立控制項數組的方式可以實現同種控制項批量修改同一屬性。 ToolStripStatusLabel[] Tlable ...
  • 今天早上六點半左右微信群里就看到張隊發的關於.NET Spark大數據的鏈接https://devblogs.microsoft.com/dotnet/introducing net for apache spark/ ,正印證了“微軟在不斷通過.NET Core補齊各領域開發,真正實現一種語言的跨 ...
  • 原文: C#中DataTable中的Compute方法使用收集 Compute函數的參數就兩個:Expression,和Filter。 Expresstion是計算表達式,關於Expression的詳細內容請看這裡“http://msdn2.microsoft.com/zh-cn/library/s ...
  • 下麵我們通過以下的簡單的SQL語句即可實現數據的批量導入,代碼如下: Bulk insert id From 'G:\文檔\test.txt' With ( fieldterminator=',', rowterminator='\n')註意:1) bulk insert 為Sql server 中 ...
  • 一、流編輯器 sed 與命令 sed Linux 中,常使用流編輯器 sed 進行文本替換工作。與常使用的互動式編輯器(如vim)不同,sed 編輯器以批處理的方式來編輯文件,這比互動式編輯器快得多,可以快速完成對數據的編輯修改。 一般來說,sed 編輯器會執行以下操作: 1)一次從輸入中讀取一行數 ...
  • shell腳本編程 編譯器,解釋器 編程語言: 機器語言,彙編語言,高級語言 靜態語言:編譯型語言 強類型(變數) 事先轉換成可執行格式 C,C++,JAVA,C# 動態語言:解釋型語言,on the fly 弱類型 邊解釋邊執行 ASP,ASP.NET,PHP,SHELL,PYTHON,PERL ...
  • IIO DATA ACCESS IIO數據獲取 只有兩種方法可以使用IIO框架訪問數據; 通過sysf通道進行一次性捕獲,或通過IIO字元設備進行連續模式(觸發緩衝)。 One-shot capture:單次獲取 一次性數據捕獲通過sysfs介面完成。 通過讀取與通道對應的sysfs條目,您將僅捕獲 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...