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的相对路径)

以上信息如图所示

bin文件生成 python bin文件怎么编译_单片机

bin文件生成 python bin文件怎么编译_User_02


注:对于批处理有一定了解的情况下,可自行修改该方案,如无基础,可直接使用

总结

C51版生成bin文件需要借助第三方的转换软件,而srec_cat.exe下载不方便所以实际中未使用,hex2bin.exe在网上资源丰富,易于操作,不过当实际使用时,建议使用hex开发,而交付用的bin文件,建议再验证一次确保无异常