Intel HEX文件格式说明

Intel HEX文件是一种ASCII文本格式,用于存储十六进制机器码或数据常量,常应用于ROM或EPROM编程。每条记录由冒号开始,包含长度、地址、类型及数据等字段,并以回车换行符结束。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 Intel HEX文件是记录文本行的ASCII文本文件,在Intel HEX文件中,每一行是一个HEX记录,由十六进制数组成的机器码或者数据常量。

Intel HEX文件经常被用于将程序或数据传输存储到ROM、EPROM,大多数编程器和模拟器使用Intel HEX文件。

每一行由冒号开始,由回车换行符结束。

格式为:
: LL AAAA TT DD...DD CC

其中共六部分

:(冒号) 是每一条Intel HEX记录的开始

LL 是这条记录的长度域,他表示数据(dd)的字节数目.

AAAA 是地址域,他表示数据的起始地址

TT这个域表示这条HEX记录的类型,他有可能是下面这几种类型

  00 ----数据记录,表示该记录所包含的数据为实际要烧写到存储器中的数据。
  01 ----文件结束记录,表示该记录为本文件的最后一个记录。
  02 ----扩展段地址记录,表示该记录所包含的数据为段地址。
  04 ----扩展线性地址记录,表示该记录所包含的数据为线性地址。 

DD是数据域,表示一个字节的数据,一个记录可能有多个数据字节,字节数目可以 查看LL域的说明

CC 是效验和域,它表示这个记录的校验和。校验和的计算是通过将记录当中所有十六进制编码数字对的值相加,以256为模进行以下补足。
校验和需要保证整行中所有十六进制字节相加的和为0。
 
 
 
例如:

Intel HEX文件由任意数量以回车换行符结束的数据记录组成。数据记录外观如下:

:1000000020C111C010C00FC00EC00DC03EC00BC03B

其中:

      10 是这个记录当中数据字节的数量。(16个字节)

  0000是数据将被下载到存储器当中的地址。

       00 是记录类型(数据记录)

       20C1...0BC0数据。

       3B 是这个记录的校验和。(0x10 + 0x00 + ... + 0x20 + 0xC1 + 0x11 + ... + 0x0B + 0xC0 + 0x3B = 0)

=================================================

补充说明:

扩展段地址记录 当一个扩展段地址记录被读到后,扩展段地址将被保存并应用到后面从Intel HEX文件中读出的记录,这个扩展段地址一直有效,直到读到下一个扩展段地址记录. 绝对地址与扩展段地址的关系如下: 绝对地址=数据记录中的地址[AAAA]+移位后的扩展段地址。扩展段地址要左移16位。


扩展线性地址和扩展段地址的区别:

在计算绝对地址时,扩展线性地址要左移16位,而扩展段地址则左移4位。



v0.8.0: 去掉“直接Hex文件编辑”功能的128K字节限制(其他功能仍然有128KB限制) v0.7.0: 一些小的调整 V0.6.1: 调整另存对话框,去掉无效选项 V0.6.0: 加入文件拖放功能。 V0.5.5:修正建立新的配置文件时,保存失败的Bug。 V0.5.4:修正数制计算器中输入A-F时的bug,增加源数据存储类型选择。 0.5.3:修改图标,部分界面。 0.5.2: About 界面修改,添加更新网址。 0.5.1:修正块另存时新建文件保存失败的Bug。 0.5:新增文件内、文件间块移动、复制、交换、另存等功能 0.4:新增转换为二进制后比较功能 本人继MCUTool以后的另外一个单片机开发实用工具软件,用于单片机调试过程中简单的参量修改,省略修改源代码、再编译的过程,直接修改目标文件。尤其是对eeprom数据的修改、调整更为方便实用。 本软件编写的目的是用来编辑存放于单片机 Flash 或 EEPROM 中的数据,支持 Intel Hex 格式以及 Motorola S 格式的数据文件,也可以编辑二进制的内存映射文件。数据的编辑可以通过常量定义的方式,也可以通过内存映射的方式进行。 同时可以在两种16进制格式文件之间相互转换。格式转换以行数据为单位,以确保转换前后数据不会改变。 另外提供十进制、十六进制转换器,转换结果可以作为普通显示或作为内存映射,作内存映射时可以选择多字节数据的存储方式。 二进制比较功能,通过不同工具生成的Hex文件可能因为格式而无法进行文本方式比较,本工具可以首先转换为二进制数据再进行比较,免去自行转换的麻烦。 单文件内/双文件间的块操作,包括复制、移动、交换、另存等等,方便实验数据提取、复制。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值