用Keil编译C51生成.Bin文件的方法

场景

一直以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文件,建议再验证一次确保无异常

  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Keil C51是一种嵌入式系统开发工具,用于编写和调试51系列单片机的C语言程序。当使用Keil C51生成.bin文件时,有时会遇到exit-code1错误。这个错误通常意味着代码编译或链接时出现了一些问题。 exit-code1错误可能有多种原因,以下是一些常见的原因和解决方法: 1. 代码错误:在编译或链接过程中,出现了语法错误、符号未定义或其他代码问题。检查代码中的错误,并确保所有函数、变量和头文件引用都正确。 2. 寄存器冲突:如果使用了不同的寄存器或中断向量,可能会导致冲突。确保使用的寄存器和中断向量不会冲突,可以通过修改代码或调整配置来解决。 3. 内存溢出:如果程序使用了太多的内存空间,可能会导致链接错误。在程序中尽量减少内存使用,并使用Keil C51的内存检查工具来检查程序内存使用情况。 4. 缺少或错误的库文件:如果程序依赖于某些库文件,但无法找到或使用了错误的版本,可能会导致链接错误。检查库文件路径设置和使用的库文件版本,并确保正确引用。 5. 配置错误:在Keil C51的配置中可能存在错误,如选择了错误的芯片型号或编译选项。检查配置设置,确保与目标芯片和项目要求相匹配。 如果以上方法无法解决exit-code1错误,建议搜索相关错误信息或向Keil C51论坛或技术支持寻求帮助。他们可以提供更具体的解决方案或诊断您的问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值