首先为什莫要合成bin:
很多时候单片机要求要boot和app两个程序,但是两个分别烧写比较麻烦,然后通过合并,将两块运行程序合并在一起
好东西就是要分享::::::::::::::::::::::::::::::::::::
链接:https://pan.baidu.com/s/1o7x84XkoHsDEKOy0XnNZtA
提取码:soko
--来自百度网盘超级会员V4的分享
两种windows下合成bin的工具方法,都是使用批处理,建立批处理.bat文件:
1.第一种合并bin
::删除合并的文件
del merage.bin
::创建新的合并文件 添加空白4096字节
fsutil file createnew merage.bin 4096
::将2.bin追加到4096之后
cat 2.bin >> merage.bin
::将1.b追加到merage.bin开头
hbin 1.bin merage.bin
2.第二种工具:SRecord 1.64
::删除合并的文件
del merge.bin
::创建文件merage.bin
fsutil file createnew merage.bin 0
::将1.bin和2.bin合并填入merge.bin
::-output输出
::-binary代表bin文件
::-fill 0xff 0x00000000 0x00000008 填补空白空间:: 填补空间注意,这里填补的是boot的空间,不要超出整个文件的大小
srec_cat.exe -output "merge.bin" -binary 1.bin -binary -fill 0xff 0x00000000 0x00000008 2.bin -binary -offset 0x0000A000
::将bin文件转换为hex文件,将merge.bin转换为binToHex.hex
::-offset -0x00000000 偏移地址 默认就是0
::-intel 代表hex文件
srec_cat.exe merge.bin -binary -offset -0x00000000 -o binToHex.hex -intel
例子:
echo 开始执行命令
@ECHO OFF
set BOOT_SIZE=0x00004000
set APP_OFFSET=%BOOT_SIZE%
set BOOT_NAME=Boot
set APP_NAME=Boot
set COMBIN_NAME=App
set FLASH_ADDR=0x80000000
del %COMBIN_NAME%.bin
del %COMBIN_NAME%.hex
fsutil file createnew %COMBIN_NAME%.bin 0
.\srecord-1.65.0-win64\srecord-1.65.0-win64\bin\srec_cat.exe -output "%COMBIN_NAME%.bin" -binary %BOOT_NAME%.bin -binary -fill 0xff 0x00000000 %BOOT_SIZE% %APP_NAME%.bin -binary -offset %APP_OFFSET%
.\srecord-1.65.0-win64\srecord-1.65.0-win64\bin\srec_cat.exe %COMBIN_NAME%.bin -binary -offset -%FLASH_ADDR% -o %COMBIN_NAME%.hex -intel
echo 合成文件%COMBIN_NAME%.bin成功
echo 转换文件%COMBIN_NAME%.hex成功
pause
再就是列出几个好用的批处理命令:
1.不显示cmd,因为运行太快直接就关闭了 在结束添加pause 暂停
2.echo 打印提示的文字 @echo off 关闭命令回显,但是echo还有输出
3.set /p a=请输入偏移地址: 还有就是输入变量 使 用%a%
set 变量名=变量 注意=左右不能有空格,使用%变量名%
4.cls清屏
5.注意中文要用gbk ascall输出才不会乱码