RT-Flash是一個專為基於NXP i.MX RT系列晶元的產品量產而設計的工具,其功能與官方MfgTool2工具類似,但是解決了MfgTool2工具在實際量產使用中的一些痛點 ...
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(或更高)。
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文件相匹配。