杂记:MDK相关配置

摘要:MDK配置生产bin文件并通过脚本文件将bin文件重命名然后拷贝到目的文件夹中去。

在嵌入式开发中,MDK(Keil Microcontroller Development Kit)是一个常用的开发环境,尤其在STM32等微控制器的开发中。本文将介绍如何在MDK中配置生成BIN文件,并通过脚本将生成的文件复制到指定文件夹中。这对于版本管理和固件更新非常有帮助。

1、bin文件生成

在MDK中,生成BIN文件通常需要借助 fromelf 工具,它是Keil自带的工具,用于将编译生成的 .axf 文件转换为 .bin 文件。

1.1 配置步骤

  1. 找到 fromelf 工具的路径 通常, fromelf 工具位于Keil安装目录下的 ARM\ARMCC\bin 文件夹中。例如:
C:\Keil_v5\ARM\ARMCC\bin\fromelf.exe --bin --output ..\DownloadFiles\BMS_MAINCTRL.bin .\Build\BMS_MAINCTRL.axf

说明:

fromelf: D:\keil5\ARM\ARMCC\bin\fromelf.exe

MDK自带工具路径,笔者的路径如上所示,请修改为自己的路径(或者点击右边的文件夹小图标,找到该工具)。

[options]--bin --output ../OBJ/PWM.bin

生成bin文件命令,想把生成的bin文件放在什么地方(记住路径最前面是 …/(两个点),而不是 ./(一个点),之前就被坑了)。

input_file: ../OBJ/PWM.axf

输入文件,这里是用axf格式的文件转换为bin文件,找到你工程里的axf文件所在位置,填上去就可以了。axf文件路径绝对不允许出现空格。

修改后:

D:\Program Files\Keil_v5\ARM\ARMCC\bin\fromelf.exe --bin --output .\Build\BMS_MAINCTRL.bin .\Build\BMS_MAINCTRL.axf

修改2:

D:\Program Files\Keil_v5\ARM\ARMCC\bin\fromelf.exe --bin --output .\Build\STM32F103ZET6 TESTCODE.bin .\Build\STM32F103ZET6 TESTCODE.axf
//出现了空格
//更改为:
D:\Program Files\Keil_v5\ARM\ARMCC\bin\fromelf.exe --bin --output .\Build\STM32F103ZET6_TESTCODE.bin .\Build\STM32F103ZET6_TESTCODE.axf

2、将生成的HEX文件复制到指定文件夹

为了方便管理和版本控制,我们可以将生成的BIN文件或HEX文件复制到指定文件夹中,并根据时间戳重命名文件。

2.1 原始

在桌面新建一个bat文件,输入以下内容

set filename=V6118_MAIN
set path=V6118_MAIN
::获取日期 将格式设置为:20110820
set datevar=%date:~0,4%%date:~5,2%%date:~8,2%
set timevar=%time:~0,2%
if /i %timevar% LSS 10 (
set timevar=0%time:~1,1%
)
::获取时间中的分、秒 将格式设置为:3220 ,表示 3220秒
set timevar=%timevar%%time:~3,2%%time:~6,2%
set copyfilename=%filename%-%datevar%-%timevar%
copy %path%\%filename%.hex ..\HEX\%copyfilename%.hex
@echo filename:%copyfilename%.hex
path为hex生成的路径
timevar为获取系统时间
copyfilename表示复制后得到的文件名
copy %path%\%filename%.hex ..\HEX\%copyfilename%.hex表示将对应路径下的hex文件复制到其他上一层路径并命名(名称为copyfilename)
@echo filename:%copyfilename%.hex 表示打印复制后的文件名

保存文件,将文件放入到工程目录如下图所示
在这里插入图片描述

打开工程,配置如下
在这里插入图片描述

编译结果如下则表示成功
在这里插入图片描述

2.2 本工程修改

set filename=BMS_MAINCTRL
set path=Build
::获取日期 将格式设置为:20110820
set datevar=%date:~0,4%%date:~5,2%%date:~8,2%
set timevar=%time:~0,2%
if /i %timevar% LSS 10 (
set timevar=0%time:~1,1%
)
::获取时间中的分、秒 将格式设置为:3220 ,表示 3220秒
set timevar=%timevar%%time:~3,2%%time:~6,2%
set copyfilename=%filename%-%datevar%-%timevar%
copy %path%\%filename%.hex ..\DownloadFiles\%copyfilename%.hex
@echo filename:%copyfilename%.hex
copy %path%\%filename%.bin ..\DownloadFiles\%copyfilename%.bin
@echo filename:%copyfilename%.bin

filename为hex和bin文件的文件名:BMS_MAINCTRL
path为hex生成的路径:Build
timevar为获取系统时间
copyfilename表示复制后得到的文件名:BMS_MAINCTRL-20220303-165722
copy %path%\%filename%.hex ..\HEX\%copyfilename%.hex表示将对应路径下的hex文件复制到其他上一层路径并命名(名称为copyfilename):..\DownloadFiles
@echo filename:%copyfilename%.hex 表示打印复制后的文件名

3、修改

3. 总结

通过上述配置,我们可以在MDK中自动生成BIN文件,并通过批处理脚本将文件复制到指定目录并重命名。这不仅方便了版本管理,还提高了开发效率。希望本文对嵌入式开发人员有所帮助。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Geek__1992

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值