keil生成bin文件
- 场景
- 尝试
- 对比差异
- 解决方案
- 1、使用srec_cat.exe
- 2、使用hex2bin.exe
- 总结
场景
一直以stm32进行mcu的开发工作,当采用rjm8l进行开发时,发现生成不了bin文件,这对于批量生成有一定的影响
尝试
网上对于arm的解决方案很多,其中可以常用的方案为:
Keil -->Option for target --> User
----After Build/Rebuild,勾选Run #1,后面输入
fromelf.exe --bin -o "$L@L.bin" "#L" (直接复制即可)
操作后直接编译即可,对于arm版本上没什么问题,但是对于C51版本无用处
对比差异
通过对生成的文件对比发现,ARM版本的文件比C51版本多了.alf文件,而该文件是ARM版本时的专属,C51版本本身就没有,所以采用“fromelf.exe --bin -o “$L@L.bin” “#L” ”方案实际使无效的
解决方案
C51版本目前只有hex文件可用,那么解决方式就是将hex转化为bin文件形式
1、使用srec_cat.exe
a、Keil工程需生成.hex文件
b、将srec_cat.exe放在工程路径中任意文件夹下
c、新建一个文本文档,之后填写如下内容,保存后更名为 1.bat (后缀必须为.bat)
CD obj //进入obj文件夹
srec_cat.exe 1.hex -Intel -o 1.bin -Binary //使用srec_car.exe 将1.hex转化为.bin文件
echo.
注:注释仅作为释义,不要写入1.bat中!!!
d、Keil -->Option for target --> User 中,下方的After Build/Rebuild,勾选Run #1,后面输入 .\obj\1.bat (即1.bat的相对路径)
2、使用hex2bin.exe
a、Keil工程需生成.hex文件
b、将hex2bin.exe放在工程路径project文件夹中
c、在project文件夹新建一个文本文档,之后填写如下内容,保存后更名为 1.bat (后缀必须为.bat)
copy ..\obj\1.hex 1.hex //把生成的1.hex复制进来
hex2bin -s 0 -p 0 1.hex //使用工具转换
del *.hex //删除.hex文件
注:注释仅作为释义,不要写入1.bat中!!!
d、Keil -->Option for target --> User 中,下方的After Build/Rebuild,勾选Run #1,后面输入 1.bat (即1.bat的相对路径)
以上信息如图所示
注:对于批处理有一定了解的情况下,可自行修改该方案,如无基础,可直接使用
总结
C51版生成bin文件需要借助第三方的转换软件,而srec_cat.exe下载不方便所以实际中未使用,hex2bin.exe在网上资源丰富,易于操作,不过当实际使用时,建议使用hex开发,而交付用的bin文件,建议再验证一次确保无异常