在烧写stm32程序的时候,有时候需要用到串口烧写。那么就需要一个可烧写的BIN文件了。用keil可以直接生成.bin文件,不过Keil-MDK的默认配置是没有这个功能的。Keil-MDK自带了一个小工具,可以通过执行指令来将AXF文件转换为BIN文件。
这就需要调用一个外部程序fromelf.exe来将AXF文件转换为BIN格式文件。
fromelf.exe文件的位置在安装目录Keil_v5\ARM\ARMCC\bin或者Keil_v5\ARM\ARMCC_505u2\bin目录下。
指令格式
根据生成的bin文件所在目录不同可分为三种:
1、在hex文件的当前目录下生成bin文件
2、在当前工程的xxx.uvprojx文件目录下生成bin文件
3、在当前工程的指定目录下生成bin文件
方式一
添加指令:fromelf.exe --bin -o “$L@L.bin” "#L"
执行编译命令就会在OBJ这个文件夹下生成bin文件
方式二
添加指令:fromelf.exe --bin --output=@L.bin !L
bin文件生成在xxx.uvprojx的当前目录下,在xxx.uvprojx当前目录下你可看到一个test.bin(名字是根据你的hex文件名字一样)
方式三
添加指令:fromelf.exe --bin --output=Bin@L.bin !L
生成的文件也是在xxx.uvprojx的当前目录下,在xxx.uvprojx当前目录下,可看到一个新生成的Bin文件夹,里面是test.bin。
其他开发环境如何将AXF文件转换为BIN文件?
其他开发环境生成的AXF文件转换为BIN文件,可以直接调用这个小工具来实现。
命令格式为:
[fromelf.exe文件路径] --bin -o [BIN路径} [AXF文件路径}
如:
E:/Keil_v5/ARM/ARMCC/bin/fromelf.exe --bin -o E:/Keil_Project/LED.bin E:/Keil_Project/LED.axf
注意事项:
- Keil-MDK 有这个小工具,Keil-C51没有这个工具
- fromelf.exe不能拿出来单独运行,它还依赖于Keil安装目录下的其他文件