Intel HEX file结构

https://en.wikipedia.org/wiki/Intel_HEX

 

1, Intel Hex每行的组成

    开始标志+Byte数+地址+数据类型+数据+Checksum

2, 开始标志

    冒号:,ASCII码 0x3A

3, Byte数量

    1 Byte,实际有效数据的个数,即数据段的字节数。从1开始计数。

4, 地址

    2 Bytes,指示接下来的数据段数据存储的偏移地址。

    为什么是偏移地址呢?因为该地址段长度只有2 Bytes,假如存储区大小超过64KB,如果采用绝对地址,将有部分空间无法访问。

5, 数据类型

     image

    简单解释:

    (1) 00 :16位寻址空间的数据数据;

    (2) 01:文件结束。此时数据长度应标记为00。

    (3) 02:扩展段地址。2 Bytes。

           为了访问 1MB 的空间,需要的地址长度为 220,而“开始地址”段只有2 Bytes,能访问的空间只有 (1~216)。为此,只需增加一个地址定义,协定该地址里面的值应该先乘以16再使用,如此,该地址能访问的空间即为:216 ~ (216 x 24 = 220)。

           当为此数据类型时,地址段的值应被忽略(通常标为0x00)。

    (4) 03:RSVP

    (5) 04:扩展线性地址。数据长度 2 Bytes。

          a) 为访问 4GB 地址而定义。4G = 232。该段表示高16位。

          b) 低16位由接下来的00数据类型定义。假如接下来没有00类型数据,默认高16位地址为0x0000。

          c) 该高位地址保持到下一个04类型数据为止。

    ( 6) 05:RSVP

6, 数据

7, checksum

     除开开始标志和Checksum本身的所有数据异或结果的补码。

posted on 2016-11-19 20:48  freshair_cn  阅读(1247)  评论(0编辑  收藏  举报

导航