MDK中bin文件的生成
如何利用KEIL生成bin文件并且用于固件更新?
- 生成bin文件
KEIL在编译完成后在Object目录下生成axf文件,我们可以使用fromelf工具将axf文件转化为bin文件。
在User选项卡中可以看到如果勾选了Run#1选项,那么在编译完成之后(After Build/Rebuild),就会执行该选项下的命令。接下来详细的探讨利用 fromelf.exe 转换工具是如何生成bin文件的。
在如何实现生成bin文件之前,首先应该先了解fromelf.exe 转换工具的语法,其格式如下:fromelf [options] file,其中options包括的选项及详细描述见下表:
在了解语法的基础上,KEIL生成bin文件要根据输入命令的相对\绝对路径来分,有两种方式:
绝对路径方式
绝对路径方式,如果更换电脑等,需要手动修改MDK工具链(formelf.exe)所在路径与项目文件名(例如test_app)
"D:\Program Files\MDK516\ARM\ARMCC\bin\fromelf.exe" --bin -o ./obj/test_app.bin ./obj/test_app.axf"
相对路径方式
使用相对路径生成,则不需要任何修改
$K\ARM\ARMCC\bin\fromelf.exe --bin [email protected] !L
编译后,Build Out框可以看到:
After Build - User command #1: D:\Program Files\MDK516\ARM\ARMCC\bin\fromelf.exe --bin --output=test1.bin .\obj\test1.axf
上述操作后,在xxx.uvprojx当前目录下,可看到一个test1.bin
如果希望生成.bin文件输出在当前工程下的指定目录,比如Bin文件夹,可如下操作:
$K\ARM\ARMCC\bin\fromelf.exe --bin --output=Bin\@L.bin !L
编译后,Build Out框可以看到:
After Build - User command #1: D:\Program Files\MDK516\ARM\ARMCC\bin\fromelf.exe --bin --output=Bin\test1.bin .\obj\test1.axf
上述操作后,在xxx.uvprojx当前目录下,可看到一个新生成的Bin文件夹,里面是test1.bin。在命令中使用的符号代号如下:
符号代号(Key Code) | |
$ | 扩展为 指定文件的路径名 |
@ | 表示 Output -> Name of Exectable:定义的工程名,比如test1 build工程后,最终生成的bin文件名称将是test1.bin |
! | 当前目录下的扩展路径 !L 编译(Build)后,就是 .\obj\xx.axf文件 |
文件代号(File Code) | |
K | keil develop chaintool 工具链(fromelf.exe) |
L | Linker output file |
更多的符号代号可参考原文链接(Keil官方):Key Sequence for Tool Parameters
http://www.keil.com/support/man/docs/uv4/uv4_ut_keysequence.htm