Keil实用小技巧 | Keil定制Hex文件名实现的方法
来源:嵌入式专栏发布时间:2024-05-115882浏览
询问 AI
作者 |strongerHuang微信公众号 |嵌入式专栏你们平时输出的Hex文件名,是如何定义的?特别是在产品需要量产时,发给生产部的Hex固件(文件名)。
如果软件版本升级了,发过去的Hex文件名还是一样,对方是不是要搞混?
但如果Hex文件名是通过【工程名+软件版本+日期时间】,类似下图这种,是不是就就不会出现搞混的情况了?

Keil定制Hex文件名实现的方法
Keil定制Hex文件名实现的方法有很多,这里为大家讲述其中一种,通过bat批处理实现的方法。
这里是本教程使用bat文件的内容:
@echo off@REM 可执行文件(Hex)文件名set HEX_NAME=Demo@REM 可执行文件(Hex)文件路径set HEX_PATH=.\Objects@REM 定制Hex输出路径set OUTPUT_PATH=.\Output@REM 软件版本文件路径set VERSION_FILE_PATH=..\App\main.c@REM 软件版本字符串的格式set SOFTWARE_VERSION="#define SOFTWARE_VERSION"@REM 获取系统日期和时间set YEAR=%DATE:~2,2%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%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=%%iset SW_Ver=%SW_Ver:~1,-1%@REM 定制Hex文件名set output_file_name=%HEX_NAME%_V%SW_Ver%_%CURRENT_DATE%@REM 显示并复制Hex文件echo "Output hex file: %OUTPUT_PATH%\%output_file_name%.hex"copy %HEX_PATH%\%HEX_NAME%.hex %OUTPUT_PATH%\%output_file_name%.hexexit
提示:这里的内容可以根据自己项目情况进行修改,这里只是为了方便说明,整理的一个份简单的bat内容。
我们将这个bat文件放在工程的某个地方(目录)。比如,我们这里直接放在工程目录下:


详述bat批处理文件的内容
bat批处理文件我把它分为两块,上面一块是根据自己项目情况,需要进行修改。而下面部分可以不用修改。

1、可执行文件(Hex)文件名、文件路径,是你 Keil 工程配置选项中,配置的内容。
@REM 可执行文件(Hex)文件名set HEX_NAME=Demo@REM 可执行文件(Hex)文件路径set HEX_PATH=.\Objects

2、定制Hex输出路径,根据你自己情况,放在某个目录下,我们这里放在 工程下 Output 目录下。
@REM 定制Hex输出路径set OUTPUT_PATH=.\Output

@REM 软件版本文件路径set VERSION_FILE_PATH=..\App\main.c@REM 软件版本字符串的格式set SOFTWARE_VERSION="#define SOFTWARE_VERSION"

@REM 获取系统日期和时间set YEAR=%DATE:~2,2%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%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=%%iset SW_Ver=%SW_Ver:~1,-1%@REM 定制Hex文件名set output_file_name=%HEX_NAME%_V%SW_Ver%_%CURRENT_DATE%@REM 显示并复制Hex文件echo "Output hex file: %OUTPUT_PATH%\%output_file_name%.hex"copy%HEX_PATH%\%HEX_NAME%.hex%OUTPUT_PATH%\%output_file_name%.hex
关于bat批处理文件的语法,这里就不解释其中语法的内容,大家可以自行百度了解。
最后额外说一下:这里主要针对Hex文件名,为了方便查找或追溯bug,最好在应用代码中,能通过某种方式(显示屏、串口输出等)获取当前软件的版本。
------------END------------


新闻来源:嵌入式专栏,文中所述为作者独立观点,不代表icspec立场。更多精彩资讯请下载icspec App。如对本稿件有异议,请联系微信客服specltkj。
