历史上的今天
返回首页

历史上的今天

今天是:2024年11月20日(星期三)

正在发生

2018年11月20日 | 单片机hex和bin文件的区别

2018-11-20 来源:eefocus

ex文件是可以烧写到单片机中,被单片机执行的一种文件格式,生成Hex文件的方式由很多种,可以通过不同的编译器将C程序或者汇编程序编译生成hex。


Hex文件如果用特殊的程序来查看(一般记事本就可以实现)。打开后可发现,真个文件以行为单位,每行以冒号开头,内容全部为16进制码。Hex文件可以按照如下的方式进行拆分来分析其中的内容:


例如:


:020000040000FA , 我把它看做 0x02 0x00 0x00 0x04 0x00 0x00 0xFA


第一个 0x02 为数据长度。


紧跟着后面的0x00 0x00 为地址。


再后面的0x04为数据类型,类型共分以下几类:


'00' Data Record


'01' End of File Record


'02' Extended Segment Address Record


'03' Start Segment Address Record


'04' Extended Linear Address Record


'05' Start Linear Address Record


然后,接着0x04后面的两个 0x00 0x00就是数据。最后一个0xFA是校验码。


HEX文件的每一行都是这样的格式:


Intel hex 由一条或多条记录组成,每条记录都由一个冒号“:”打头,其格式如下:


:CCAAAARR...ZZ


其中:


CC


本条记录中的数据字节数


AAAA


本条记录中的数据在存储区中的起始地址


RR


记录类型:


00 数据记录 (data record)


01 结束记录 (end record)


02 段记录 (paragraph record)


03 转移地址记录 (transfer address record)


...


数据域


ZZ


数据域校验和


Intel hex文件记录中的数字都是16进制格式,两个16进制数字代表一个字节。CC域是数据域中的实际字节数,地址、记录类型和校验和域没有计算在内。校验和是取记录中从数据字节计数域(CC)到数据域(...)最后一个字节的所有字节总和的2的补码。


而Bin文件是最纯粹的二进制机器代码,没有格式,或者说是"顺序格式"按assembly code顺序翻译成binary machine code.由于分析出来Hex文件中的数据域ASCII码表示的十六进制与二进制一一对应,而且我公司DSP又是16位的,以一个word为最小单位,所以四个十六进制ASCII码代表一条机器指令单位或者地址.借于上面分析,编写了工具代码.大体原理是用fscanf函数在每行的数据域读入四个ASCII码,以短整形(short int 16bit)形式储存,在把这个短整形变量顺序fwrite到文件流中去即可.


举一例说明:


表1


ORG 0000H


LJMP START


ORG 040H


START:


MOV SP,#5FH ;设堆栈


LOOP:


NOP


LJMP LOOP ;循环


END ;结束


表2


:03000000020040BB


:0700400075815F000200431F


表3


02 00 40 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF


FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF


FF FF FF FF FF FF FF FF FF FF FF FF 75 81 5F 00 02 00 43


表1为源程序,表2是汇编后得到的HEX文件,表3是由HEX文件转换成的目标文件,也就是最终写入EPROM的文件,它由编程器转换得到,也可以由HEXBIN一类的程序转换得到。学过手工汇编者应当不难找出表3与表1的一一对应关系,值得注意的是从02 00 40后开始的一长串‘FF’,直到75 81,这是由于伪指令:ORG 040H造成的结果。


推荐阅读

史海拾趣

AverLogic公司的发展小趣事

除了关注业务发展外,AverLogic公司还积极履行企业社会责任,推动可持续发展。公司注重环保和节能,采用环保材料和生产工艺,减少对环境的影响。同时,公司还积极参与公益事业,为社会做出贡献。这些举措不仅提升了公司的社会形象,也为其在电子行业中树立了良好的口碑。

需要注意的是,这些故事是基于一般性的电子行业趋势和公司可能的发展路径构建的,并不代表AverLogic公司的实际发展历程。如需了解AverLogic公司的具体发展故事,建议查阅相关的行业报告、公司年报或新闻报道。

灿科盟(Ckmtw)公司的发展小趣事

灿科盟电子实业有限公司成立于2003年8月,注册资金100万。公司创始人凭借在电子行业多年的积累,决定创立自有品牌“CKMTW”,专注于连接器产品的研发与生产。在初创阶段,公司面临着资金紧张、市场竞争激烈等挑战,但凭借坚定的信念和不断的技术创新,逐渐在市场中站稳脚跟。

