keil4mdk编译生成.bin文件

来源:互联网 发布:java 日志 实现 编辑:程序博客网 时间:2024/06/05 09:12

我的实测生成.bin为"D:\english router soft\keil4\ARM\ARMCC\bin\fromelf.exe" --bin --output ../upload.bin ../obj/Target.axf

前面为keil的安装路径,后面为生成的.bin和.axf的文件名字。


FromELF: creating hex file...
User command #1: D:\Keil\ARM\BIN40\fromelf.exe  --bin  ..\Obj\Bootloader.axf   -o  ..\Obj\Bootloader.bin
--- Error: User Command terminated, Exit-Code = 1

原因及解决办法:

在OPTIONS FOR TARGET ->User分页有个RUN#1,功能是编译完成后执行该指令操作,应该是该指令有问题,一般情况下该错误是RUN#1设置的执行的程序位置不对;比如你的keil是装在c盘的,自然fromelf.exe文件也在C盘,你要使用fromelf将编译后生成的afx文件再转成bin文件(理论hex文件再转成bin文件也可以,但实测会报错,错误信息为:

C:\Keil\ARM\BIN40\fromelf.exe  --bin  ..\Obj\Bootloader.hex   -o  ..\Obj\Bootloader.bin
FromELF: creating hex file...

User command #1: C:\Keil\ARM\BIN40\fromelf.exe  --bin  ..\Obj\Bootloader.hex   -o  ..\Obj\Bootloader.bin

"..\Obj\Bootloader.hex": Error: Q0454E: In ELF file: File is not an ELF file (wrong magic number)
Finished: 0 information, 0 warning and 1 error messages.

"..\Obj\Bootloader.axf" - 0 Error(s), 0 Warning(s).

),那么你的执行程序的位置改为“C:\Keil\ARM\BIN40\fromelf.exe”,再如果你的keil装在D盘,那么执行程序的路径为D:\Keil\ARM\BIN40\fromelf.exe ;否则会提示该错误,如果不需要把生成的hex文件转bin文件,将Run User Programs AfterBuild/Rebuild的Run #1前的勾去掉或选择fromelf.exe就可以了.

0 0