玩转keil之hex_bin文件的生成与迁移
为何要写这个文件
- keil生成
.hex
文件时,会默认把它和.o
等编译输出文件放在一起,由于编译输出文件很多,导致找.hex
文件很麻烦。 - keil生成
.bin
文件时,需要使用者设置工程,才能生成。 - 由于他俩最后要打包到一起交给生产,需要将他俩存放到一起。
- 总之,笔者感觉这样很繁琐。所以便写了一个脚本来处理这些乱七八糟的事。
最终效果
编译工程后,keil会自动将.hex
文件和.bin
文件存放在..\exeout
的文件夹中。这样的好处是在找.hex
文件和.bin
文件时特别方便。
如何使用
- 将编写好的bat脚本存放到工程目录下。(也就是双击就能打开keil工程的后缀名为
uvprojx
文件的目录中)。 - 根据 keil设置步骤设置工程。
- 编译看现象。
编写bat脚本
1.创建hexmove.bat
脚本。和创建.c
文件一样,只不过后缀名为.bat
,然后用编辑器打开。
2. 编写如下代码。
3. 存放到工程目录下。
::
::author theboynoName
::date 2019/09/28
::brief 在keil中,生成hex、bin文件到 exeout文件夹中.
::other
:: 技术交流qq群:825695030
:: 微信公众号:嵌入式的日常
@echo off
if not exist ..\exeout (mkdir ..\exeout
)
set exePath=%1ARM\ARMCC\bin
set outName=%2
set binName=%3
%exePath%\fromelf.exe --bin %outName% --output %binName%
move /y ..\OBJ\Template.hex ..\exeout >nul
move /y .\%binName% ..\exeout >nul
keil设置
图中所添加命令为.\hexmove.bat $K !L UpdateProgram_sp.bin
.含义如下
.\hexmove.bat
为上面编写好的bat文件的名称。(路径+文件名)。$K
为传输给bat文件的第一个参数,即上面所要求的keil的安装目录。为什么$K
代表keil的安装目录呢?其实这是keil自己规定的,用于跟外部交互信息使用,具体可以查看keil的帮助。!L
代表.axf
文件的位置。!L
来历跟$K
一样,不多做解释。.axf
文件是keil工程编译后生成的,此处用于生成.bin
文件。UpdateProgram_sp.bin
为生成.bin
文件的名称。可以随意更改。
总结
上面已经贴出了bat文件的代码,当然也可以直接下载此文件。bat文件下载链接,如果遇到解决不了的问题,可以在关于技术交流中加群,问笔者、或者大家。
关于技术交流
此处后的文字已经和题目内容无关,可以不看。
qq群:825695030
微信公众号:嵌入式的日常
如果上面的文章对你有用,欢迎打赏。