Keil编译输出的hex文件名通常和Project项目名称一致。为了每次编译hex自动增加版本号、日期和时间。
新建文本文件output扩展名txt
输入
@echo off
@REM 执行文件(Hex)文件名
set HEX_NAME=Project
@REM 可执行文件(Hex)文件路径
set HEX_PATH=.\Objects
@REM 定制Hex输出路径
set OUTPUT_PATH=.\Output
@REM 软件版本文件路径
set VERSION_FILE_PATH=..\Src\main.c
@REM 软件版本字符串的格式
set SOFTWARE_VERSION="#define SOFTWARE_VERSION"
@REM 获取系统日期和时间
set YEAR=%date:~0,4%
set MONTH=%date:~5,2%
set DAY=%date:~8,2%
set HOUR=%time:~0,2%
set MINUTE=%time:~3,2%
set SECOND=%time:~6,2%
@REM set CURRENT_DATE=%HOUR%%MINUTE%%SECOND%
set CURRENT_DATE=%YEAR%%MONTH%%DAY%_%HOUR%%MINUTE%%SECOND%
@REM 获取软件版本
for /f "tokens=3 delims= " %%i in ('findstr /C:%SOFTWARE_VERSION% %VERSION_FILE_PATH%') do set SW_Ver=%%i
set SW_Ver=%SW_Ver:~1,-1%
@REM 定制Hex文件名
set output_file_name=%HEX_NAME%_V%SW_Ver%_%CURRENT_DATE%
@REM 删除之前的Hex文件
del /f /s /q %OUTPUT_PATH%\%HEX_NAME%*.*
@REM 显示并复制Hex文件
echo "Output hex file: %OUTPUT_PATH%\%output_file_name%.hex"
copy %HEX_PATH%\%HEX_NAME%.hex %OUTPUT_PATH%\%output_file_name%.hex
@REM 转换并定制Bin文件名
C:\Keil_v5\ARM\ARMCLANG\bin\fromelf.exe --bin %HEX_PATH%\%HEX_NAME%.axf --output %OUTPUT_PATH%\%output_file_name%.bin
exit
结束
需要按照需要修改的地方
set HEX_NAME=**********项目名称
Name of Executable:
set HEX_PATH=.\Objects
Hex文件初始生成的文件夹
set OUTPUT_PATH=.\Output
更改名称的Hex文件路径,没有需要建立该文件夹。
@REM 软件版本文件路径
set VERSION_FILE_PATH=..\Src\main.c
@REM 软件版本字符串的格式
set SOFTWARE_VERSION="#define SOFTWARE_VERSION"
在相对路径下main.c文件中
定义#define SOFTWARE_VERSION "1.0.0"
@REM 获取系统日期和时间
set YEAR=%date:~0,4%
set MONTH=%date:~5,2%
set DAY=%date:~8,2%
set HOUR=%time:~0,2%
set MINUTE=%time:~3,2%
set SECOND=%time:~6,2%
@REM set CURRENT_DATE=%HOUR%%MINUTE%%SECOND%
set CURRENT_DATE=%YEAR%%MONTH%%DAY%_%HOUR%%MINUTE%%SECOND%
不同版本,不同语言的操作系统表示方法不一样。按照批处理脚本文件写法更改。当前使用的是WIN10中文版的写法。
@REM 删除之前的Hex文件
del /f /s /q %OUTPUT_PATH%\%HEX_NAME%*.*
编译次数太多文件太多每次删除上次的文件,不需要可以删除。
@REM 转换并定制Bin文件名
C:\Keil_v5\ARM\ARMCLANG\bin\fromelf.exe --bin %HEX_PATH%\%HEX_NAME%.axf --output %OUTPUT_PATH%\%output_file_name%.bin
同时生成bin文件。
更改文件扩展名bat
运行本方发