前面我們講述了bin、hex、axf 和 elf文件格式,其中 axf 也算是一種可執(zhí)行程序文件,只是相對 bin 和 hex 具有更多的調(diào)試信息。
Keil MDK 默認(rèn)不會生成 bin 文件,如果需要 bin 文件,可通過 fromelf 工具實現(xiàn) axf 轉(zhuǎn) bin 文件。
配置輸出 hexKeil MDK 默認(rèn)輸出選項只有只有 hex 文件。
Project ->Options for Target -> Output 勾選上“Create HEX File”(如下圖)
其實在 IAR 中,工程配置就有選擇 bin 還是 hex 的選項,Project -> Optinos -> Output Converter:
axf 轉(zhuǎn) bin 配置雖然 hex 轉(zhuǎn) bin 的方法有很多,但是可通過 Keil MDK 自帶的 fromelf 工具實現(xiàn) axf 轉(zhuǎn) bin 文件。
1. 確定 fromelf 工具所在位置(目錄)
Keil MDK V4 版本默認(rèn)位于:C:Keil/ARM/BIN40
Keil MDK V5 版本默認(rèn)位于:C:Keil_v5ARMARMCLANGbin
如果你安裝時修改了路徑,就需要使用對應(yīng)的路徑。
2. 配置 Keil 工程選項
Project -> Options for Target -> User -> After Build/Rebuild 添加指令:
C:Keil_v5ARMARMCLANGbinfromelf.exe --bin --output ./Objects/Demo.bin ./Objects/Demo.axf
其中:
C:Keil_v5:是你對應(yīng)的安裝路徑(工具所在路徑);
Objects:為輸入輸出位置;
3. 格式說明
基本格式為:
fromelf [options] output_file input_file
其中:
[options]:選項字
output_file:輸出文件
input_file:輸入文件
結(jié)合上面例子你會發(fā)現(xiàn):
選項字為:--bin --output
輸出文件:./Objects/Demo.bin
輸入文件:./Objects/Demo.axf
可能你會看見不同的實現(xiàn)方式,比如:
C:Keil_v5ARMARMCLANGbinfromelf.exe --bin -o ./Objects/Demo.bin ./Objects/Demo.axf
C:Keil_v5ARMARMCLANGbinfromelf.exe --bin --output=./Objects/Demo.bin ./Objects/Demo.axf
-o:是以前老版本工具的縮寫命令。
這里可參看:
https://www.keil.com/support/man/docs/armutil/armutil_pge1362128885938.htm