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, 数据类型

简单解释:

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

Intel HEX file结构的更多相关文章

  1. 如何读懂 Intel HEX 文件

    什么是 Intel HEX 文件格式   转自:http://www.cnblogs.com/imapla/archive/2013/03/16/2926133.htmlIntel HEX 文件是遵循 ...

  2. intel hex 格式的几个链接

    intel hex GENERAL: INTEL HEX FILE FORMAT Intel Hex文件格式说明 - starspace - 博客园 C# Hex文件转bin文件 - bule - 博 ...

  3. 【转】Intel HEX介绍

    记录格式 Intel HEX由任意数量的十六进制记录组成.每个记录包含5个域,它们按以下格式排列: :llaaaatt[dd...]cc 每一组字母对应一个不同的域,每一个字母对应一个十六进制编码的数 ...

  4. Linux_Struct file()结构体

    struct file结构体定义在/linux/include/linux/fs.h(Linux 2.6.11内核)中,其原型是:struct file {        /*         * f ...

  5. Intel hex 文件格式解密

    Intel hex 文件常用来保存单片机或其他处理器的目标程序代码.它保存物理程序存储区中的目标代码映象.一般的编程器都支持这种格式. Intel hex 文件全部由可打印的ASCII字符组成(可以用 ...

  6. Linux--struct file结构体

    struct file(file结构体): struct file结构体定义在include/linux/fs.h中定义.文件结构体代表一个打开的文件,系统中的每个打开的文件在内核空间都有一个关联的  ...

  7. 2018.5.2 file结构体

    f_flags,File Status Flag f_pos,表示当前读写位置 f_count,表示引用计数(Reference Count): dup.fork等系统调用会导致多个文件描述符指向同一 ...

  8. Pwn with File结构体(一)

    前言 本文由 本人 首发于 先知安全技术社区: https://xianzhi.aliyun.com/forum/user/5274 利用 FILE 结构体进行攻击,在现在的 ctf 比赛中也经常出现 ...

  9. Pwn with File结构体(四)

    前言 前面几篇文章说道,glibc 2.24 对 vtable 做了检测,导致我们不能通过伪造 vtable 来执行代码.今天逛 twitter 时看到了一篇通过绕过 对vtable 的检测 来执行代 ...

随机推荐

  1. 文本框的placeholder属性

    在文本框中添加placeholder属性,用于文本框处于未输入状态时,模糊显示输入提示,当用户进行输入时,不需要删除该提示文字. 如: <input type="text" ...

  2. FastDFS为什么要结合Nginx

    FastDFS为什么要结合Nginx? 我们在使用FastDFS部署一个分布式文件系统的时候,通过FastDFS的客户端API来进行文件的上传.下载.删除等操作.同时通过FastDFS的HTTP服务器 ...

  3. MSBuild编译扩展

    新增一个C#工程,用记事本打开工程文件(.csproj结尾),滚动条拉到最后,大家可以看到一段如下的代码,其中<Target Name="BeforeBuild">和& ...

  4. Verilog-FPGA硬件电路设计之一——if语句优先级(always块中的阻塞赋值生成的组合逻辑电路是按照顺利执行的)

    出处:http://bbs.ednchina.com/BLOG_ARTICLE_3013262.HTM 综合软件:Quartus II 一.有优先级的if语句 if..else if.. else i ...

  5. JDBC入门try/catch型

    package com.itheima.domain; import java.sql.Connection; import java.sql.DriverManager; import java.s ...

  6. 本地缓存下载文件,download的二次封装

    来源:http://ask.dcloud.net.cn/article/524 源码下载链接 说明: (1)由于平时项目中大量用到了附件下载等功能,所以就花了一个时间,把plus的downlaod进行 ...

  7. 20160512--hibernate--缓存

    缓存 缓存的作用主要用来提高性能,可以简单的理解成一个Map:使用缓存涉及到三个操作:把数据放入缓存.从缓存中获取数据.删除缓存中的无效数据.   原理模拟分析:(不能运行,只是模拟)(缓存实现复杂, ...

  8. 常用经典SQL语句大全(提升)

    二.提升 1.说明:复制表(只复制结构,源表名:a 新表名:b) (Access可用) 法一:select * into b from a where 1<>1(仅用于SQlServer) ...

  9. 全面认识网络诊断命令功能与参数——netsh diagnostic命令

    netsh diagnostic是网络诊断命令,主要检测网络连接和服务器连接的状态.    注意:netsh不能在Window2000以下系统中使用.案例1:使用netsh diagnostic命令检 ...

  10. Oracle Varchar2长度 及 PHP 长度判断

    oracle数据库相信大家都比较熟悉,数据库中有一种非常常用的数据类型:字符串型.          对应该类型,在oracle中有三种比较常用的类型:varchar2(byte).varchar2( ...