English | 中文html
RT-Flash是一個專爲基於NXP i.MX RT系列芯片的產品量產而設計的工具,其功能與官方MfgTool2工具相似,可是解決了MfgTool2工具在實際量產使用中的一些痛點:python
- 使用MfgTool2僅能在xml中指定.sb文件,沒法直接在GUI裏選擇.sb文件;
- 使用MfgTool2僅能選擇USB端口,沒法使用UART端口;
- 使用MfgTool2的USB端口下載時,有時沒法識別某些端口鏈接,必需要加Hub方可識別;
- 使用MfgTool2批量下載時,最多隻能支持4塊板卡;
藉助於RT-Flash,你能夠輕鬆實現批量生產。RT-Flash主要功能以下:git
- 支持i.MXRT全系列MCU,包含i.MXRT101五、i.MXRT102一、i.MXRT1051/105二、i.MXRT1061/106二、i.MXRT1064 SIP
- 支持UART和USB-HID兩種串行下載方式(COM端口/USB設備自動識別)
- 支持下載.sb格式的image文件進啓動設備
- 支持批量下載多個.sb格式的image文件(同一文件夾下)
- 支持批量下載多個板卡(板卡數量不限)
RT-Flash徹底基於Python語言開發,而且源代碼所有開源,其具體開發環境爲Python 2.7.15 (32bit)、wxPython 4.0.三、pySerial 3.四、pywinusb 0.4.二、PyInstaller 3.3.1(或更高)。github
RT-Flash在發佈時藉助PyInstaller將全部的Python依賴所有打包進一個可執行文件(\RT-Flash\bin\RT-Flash.exe),所以若是不是對RT-Flash的二次開發,你不須要安裝任何Python軟件及相關庫。app
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做者沒有計劃修復該問題。測試
RT-Flash是一個是純綠色免安裝的工具,下載了源代碼包以後,直接雙擊\RT-Flash\bin\RT-Flash.exe便可使用。使用RT-Flash沒有任何軟件依賴,不須要額外安裝任何軟件。
在RT-Flash.exe圖形界面顯示以前,會首先彈出一個控制檯窗口,該控制檯會伴隨着RT-Flash.exe圖形界面一塊兒工做,不少圖形界面的操做都會在控制檯窗口看到對應的底層命令執行,保留控制檯主要是爲了便於定位RT-Flash.exe的問題,目前RT-Flash尚處於早期階段,等後期軟件成熟會考慮移除控制檯。ui
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通訊的上位機命令行工具
下圖爲RT-Flash工具的主界面,界面主要由四部分組成,各部分功能以下:設計
- 【Menu Bar】:功能菜單欄,提供軟件通用設置。
- 【Setup Window】:設置欄,提供MCU Device選項、串行接口選項。
- 【Download Window】:下載主界面,提供對目標設備作一鍵下載操做。
- 【Status Bar】:狀態欄,顯示軟件運行狀態信息。
在使用RT-Flash工具前主要有兩個準備工做:1、準備好i.MXRT硬件板以及串行下載鏈接線(USB/UART);2、準備好用於下載進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格式文件。
在使用RT-Flash時首先須要配置目標設備,目標設備即MCU Device。以NXP官方開發板EVK-MIMXRT1060爲例,該開發板主芯片爲i.MXRT1062DVL6A,因此【RT Device】應設爲i.MXRT106x。
設置好目標設備以後,下一步即是鏈接目標設備,以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便可。
選中要下載的.sb文件,直接點擊【Start】按鈕即可將.sb文件下載進啓動設備。若是成功下載,【Successful Boards】裏數值會變成1,此外狀態欄裏會顯示"Application image file (.sb) has been downloaded successfully!"。
若是你想一次性下載多個.sb文件,你須要將這些文件放置於同一個文件夾,而後在工具裏第二個【Browse】下選中這個文件夾(注意必須保證第一個【Browse】按鈕裏的路徑是空),而後直接點擊【Start】按鈕即可。
若是你想一次性下載程序進多個板卡,你須要在板卡設置欄【Connected】填入實際鏈接板卡數(填入數值後必須按鍵盤上的Enter鍵來肯定),以USB接口爲例,此時你會看到【Detected】裏會顯示實際識別板卡數,最終下載以實際識別板卡數爲準。而後直接點擊【Start】按鈕即可。
若是選擇的是UART接口,你必須在【RT Port Index】裏逐一選中每一個Port進行具體設置,並保證右側狀態均爲"Already Set"。
當芯片HAB狀態處於Closed的狀況下,此時須要將你生成的含簽名的flashloader文件放置於RT-Flash指定目錄下(此處以RT106x爲例),而且文件必須命名爲ivt_flashloader_signed.bin。
除此之外,還需確保bltargetconfig.py文件裏的兩個變量與你的含簽名flashloader文件相匹配。