玩转keil之hex_bin文件的生成与迁移

为何要写这个文件

  1. keil生成.hex文件时,会默认把它和.o等编译输出文件放在一起,由于编译输出文件很多,导致找.hex文件很麻烦。
  2. keil生成.bin文件时,需要使用者设置工程,才能生成。
  3. 由于他俩最后要打包到一起交给生产,需要将他俩存放到一起。
  4. 总之,笔者感觉这样很繁琐。所以便写了一个脚本来处理这些乱七八糟的事。

最终效果

编译工程后,keil会自动将.hex文件和.bin文件存放在..\exeout的文件夹中。这样的好处是在找.hex文件和.bin文件时特别方便。

如何使用

  1. 将编写好的bat脚本存放到工程目录下。(也就是双击就能打开keil工程的后缀名为uvprojx文件的目录中)。
  2. 根据 keil设置步骤设置工程。
  3. 编译看现象。

编写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设置

玩转keil之hex_bin文件的生成与迁移-编程知识网
图中所添加命令为.\hexmove.bat $K !L UpdateProgram_sp.bin.含义如下

  1. .\hexmove.bat为上面编写好的bat文件的名称。(路径+文件名)。
  2. $K为传输给bat文件的第一个参数,即上面所要求的keil的安装目录。为什么$K代表keil的安装目录呢?其实这是keil自己规定的,用于跟外部交互信息使用,具体可以查看keil的帮助。
  3. !L代表.axf文件的位置。!L来历跟$K一样,不多做解释。.axf文件是keil工程编译后生成的,此处用于生成.bin文件。
  4. UpdateProgram_sp.bin为生成.bin文件的名称。可以随意更改。

总结

上面已经贴出了bat文件的代码,当然也可以直接下载此文件。bat文件下载链接,如果遇到解决不了的问题,可以在关于技术交流中加群,问笔者、或者大家。

关于技术交流

此处后的文字已经和题目内容无关,可以不看。
qq群:825695030
微信公众号:嵌入式的日常
如果上面的文章对你有用,欢迎打赏。
玩转keil之hex_bin文件的生成与迁移-编程知识网