bin文件合并工具下载地址:https://download.csdn.net/download/u012572552/10811074

在单片机的开发过程中,经常需要将两个单独的bin文件合并成一个文件,方便烧写和生产。

超好用的一个工具,可以实现两个二进制bin文件的合并,任一指定偏移量合并。使用它可以直接将编译好的两个bin文件按照程序员需要合并,而不需费力去重建工程重新编译。有兴趣的朋友可以试试。

使用方法

首先简单介绍一下STM32的IAP。IAP(In-application-programming),即在应用中编程。有了它,产品发布之后,仍然可 以方便的升级固件,而不需要拆机并用JTAG等方式更新程序。IAP系统的固件一般有两部分组成,IAP BootLoader Code和Application Code,如下图所示。

系统启动时,首先运行IAP BootLoader Code,并检测相应状态,判断是执行升级的流程还是直接运行本地的Application Code。 一般来说,BootLoader和Application是分别编译的,会生成两个二进制文件。在工厂生产时,如果分别烧写这两个文件,显然有些麻烦。这 时,我们就可以将两个BIN文件合并成一个,直接烧写。假设Application Code的偏移地址为0x1000,IAP固件在Flash中的分布如下图所示。

下面介绍第一种方法,使用二进制文件合并工具(UBIN.exe),这个小工具是以前在S3C2410上开发uCOS时做的,功能比较简单,满足一般的需求。

首先,添加第一个文件1.bin,其地址为0x0000,所以,偏移量设置为0x00000000,设置完偏移量后点击“添加”按钮。

然后添加第二个文件,偏移量根据需要设置为0x00001000,如下图所示。

设置目标文件为C:\dst.bin,然后点击“合并”按钮。

正常情况下,会成功生成目标文件,并有如下图所示的提示信息。

这种方法相对比较灵活,对合并文件的个数和偏移地址没有限制。缺点是不支持配置文件,不能保存所设的配置,所以,每次合并都得手动做很多重复工作。在调试阶段会比较浪费时间。

下面介绍一种通过命令行工具合并两个文件的方法。该方法需要用到fsutil.exe、cat.exe和hbin.exe。写一个批处理文件,分别调用这三个工具,最终将1.bin和2.bin合并成dest.bin。批处理文件的内容如下:

del dest.bin
fsutil  file createnew dest.bin 4096 
cat 2.bin >>dest.bin
hbin 1.bin dest.bin

批处理文件各行的简单说明,

del dest.bin,删除原来的目标文件

fsutil  file createnew dest.bin 4096,创建一个大小为4096字节的空白文件dest.bin,该值的大小由偏移地址0x1000决定

cat 2.bin >>dest.bin,将2.bin追加到空白文件dest.bin之后

hbin 1.bin dest.bin,将1.bin放到dest.bin的头上,填充dest.bin头上4KB的空白

dest.bin就是我们最终需要的合并完成的文件。将它与第一种方法合并的文件dst.bin对比一下,如下。

可以看到两种方法合并出的文件,完全一样。

第二种方法的好处在于,可以在集成开发环境中设置编译选项,在编译完成之后自动执行该批处理,这样,编译完成后即得到能够直接固化到Flash中的二进制文件,节省了一些时间。

