痞子衡嵌入式:恩智浦i.MXRT系列微控制器量產神器RT-Flash使用者指南
RT Flash
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工具的主介面,介面主要由四部分組成,各部分功能如下:
- 【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。
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模式。
確認HID裝置存在之後,選中USB-HID即可。
3.3 點選一鍵下載
選中要下載的.sb檔案,直接點選【Start】按鈕便可將.sb檔案下載進啟動裝置。如果成功下載,【Successful Boards】裡數值會變成1,此外狀態列裡會顯示"Application image file (.sb) has been downloaded successfully!"。
3.4 批量下載
3.4.1 批量多檔案
如果你想一次性下載多個.sb檔案,你需要將這些檔案放置於同一個資料夾,然後在工具裡第二個【Browse】下選中這個資料夾(注意必須保證第一個【Browse】按鈕裡的路徑是空),然後直接點選【Start】按鈕便可。
3.4.2 批量多板卡
如果你想一次性下載程式進多個板卡,你需要在板卡設定欄【Connected】填入實際連線板卡數(填入數值後必須按鍵盤上的Enter鍵來確定),以USB介面為例,此時你會看到【Detected】裡會顯示實際識別板卡數,最終下載以實際識別板卡數為準。然後直接點選【Start】按鈕便可。
如果選擇的是UART介面,你必須在【RT Port Index】裡逐一選中每個Port進行具體設定,並保證右側狀態均為"Already Set"。
3.5 在HAB Closed情況下
當晶片HAB狀態處於Closed的情況下,此時需要將你生成的含簽名的flashloader檔案放置於RT-Flash指定目錄下(此處以RT106x為例),並且檔案必須命名為ivt_flashloader_signed.bin。
除此以外,還需確保bltargetconfig.py檔案裡的兩個變數與你的含簽名flashloader檔案相匹配。