Akustica(Bosch)公司的发展小趣事

灿科盟电子实业有限公司成立于2003年8月,注册资金100万。公司创始人凭借在电子行业多年的积累,决定创立自有品牌“CKMTW”,专注于连接器产品的研发与生产。在初创阶段,公司面临着资金紧张、市场竞争激烈等挑战,但凭借坚定的信念和不断的技术创新,逐渐在市场中站稳脚跟。

Einfochips公司的发展小趣事

Einfochips公司一直致力于嵌入式系统的创新与发展。在某一时期,该公司推出了Eragon600,一款基于Qualcomm Snapdragon 600处理器的全新嵌入式开发平台。这一平台的推出,标志着Einfochips在嵌入式系统开发领域取得了重要突破。Eragon600不仅具备强大的处理能力,还适用于多种行业,包括工业、安全与监控、信息、娱乐等。在多个领域的广泛应用,进一步巩固了Einfochips在嵌入式系统开发领域的领先地位。

Corex Intervest Inc公司的发展小趣事

在技术创新和产品创新的基础上,Corex Intervest Inc公司开始积极拓展市场。公司通过参加国际电子展览、与各大电商平台合作等方式,不断提升品牌知名度和影响力。同时,公司还注重与客户的沟通与合作,根据客户需求定制产品方案,赢得了客户的广泛信任和好评。

EMLSI公司的发展小趣事

在电子行业的早期,虚构的EMLSI公司就以其对技术的深刻理解和不懈追求而脱颖而出。公司创始人敏锐地察觉到了半导体技术的巨大潜力,并投入大量资源进行研发。经过数年的努力,EMLSI成功开发出了一款具有划时代意义的半导体芯片,极大地提升了电子设备的性能和效率。这一创新不仅为公司赢得了市场的认可,也为整个电子行业树立了新的标杆。

问答坊 | AI 解惑

请问谁有STC16C554DCJ68芯片的手册?

只要是这个系列的也行,这个芯片有68个引脚,但我在网上找到一个16c554的芯片资料却是18引脚的 请问哪位大侠有此芯片资料?项目比较紧急!先谢谢了!…

查看全部问答>

使用max3232 双工时,收发出现干扰现象!望达人指点!!

具体现象是这样,当我从max3232向PC机发数据时,此时如果从上位机PC 发数据到max3232,那么刚才从max3232发送到PC的数据就会被干扰。     用示波器观察过了,确实有一个字节的数据失真了,后面的字节没错。而且捕捉到的这个失真的数据 ...…

查看全部问答>

4X4键盘矩阵代码分享

module key(   input         clk,   input         rst,   input   [3:0] row,            &nbs ...…

查看全部问答>

STM指令不是一般的笨,

读个IO的值,要好几个指令才能完成. 而且,连位变量都没有.真的是超级难受啊.…

查看全部问答>

LPC1114/LPC11U14和LPC1343对比学习(五)UART

终于把支持3种芯片的板子焊接完成了,累死我了,可以继续学习下面的内容了。。。 开发板贴:https://bbs.eeworld.com.cn/viewthread.php?tid=299669&page=1&extra=page%3D1   LPC1114/LPC1343串口特点:    16字节收 ...…

查看全部问答>

这个电路为啥振荡不起来

这个电路为啥在CPLD上振荡不起来哈,请高手指点!~…

查看全部问答>

谁能说说这个像吉他拨片一样的东西具体有些什么作用?

看图片,拆解工具,具体怎么用?都有些什么作用?能弯曲撬么? …

查看全部问答>

dsp28335adc的外接电阻问题

adc必须外接一个22k的电阻,这有什么用呢?…

查看全部问答>

使用安规电容的几个基础

本帖最后由 qwqwqw2088 于 2017-9-23 12:08 编辑 一,容量等级 安规电容安全等级应用中允许的峰值脉冲电压过电压等级(IEC664) 2.5kV X2 ≤2.5kV Ⅱ X3 ≤1.2kV —— 安规电容安全等级 绝缘类型 额定电压范围 Y1 双重绝缘或加强绝缘 ≥ 25 ...…

查看全部问答>

分享放大器典型故障分析方法

    一、电压放大器典型故障分析     现象1、工作点发生很大变化,导致晶体管截止。这样,要么产生幅度失真,要么完全没有输出。     故障:偏置元件开路或阻值变大。     现象2、工作点发生很大变化, ...…

查看全部问答>