bin文件合并工具(UBIN)使用方法相关推荐

  1. 制作字库(Bin文件合并 C2BIN)

    一.点阵文件生成 1.使用点阵字库生成器生成文字的点阵信息,采用 UNICODE 编码批量生成. 2.如果具有 C 文件的字库,例如 STM32 开发板的库函数 x:\en.stm32cubef4\S ...

  2. C# 学习笔记(12)hex文件转bin文件小工具

    C# 学习笔记(12)hex文件转bin文件小工具 hex文件格式 hex文件格式网上有很多 我这里参考HEX文件格式详解https://blog.csdn.net/weixin_39752827/a ...

  3. ESP32 bin文件生成及多个bin文件合并指南

    文章目录 1. 前言 2. 硬件及分区表 3. 编译 4. 烧录 4.1 使用 idf flash 命令烧录 4.2 使用 Flash Download Tools 工具烧录 4.3 Flash Do ...

  4. C#,生信软件实践(01)——DNA序列数据库FASTA文件合并工具的源代码

    1 生物信息学简介 生物信息学(BioInformatics)是研究生物信息的采集.处理.存储.传播,分析和解释等各方面的学科,也是随着生命科学和计算机科学的迅猛发展,生命科学和计算机科学相结合形成的 ...

  5. 我的服务端JS文件合并工具

    静态资源合并,老生常谈的话题了,目的就是减少http请求数,至于为什么要减少http请求大家应该都有所了解,这里就不多赘述,近期由于项目需要,自行开发了一个文件合并工具,由于源码在公司研发网络拿不出来 ...

  6. bin文件以及bin文件合并

    一.bin文件格式 bin文件是 纯机器指令,她没有类似hex/hrec中包含的地址标识.长度标识. 她是默认从地址0开始排列的代码指令. 二.bin文件合并 文件:bootloader.bin    ...

  7. hex文件、bin文件 合并删除编辑

    分享一个 hex文件和 bin文件 合并删除编辑 开源软件.可以在 keil.gcc 编译完成后进行批处理.适合hex bin 互转,合并 删除 拆分 等. 开源地址:https://github.c ...

  8. RequireJS对文件合并与压缩实现方法

    RequireJS 是一个JavaScript模块加载器.它非常适合在浏览器中使用, 它非常适合在浏览器中使用,但它也可以用在其他脚本环境, 就像 Rhino and Node. 使用RequireJ ...

  9. Linux系统二进制bin文件操作的10种方法

    二进制文件是我们几乎每天都需要打交道的文件类型,但很少人知道他们的工作原理.这里所讲的二进制文件,是指一些可执行文件,包括你天天要使用的 Linux 命令,也是二进制文件的一种. Linux 系统给我 ...

  10. python怎么把两个文件合并工具_python开发目录合并小工具 PathMerge

    前言 这个程序陆陆续续开发了几天,正好我在学Python,就一边做一边学,倒是学到不少东西. 不得不说python是快速开发的好工具. 程序做了一些改进,这两天又忙着毕设,现在才想起来发到博客上.想想 ...

最新文章

  1. 通过 Python 代码实现时间序列数据的统计学预测模型
  2. 虚拟机忘记密码解决方法
  3. c# WinForm开发 DataGridView控件的各种操作
  4. 新思科技助力IBM将AI计算性能提升1000倍
  5. 《Linux内核设计与实现》读书笔记(十三)- 虚拟文件系统
  6. python 读取wav 音频文件的两种方式
  7. 按任意的字段旋转的存储过程
  8. 事务(注解声明式事务管理)
  9. Elasticsearch7.x学习
  10. php表格 单元格,实例演示PhpSpreadsheet的单元格设置教程
  11. 激活win10专业版,桌面设置我的电脑,测试过可行
  12. 基于51单片机俄罗斯方块游戏电路设计
  13. 静态路由(也许是目前最全的)
  14. More Effective C++之 Item M6:自增(increment)、自减(decrement)操作符前缀形式与后缀形式的区别
  15. 三款好用的语音转文字软件,你知道几个?
  16. jsp:forward标签介绍
  17. 二代身份证号码最后一位校验位的计算方法
  18. 【PyTorch】torch.nn.Transformer解读与应用
  19. 微信小程序--小程序系统API
  20. 正则表达式匹配替换网址

热门文章

  1. Tensorrt笔记(七)Tensorrt使用问题整理
  2. CAS132172-61-3阳离子脂质体DOTAP科研用
  3. 初级面试常见sql练习
  4. 视频无缝续播的一些解决方案
  5. luogu P4234 最小差值生成树
  6. me909嵌入式linux,树莓派驱动ME909s-821
  7. 网站备案 服务器变更,网站变更服务器备案
  8. 制作外挂需要多高的编程技术?
  9. 读《乔布斯的魔力演讲》
  10. 钝    生_拔剑-浆糊的传说_新浪博客