Intel HEX?文件是由一行行符合Intel HEX?文件格式的文本所?构?成的ASCII?文本文件。在Intel HEX?文件中,每一行包含一?个?HEX?记录?。?这?些?记录?由?对应?机器?语?言?码?和/?或常量?数?据的十六?进?制?编码数?字?组?成。Intel HEX?文件通常用于?传输将?被存于ROM?或者EPROM?中的程序和?数?据。大多?数?EPROM?编?程器或模?拟器使用Intel HEX?文件。
Hex文件是可以烧写到单片机中,被单片机执行的一种文件格式,生成Hex文件的方式由很多种,可以通过不同的编译器将C程序或者汇编程序编译生成hex。
一般Hex文件通过记事本就可以打开。可以发现一般Hex文件的记录格式如下:
Intel HEX?由任意数量的十六?进?制?记录组?成。每?个记录?包含5?个?域,?它们按以下格式排列:
每一组字母?对应?一?个?不同的域,每一?个?字母?对应?一?个?十六?进?制?编码?的?数?字。每一?个?域由至少?两个?十六?进制?编码数?字?组?成,?它们构?成一?个?字?节?,就像以下描述的那?样:
:(冒号)每个Intel HEX?记录?都由冒?号开头?;
LL?是?数?据?长?度域,?它?代表?记录当?中?数?据字?节?(dd)?的?数量?;
aaaa?是地址域,?它代表?记录当?中?数据的起始地址;
TT是代表HEX?记录类?型的域?,?它?可能是以下?数?据?当?中的一?个:
??? 00 –?数?据?记录(Data Record)
??? 01 – 文件结?束?记录(End of FileRecord)
??? 02 – 扩展段地址?记录(ExtendedSegment Address Record)
03 – 开始段地址?记录(Start Segment Address Record)
??? 04 – 扩展?线?性地址?记录(Extended Linear Address Record)
05 – 开始线性地址?记录(Extended Segment Address Record)
dd?是数?据域?,?它?代表一?个?字?节?的?数?据.?一?个记录?可以有?许?多?数?据字?节?.?记录当?中?数?据字?节?的?数?量必?须?和数?据?长?度域(ll)?中指定的?数字相符.
cc?是校验?和域?,?它?表示?这个记录?的校?验?和.?校?验?和的?计?算是通?过将记录当?中所有十六?进?制?编码数?字?对?的?值相加,?以256?为?模?进?行以下?补?足.
表示为:“:[1字节长度][2字节地址][1字节记录类型][n字节数据段][1字节校验和]?”