Keil里生成bin文件的方法有两种,记录如下,以免忘记~
首先,在Keil主页面,点击如下按钮,打开Options for Target ‘target 1’对话框,并选择User标签页。
其次,通过在 User标签页 设置 “After Build/Rebuild”项目,可以生成bin文件。
具体设置方法有两种:
具体说明如下:
1 方法一
在Run #1中输入如下指令,并勾选 Run #1,点击OK后,重新编译后,在OBJ路径下可以看到生成的bin文件(test.bin):
“D:\Keil_v5\ARM\ARMCC\bin\fromelf.exe”:指定fromelf.exe的路径,这个根据自己的Keil环境调整,在Keil安装目录下的ARMCC下。
“--bin -o ..\OBJ\test.bin”:指定生成的bin文件存放的路径,以及文件的名称,这里指定的文件名称为test.bin。
“..\OBJ\Target1.axf”:bin文件是根据axf文件生成的,这里生成axf文件在OBJ下的,故整理指定,一般默认路径是USER,故这里如此指定。
指令具体如下:
注意:命令行中不能有 空格 !!!
D:\Keil_v5\ARM\ARMCC\bin\fromelf.exe --bin -o ..\OBJ\test.bin ..\OBJ\Target1.axf
2 方法二
在Run #2中直接fromelf指令指定生成bin文件(指令如下),并勾选 Run #2,点击OK后,重新编译后,在OBJ路径下可以看到生成的bin文件(Target 1.bin),“Target 1”是这里的工程名称。
fromelf --bin -o "$L@L.bin" "#L
这种方法生成的bin文件名称与工程名称一致。
3 常见错误
1)错误一
Program Size: Code=114624 RO-data=2016 RW-data=1608 ZI-data=27304
FromELF: creating hex file...
After Build - User command #1: D:\Keil_v5\ARM\ARMCC\binfromelf --bin -o ..\OBJ\test.bin ..\OBJ\Target 1.axf
*** Error: CreateProcess failed, Command: 'D:\Keil_v5\ARM\ARMCC\binfromelf --bin -o ..\OBJ\test.bin ..\OBJ\Target 1.axf'
"..\OBJ\Target 1.axf" - 1 Error(s), 9 Warning(s).
Target not created.
bin文件创建失败,要看看指令是否正确,例如:查看fromelf.exe路径是否是本地路径,输入输出文件是否正确,例如:上面的错误是由于bin与fromelf.exe之间的斜杠拉了导致。
2)错误二
Program Size: Code=114624 RO-data=2016 RW-data=1608 ZI-data=27304
FromELF: creating hex file...
After Build - User command #1: D:\Keil_v5\ARM\ARMCC\bin\fromelf.exe --bin -o ..\OBJ\test.bin ..\OBJ\Target 1.axf
Error: Q0466E: An output file can only be specified if there is a single input file
Finished: 0 information, 0 warning and 1 error messages.
"..\OBJ\Target 1.axf" - 0 Error(s), 9 Warning(s).
Build Time Elapsed: 00:01:12
这个错误的原因是没有指定输入文件 OR 没有找到输入的axf文件文件。
本例中指令中指定了axf文件,查看路径下也是有输入文件的,但文件名称axf的文件名称为“Target 1.axf”,文件名称中有空格,去掉后再Build一下即可。
如果只改axf名称,不需要重新编译,重新编译生成的axf文件还是有空格的哦,所以只需要Build一下就可以了,除非将工程名称中的空格去掉。
~~转载请注明出处哦~~