深入理解Hex、Bin区别,转化、合并内部机理,及工具使用!

深入理解Hex、Bin区别,转化、合并内部机理,及工具使用。

前言

软件程序通常包含boot+app,将程序下载到板子中我们通常知道可以通过烧写hex的方式,也可以烧写bin的方式,也听过可以把两个hex合成一个,两个bin合成一个,做一次性的烧写,这样会更方便,但是我们很多人并不清楚为什么可以这么做,或者怎么做?本文主要帮助大家解除这个疑惑,授人与渔与鱼。

一、Hex文件与Bin

1.bin、hex文件

Bin文件是2进制文件,为实际烧写进cpu的程序,支持烧写Bin文件的工具必须得到需要将Bin文件烧进的首地址(可以通过工具配置地址界面或者根据芯片信息等方式获取到)
打开SYRTU_A_Boot.bin二进制文件,数据显示如下;
在这里插入图片描述
Hex文件在Bin的基础上加入的地址信息,有些烧写工具支持烧入Hex文件,本质上会根据Hex中的信息得到需要烧入的地址,并根据Hex文件得到bin文件,最终还是将bin文件烧写到根据Hex文件提取到的烧写地址当中;
打开SYRTU_A_Boot.hex文件,数据显示如下
在这里插入图片描述

1.Hex与bin的合并

bin文件合并
Bin文件合并,本质就是将2个Bin文件数据放在一起,中间空缺数据用FF进行填充,保证2个Bin文件数据地址是连续的
以SYRTU_A_Boot.bin和SYRTU_A_App.bin合并为例
在这里插入图片描述
在这里插入图片描述
hex文件合并
Hex文件合并,由于Hex文件是Bin(被分成很多小块)+地址信息,所有本质上Hex文件合并就是单纯将2个文件的内容复制到一起,注意此时手动合并的时候,需要将第一个文件的结束删除(Hex文件可看作如下结构=开始标志+Hex文件内容+结束标志),故2个Hex文件合并,可认为是Hex1StartFlag(第一行)+Hex1+Hex1End(最后一行)与Hex2Start+Hex2+Hex2End合并,故复制的时候需要将第一个Hex文件的最后一行删除;如下图所示
在这里插入图片描述

二、2 Jflash实现bin、hex文件转化、合并、烧写

Jflash工具可实现bin文件转化成hex文件,hex文件转化成bin文件操作,hex转成bin更简单,没有填写地址的步骤,故仅讲解bin转hex的步骤;
1、 打开jflash,选择对应芯片,创建工程,并连接设备(该部分不为本文主要描述内容,不知道如何创建工程可自行进行搜索);
2、 打开bin文件,填写bin文件需要烧入的首地址;
在这里插入图片描述
在这里插入图片描述
3、 点击另存为hex文件,如下图
在这里插入图片描述
Bin文件合并(hex文件同理,相比bin文件少了填写首地址的步骤,故仅介绍Bin文件合并过程)
1、 首先使用jflash ,File->open data flie打开第一个bin文件;
2、 File->Merge data flie选择第二个bin文件,并填写第二个bin的地址,即完成bin文件合并。

总结

本文主要讲述了嵌入式烧写代码机理,理解本文内容,烧写这块基本没有什么大的问题,个人编写了上述doc文档,如有需要可私聊作者。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值