找回密码
 注册
关于网站域名变更的通知

单片机hex和bin文件的区别

2024-9-14 14:10| 查看: 85| 评论: 0

摘要: hex文件是可以烧写到单片机中,被单片机执行的一种文件格式,生成Hex文件的方式由很多种,可以通过不同的编译器将C程序或者汇编程序编译生成hex。 Hex文件如果用特殊的程序来查看(一般记事本就可以实现)。打 ...
t0102fb082bbba33019.jpg

hex文件是可以烧写到单片机中,被单片机执行的一种文件格式,生成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造成的结果。


本站资讯文章系编辑转载,转载目的在于传递更多信息,并不代表本站赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与本站联系,我们将在第一时间删除内容!
[声明]本站文章版权归原作者所有 内容为作者个人观点 本站只提供参考并不构成任何投资及应用建议。
本站拥有对此声明的最终解释权。
收藏 邀请
关闭

推荐内容上一条 /1 下一条

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-6-29 11:30 , Processed in 0.078125 second(s), 28 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

返回顶部