来源:公众号【鱼鹰谈单片机】 ID:emOsprey
有的时候,我们需要通过脚本的方式在 bin 文件前加一些头(比如版本号、校验),因此今天鱼鹰分享一点小知识。
hex 转 bin 的方法太多了,就不多介绍:
《功能强大的 HEX 开源转换工具,你值得拥有》
《Keil 生成 Bin 文件最正确的姿势》
《bin 和 axf 文件的生成》
可以看到用了一个奇怪的符号 !L。
另外《BUG 终结者,现场抓获!|颠覆认知》也有一个奇怪的 %L。
这个是什么呢?我们可以通过脚本的方式打印出来看看(批处理也可以调用 shell、Python 脚本,这样可操作性很大)。
@echo off
:: 参数 0 为批处理自身的文件名
set parameter_0=%0
:: @L 目标 axf 文件(不带后缀名)
set parameter_1=%1
:: %L 目标 axf 文件(带后缀名)
set parameter_2=%2
:: !L 目标 axf 文件(带相对路径和后缀名)
set parameter_3=%3
:: $L Objects 文件夹(绝对路径)
set parameter_4=%4
:: #K MDK 安装绝对路径
set parameter_5=%5
:: $K MDK 安装绝对路径
set parameter_6=%6
:: 版本号
set version=%7
:: 注意:参数使用时 %x 数字后不能有任何空格。= 两边也不需要空格
echo --parameter0 %parameter_0%--
echo --parameter1 %parameter_1%--
echo --parameter2 %parameter_2%--
echo --parameter3 %parameter_3%--
echo --parameter4 %parameter_4%--
echo --parameter5 %parameter_5%--
echo --parameter6 %parameter_6%--
echo --parameter7 %version%--
:: 脚本或命令调用
:: 获取当前路径
"C:Program FilesGitbinsh.exe" -c "pwd"
"C:Program FilesGitbinsh.exe" -c "./helloword.sh"
让工程编译完成后自动调用该脚本打印看看结果:
test.bat @L %L !L $L #K $K 0.1
"C:Program FilesGitbinsh.exe" -c "./helloword.sh"
编译工程后,自动编译脚本 test.bat(该文件和工程文件同一目录下):
更多符号介绍可参考链接:https://developer.arm.com/documentation/101407/0538/Utilities/Key-Sequence-for-Tool-Parameters
阅读全文