作者:鱼鹰Osprey
ID :emOsprey
鱼鹰曾在《bin 和 axf 文件的生成》笔记中介绍了如何使用 keil 生成 bin 文件,也在 《功能强大的 HEX 开源转换工具,你值得拥有》中介绍了如何使用第三方工具生成 bin 文件,为什么还要写这篇笔记呢?第三方工具功能强大,但 KEIL 自带工具不需要额外安装软件,更加方便,但网上流传的 keil 生成 bin 文件的方法都有一个缺点,那就是同样的命令,如果 ROM 分了多个,那么将生成一个文件夹,里面包含了多份 ROM 的 bin 文件。比如,你的配置如下:
如果你使用下面的命令将生成一个文件夹,而不是单独的一个 out.bin 文件。(!L 代表当前工程目录的 axf 文件,会根据目标的设置而自动更新)
fromelf.exe --bin -o ./out.bin !L
生成的文件是两个单独的,原本的 out.bin 应该是一个文件得,但由于有两个 ROM ,所以生成了两个 bin 文件用于两个 ROM 的烧录,但事实上,我们只有一个 ROM (flash),只是我们人为把它分成了两个(比如 BootLoader 和 APP 部分)。如果我们想要一次性烧录应该怎么办呢?
一般遇到这种情况,有些道友会使用第三方工具将两个 bin 文件进行合并。但鱼鹰今天想和道友分享的可不是这个,不然怎么能说是最正确的姿势呢?这个方法是鱼鹰前两天偶然看到的,非常好用,所以就此分享给大家,让各位道友也能掌握该方法。
废话不多说,直接上命令:
fromelf.exe --bin --bincombined --bincombined_padding=1,0xff --output outfile.bin !L
是的,你没有看错,还是使用 fromelf.exe 程序,不同的是,加入了额外的参数,因此,你可以用它将 axf 文件直接生成一个 outfile.bin 文件(文件名可以任意),因为中间可能存在空白,所以需要参数设定空白填充的数据,这里是 0xff。
默认生成路径在工程文件所在文件夹下:
并且这个命令可以适用于一个 ROM 的情况,所以建议大家使用该命令生成 bin 文件。
你学废了吗?
如果对你有帮助,记得转发分享哦
微信公众号「鱼鹰谈单片机」
每周一更单片机知识