合並bin文件-----帶boot發布版本比較好用的bat(便捷版)


直接上圖上代碼(代碼在結尾),有不會用的可以留言:

第一步:工程介紹,關鍵點--- 1.bat文件放所在app和boot工程的同級目錄下  2.release為運行bat自動生成文件夾

第二步:合版.bat  針對具體項目需要修改的變量如下圖, apppath 、bootpath、size

 第三步:雙擊bat,運行如下圖,顯示merge success說明成功,按任意鍵彈出release窗口的發行版bin可以交給生產燒錄了!

 

 源代碼:

 1 :: XX公司   XX設備 合版bin
 2 :: creater: 第一puck     time: 20170909
 3 :: 該文件需要放在工程文件夾相同目錄下
 4 
 5 :: 開/關顯示cli信息
 6 @echo off
 7 echo ***************** XX工程項目 *****************
 8 
 9 :: CMD標題
10 title XX有限公司合版bin工具
11 
12 :: 創建目標文件夾release,並清空
13 mkdir "%~dp0release"
14 del %~dp0\release\*.bin
15 
16 ::變量聲明
17 set apppath="%~dp0XX - APP -V1.00\EWARM\rtos\Exe\XX_APP_V1.00.bin"
18 set bootpath="%~dp0XX- BOOT\EWARM\DEMO\Exe\XX_BOOT_V1.00.bin"
19 set merge="%~dp0release\XX_APP_BOOT_V1.bin"
20 
21 
22 :: 准備boot文件 空bin文件撐開不需要寫部分,size取決於app在flash起始地址之前的空間大小
23 for %%a in (%bootpath%) do set /a size=128*1024-%%~za
24 fsutil file createnew temp.bin %size%
25 copy /b %bootpath% + temp.bin  boot.bin
26 
27 :: 生成合版文件
28 copy /b boot.bin + %apppath%  %merge%
29 
30 :: 刪除臨時文件
31 del temp.bin
32 del boot.bin
33 
34 :: 執行成功與否
35 if exist %merge% (goto success) else goto failure
36 
37 
38 :success
39 echo *************** Merger success! *****************
40 Pause
41 start "" "%~dp0release\"
42 exit
43 :failure
44 echo **************** Merger failure! ****************
45 Pause
46 exit

 注:網上合並bin的工具比如UBIN原理都差不多,撐開部分都是00(bat暫時我沒找到方法寫入FF,需要調用其他插件就不方便了),我拿J-LINK ARM合並的bin和上述合並的bin用beyondcompare比較了下唯一區別就是撐開部分是00和ff區別,一般情況不會有影響(flash寫入前都會先擦除00->FF)。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM