bin文件合併工具(UBIN)使用方法

轉自https://blog.csdn.net/u012572552/article/details/84569224 侵刪

bin文件合併工具下載地址:https://download.csdn.net/download/u012572552/10811074

在單片機的開發過程中,經常需要將兩個單獨的bin文件合併成一個文件,方便燒寫和生產。

超好用的一個工具,可以實現兩個二進制bin文件的合併,任一指定偏移量合併。使用它可以直接將編譯好的兩個bin文件按照程序員需要合併,而不需費力去重建工程重新編譯。有興趣的朋友可以試試。

使用方法

首先簡單介紹一下STM32的IAP。IAP(In-application-programming),即在應用中編程。有了它,產品發佈之後,仍然可 以方便的升級固件,而不需要拆機並用JTAG等方式更新程序。IAP系統的固件一般有兩部分組成,IAP BootLoader Code和Application Code,如下圖所示。

系統啓動時,首先運行IAP BootLoader Code,並檢測相應狀態,判斷是執行升級的流程還是直接運行本地的Application Code。 一般來說,BootLoader和Application是分別編譯的,會生成兩個二進制文件。在工廠生產時,如果分別燒寫這兩個文件,顯然有些麻煩。這 時,我們就可以將兩個BIN文件合併成一個,直接燒寫。假設Application Code的偏移地址爲0x1000,IAP固件在Flash中的分佈如下圖所示。

下面介紹第一種方法,使用二進制文件合併工具(UBIN.exe),這個小工具是以前在S3C2410上開發uCOS時做的,功能比較簡單,滿足一般的需求。

首先,添加第一個文件1.bin,其地址爲0x0000,所以,偏移量設置爲0x00000000,設置完偏移量後點擊“添加”按鈕。

然後添加第二個文件,偏移量根據需要設置爲0x00001000,如下圖所示。

設置目標文件爲C:\dst.bin,然後點擊“合併”按鈕。

正常情況下,會成功生成目標文件,並有如下圖所示的提示信息。

這種方法相對比較靈活,對合並文件的個數和偏移地址沒有限制。缺點是不支持配置文件,不能保存所設的配置,所以,每次合併都得手動做很多重複工作。在調試階段會比較浪費時間。

下面介紹一種通過命令行工具合併兩個文件的方法。該方法需要用到fsutil.exe、cat.exe和hbin.exe。寫一個批處理文件,分別調用這三個工具,最終將1.bin和2.bin合併成dest.bin。批處理文件的內容如下:

del dest.bin
fsutil  file createnew dest.bin 4096 
cat 2.bin >>dest.bin
hbin 1.bin dest.bin

批處理文件各行的簡單說明,

del dest.bin,刪除原來的目標文件

fsutil  file createnew dest.bin 4096,創建一個大小爲4096字節的空白文件dest.bin,該值的大小由偏移地址0x1000決定

cat 2.bin >>dest.bin,將2.bin追加到空白文件dest.bin之後

hbin 1.bin dest.bin,將1.bin放到dest.bin的頭上,填充dest.bin頭上4KB的空白

dest.bin就是我們最終需要的合併完成的文件。將它與第一種方法合併的文件dst.bin對比一下,如下。

可以看到兩種方法合併出的文件,完全一樣。

第二種方法的好處在於,可以在集成開發環境中設置編譯選項,在編譯完成之後自動執行該批處理,這樣,編譯完成後即得到能夠直接固化到Flash中的二進制文件,節省了一些時間
--------------------- 
版權聲明:本文爲CSDN博主「搬磚小王子」的原創文章,遵循CC 4.0 by-sa版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/u012572552/article/details/84569224

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章