痞子衡嵌入式:飛思卡爾i.MX RT系列MCU量產神器RT-Flash用戶指南


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(或更高)。

  • 源代碼: https://github.com/JayHeng/RT-Flash
  • 用戶手冊:https://www.cnblogs.com/henjay724/p/10776084.html
  • 問題反饋:https://www.cnblogs.com/henjay724/p/10776095.html

  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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM