1. 程式人生 > >痞子衡嵌入式:MCUBootFlasher v3.0釋出,為真實的產線操作場景而生

痞子衡嵌入式:MCUBootFlasher v3.0釋出,為真實的產線操作場景而生

--   痞子衡維護的NXP-MCUBootFlasher工具(以前叫RT-Flash)距離上一個版本(v2.0.0)釋出過去一年半以上了,這一次痞子衡為大家帶來了全新版本v3.0.0,從這個版本開始,NXP-MCUBootFlasher將不再侷限於i.MXRT系列,也要開始支援經典的LPC,Kinetis系列。但是擴充套件MCU型號支援並不是這個版本最重要的更新,這次主要做了8路板卡非同步自動下載功能(特別適合產線操作場景),痞子衡是怎麼做到的?且往下看。 ### 一、v3.0更新記錄 ![](http://henjay724.com/image/cnblogs/rtFlash_v3.0_rel_note_v2.PNG) ### 二、關於新系列MCU的支援   NXP-MCUBootFlasher v3.0之前的版本主要支援i.MXRT系列。從v3.0開始,MCUBootUtility加入了LPC5500、Kinetis的支援。這三大系列MCU雖然差異不小,但有一個共同特點,那就是支援恩智浦獨創的一種程式檔案格式(.sb)。這種SB格式檔案除了包含可執行檔案所有資訊外,還同時包含配套的Flash操作步驟資訊以及加密相關操作資訊,這樣就非常方便量產使用。下圖便是最早期的.sb格式檔案組成: ![](http://henjay724.com/image/cnblogs/rtFlash_v3.0_sb_format.PNG)   Kinetis和i.MXRT1xxx系列是基於SB 1.x版本設計的,SB 1.x中程式既可以是不加密的也可以加密;i.MXRTxxx和LPC5500系列是基於SB 2.x版本設計的,SB 2.x規定了程式必須要加密。 ### 三、適用真實的產線操作場景   NXP-MCUBootFlasher v3.0之前的版本燒寫多塊板卡的設計邏輯是:一位工人將n塊板卡先全部連上PC的插槽,等工具將板卡全部識別出來,這時候工人點選工具【Start】按鈕,工具會按序完成這n塊板卡的下載工作,然後工人再換下一批板卡,重複上述過程,其本質上是序列的。這種設計其實並不符合產線上實際操作流程。   NXP-MCUBootFlasher v3.0版本實現了真正的非同步燒寫多塊板卡的設計邏輯:n塊板卡不需要同時被連上PC插槽,每個插槽均由一名工人負責,工人將板卡連上插槽,工具會自動完成該板卡的下載工作(不需要點選任何按鈕),並給出最終下載狀態結果,下載完成工人即可更換下一塊板卡,重複此過程。n路插槽的n個工人可以根據自己工作節奏來做,不需要嚴格同步,其本質上是並行的,這種設計才是產線上的真實操作流程。   基於並行的頻寬考量,v3.0暫時支援最多8路插槽,當然想擴充套件到更多路,改一下程式碼也很容易做到。 ![](http://henjay724.com/image/cnblogs/rtFlash_v3.0_view.PNG) > Note: v3.0版本在使用上有一個小限制,8路插槽需要被分別單獨下載一次(此時其他7路不能連線板卡),完成此流程後8路插槽便可以一起工作了。   至此,這次更新的主要特性便介紹完了。MCUBootFlasher專案地址為 https://github.com/JayHeng/NXP-MCUBootFlasher , 雖然當前版本(v3.0.0)功能已經非常完備,你還是可以在此基礎上再新增自己想要的功能。如此神器,還不快快去下載試用? ### 歡迎訂閱 文章會同時釋出到我的 [部落格園主頁](https://www.cnblogs.com/henjay724/)、[CSDN主頁](https://blog.csdn.net/henjay724)、[知乎主頁](https://www.zhihu.com/people/henjay724)、[微信公眾號](http://weixin.sogou.com/weixin?type=1&query=痞子衡嵌入式) 平臺上。 微信搜尋"__痞子衡嵌入式__"或者掃描下面二維碼,就可以在手機上第一時間看了哦。 ![](http://henjay724.com/image/github/pzhMcu_qrcode_258x2