历史上的今天
今天是: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造成的结果。
上一篇:单片机中的一些常见电路
下一篇:单片机C语言几种内存泄露总结
史海拾趣
|
只要是这个系列的也行,这个芯片有68个引脚,但我在网上找到一个16c554的芯片资料却是18引脚的 请问哪位大侠有此芯片资料?项目比较紧急!先谢谢了!… 查看全部问答> |
|
使用max3232 双工时,收发出现干扰现象!望达人指点!! 具体现象是这样,当我从max3232向PC机发数据时,此时如果从上位机PC 发数据到max3232,那么刚才从max3232发送到PC的数据就会被干扰。 用示波器观察过了,确实有一个字节的数据失真了,后面的字节没错。而且捕捉到的这个失真的数据 ...… 查看全部问答> |
|
LPC1114/LPC11U14和LPC1343对比学习(五)UART 终于把支持3种芯片的板子焊接完成了,累死我了,可以继续学习下面的内容了。。。 开发板贴:https://bbs.eeworld.com.cn/viewthread.php?tid=299669&page=1&extra=page%3D1 LPC1114/LPC1343串口特点: 16字节收 ...… 查看全部问答> |
|
本帖最后由 qwqwqw2088 于 2017-9-23 12:08 编辑 一,容量等级 安规电容安全等级应用中允许的峰值脉冲电压过电压等级(IEC664) 2.5kV X2 ≤2.5kV Ⅱ X3 ≤1.2kV —— 安规电容安全等级 绝缘类型 额定电压范围 Y1 双重绝缘或加强绝缘 ≥ 25 ...… 查看全部问答> |
|
一、电压放大器典型故障分析 现象1、工作点发生很大变化,导致晶体管截止。这样,要么产生幅度失真,要么完全没有输出。 故障:偏置元件开路或阻值变大。 现象2、工作点发生很大变化, ...… 查看全部问答> |




