bootload 两个bin文件合并脚本

1新建一个“合并bin文件.bat”的文件,复制以下代码 这个文件不需要修改。

::@echo off

::执行批处理文件名 "post"
set run_name=post
set run_name_type=%run_name%.bat
::输出log文件名
set file_name=%run_name%_log
set file_name_type=%file_name%.txt
::日期时间
set Date=%date%
set Time=%time%
::windows使用
echo. >> %file_name_type%
echo. >> %file_name_type%
echo start-------------------------------------------------------------- >> %file_name_type%
::linux使用
::printf "\n\n" >> %file_name_type%
::printf "start--------------------------------------------------------------\n" >> %file_name_type%
 
echo %Date% >> %file_name_type%
echo %Time% >> %file_name_type%

echo %run_name_type%-^>%file_name_type% >> %file_name_type%
::linux使用
::printf "\n" >> %file_name_type%
::windows使用
echo. >> %file_name_type%
%run_name_type% >> %file_name_type%


::pause

2、新建一个“post.bat”文本,复制以下内容,其中文件名 版本号偏移地址根据自己需求修改。以下如需使用cat命令需自行下载cat.exe放到脚本同文件夹下,若提示hbin不是内部指令获命令自行下载HBIN.exe放到脚本文件夹下,或放到系统文件夹system32里。

@echo off
::以下根据自己需求更改
::boot bin 文件名
set boot=boot.bin
::APP bin文件名
set app=APP.bin
::app偏移地址
set /a app_offset=0xc800
::软件版本
set boot_ver=Boot_V842
set app_ver=App_V836
::合成的文件名
set creat_app=ALL_%boot_ver%_%app_ver%.bin 


::以下部分不需要改
del %creat_app%
fsutil  file createnew %creat_app%  %app_offset%
hbin %boot%   %creat_app%
::linux使用
cat  %app% >> %creat_app%

::windows使用
::type  %app% >> %creat_app%

:: boot尺寸
setlocal enabledelayedexpansion
for /f "delims=" %%i in ('dir /a-d /b %boot%') do (    
set /a boot_size=%%~zi 
)

::APP尺寸
for /f "delims=" %%i in ('dir /a-d /b %app%') do (    
set /a app_size=%%~zi 
)

::合成尺寸
for /f "delims=" %%i in ('dir /a-d /b %creat_app%') do (    
set /a creat_app_size=%%~zi 
)
::set /a creat_app_size=%app_offset%+%app_size%

::linux使用
::printf "\n"
::windows使用
echo.

set /a boot_sizek=%boot_size%/1024
set /a boot_sizey=%boot_size%%%(1024)
set /a boot_sizeu=boot_sizey*10000/1024
echo %boot% &echo size = %boot_size%字节  %boot_sizek%KB+%boot_sizey%字节  %boot_sizek%.%boot_sizeu%KB 
::linux使用
::printf "\n"
::windows使用
echo.

set /a app_offsetk=%app_offset%/1024
set /a app_offsety=%app_offset%%%(1024)
set /a app_offsetu=app_offsety*10000/1024
echo app_offset偏移  &echo size = %app_offset%字节  %app_offsetk%KB+%app_offsety%字节  %app_offsetk%.%app_offsetu%KB 
::linux使用
::printf "\n"
::windows使用
echo.

set /a app_sizek=%app_size%/1024
set /a app_sizey=%app_size%%%(1024)
set /a app_sizeu=app_sizey*10000/1024
echo %app%  &echo size = %app_size%字节  %app_sizek%KB+%app_sizey%字节  %app_sizek%.%app_sizeu%KB 
::linux使用
::printf "\n"
::windows使用
echo.

set /a creat_app_sizek=%creat_app_size%/1024
set /a creat_app_sizey=%creat_app_size%%%(1024)
set /a creat_app_sizeu=creat_app_sizey*10000/1024
echo %creat_app% &echo size = %creat_app_size%字节  %creat_app_sizek%KB+%creat_app_sizey%字节  %creat_app_sizek%.%creat_app_sizeu%KB 
echo end-------------------------------------------------------------- 

3、把要合并的bin文件和脚本放到同一文件夹下双击“合并bin文件.bat”。输出log保存在“post_log.txt”如下。除了偏移大小是设定值其他大小值均是脚本读取的文件大小不需要人为设定。

 
 
start-------------------------------------------------------------- 
2020/02/07 周五 
20:31:36.37 
post.bat->post_log.txt 
 
已创建文件 C:\Users\jixuansong\Desktop\bin文件合并\ALL_Boot_V842_App_V836.bin

boot.bin 
size = 32840字节  32KB+72字节  32.703KB 

app_offset偏移  
size = 51200字节  50KB+0字节  50.0KB 

APP.bin  
size = 111344字节  108KB+752字节  108.7343KB 

ALL_Boot_V842_App_V836.bin  
size = 162544字节  158KB+752字节  158.7343KB 
end-------------------------------------------------------------- 

以上合并的bin文件本人亲自对比过结果与需要的一致。关键地址对比如下图

 

 

 

 

 

 

 

 

posted @ 2020-02-07 21:14  极炫松  阅读(2025)  评论(0编辑  收藏  举报