二進制文件又稱bin文件,它有兩種文件格式一種是binary的縮寫,一種是后綴名為".bin"的文件。東坡小編今天帶來了這款二進制文件合并工具(UBIN),它可以實現(xiàn)兩個二個二進制bin文件的合并,或是任意指定偏移量的合并,可以有效減輕程序員的工作量,有需要的歡迎下載!
二進制文件合并工具(UBIN)怎么用
二進制文件合并工具(UBIN)使用方法
首先簡單介紹一下STM32的IAP。IAP(In-application-programming),即在應用中編程。有了它,產(chǎn)品發(fā)布之后,仍然可 以方便的升級固件,而不需要拆機并用JTAG等方式更新程序。IAP系統(tǒng)的固件一般有兩部分組成,IAP BootLoader Code和Application Code,如下圖所示。
系統(tǒng)啟動時,首先運行IAP BootLoader Code,并檢測相應狀態(tài),判斷是執(zhí)行升級的流程還是直接運行本地的Application Code。 一般來說,BootLoader和Application是分別編譯的,會生成兩個二進制文件。在工廠生產(chǎn)時,如果分別燒寫這兩個文件,顯然有些麻煩。這 時,我們就可以將兩個BIN文件合并成一個,直接燒寫。假設Application Code的偏移地址為0x1000,IAP固件在Flash中的分布如下圖所示。
下面介紹第一種方法,使用二進制文件合并工具(UBIN.exe),這個小工具是以前在S3C2410上開發(fā)uCOS時做的,功能比較簡單,滿足一般的需求。
首先,添加第一個文件1.bin,其地址為0x0000,所以,偏移量設置為0x00000000,設置完偏移量后點擊“添加”按鈕。
然后添加第二個文件,偏移量根據(jù)需要設置為0x00001000,如下圖所示。
設置目標文件為C:\dst.bin,然后點擊“合并”按鈕。
正常情況下,會成功生成目標文件,并有如下圖所示的提示信息。
這種方法相對比較靈活,對合并文件的個數(shù)和偏移地址沒有限制。缺點是不支持配置文件,不能保存所設的配置,所以,每次合并都得手動做很多重復工作。在調試階段會比較浪費時間。
下面介紹一種通過命令行工具合并兩個文件的方法。該方法需要用到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,創(chuàng)建一個大小為4096字節(jié)的空白文件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對比一下,如下。
可以看到兩種方法合并出的文件,完全一樣。
第二種方法的好處在于,可以在集成開發(fā)環(huán)境中設置編譯選項,在編譯完成之后自動執(zhí)行該批處理,這樣,編譯完成后即得到能夠直接固化到Flash中的二進制文件,節(jié)省了一些時間。
- PC官方版
- 安卓官方手機版
- IOS官方手機版