freshair_cnblog

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本身的所有数据异或结果的补码。

分类:

技术点:

相关文章:

  • 2021-12-14
  • 2021-12-13
  • 2022-02-03
  • 2021-12-17
  • 2021-05-09
  • 2021-12-26
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-10-03
  • 2021-11-28
  • 2021-06-23
  • 2022-12-23
  • 2021-07-27
  • 2022-01-10
相关资源
相似解决方案