zoukankan      html  css  js  c++  java
  • 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本身的所有数据异或结果的补码。

  • 相关阅读:
    孤儿进程与僵尸进程
    python with as的用法
    工作目录与os.getcwd()
    内置模块
    迭代器,生成器
    表达式,语句
    字符流
    字节流
    File
    触发器的操作
  • 原文地址:https://www.cnblogs.com/freshair_cnblog/p/6081497.html
Copyright © 2011-2022 走看看