那么什么是Hex文件呢?Intel Hex文件是由一行行符合Intel Hex文件格式的文本所构成的ASCII文本文件。在Intel Hex文件中,每一行包含一个Hex记录。这些记录由对应机器语言码和常量数据的十六进制编码数字组成。Intel Hex文件通常用于传输将被存于ROM或者EPROM中的程序和数据,如图19.3-1。大多数EPROM编程器或模拟器使用Intel Hex文件。

19.3.1 Hex的结构

Intel Hex由任意数量的十六进制记录组成。每个记录包含5个域,它们按以下格式排列:

  :llaaaatt[dd...]cc

  每一组字母对应一个不同的域,每一个字母对应一个十六进制编码的数字。每一个域由至少两个十六进制编码数字组成,它们构成一个字节,就像以下描述的那样:

1)   “:”: 每个Intel Hex记录都由冒号开头。

2)   “ll”:数据长度域,它代表记录当中数据字节(dd...)的数量。

3)   “aaaa ”:地址域,它代表记录当中数据的起始地址。

4)   “tt” :代表Hex记录类型的域,它可能是以下数据当中的一个:

                00 – 数据记录

                01 – 文件结束记录

                02 – 扩展段地址记录

                04 – 扩展线性地址记录

5) “dd” :数据域,它代表一个字节的数据.一个记录可以有许多数据字节。记录当中数据字节的数量必须和数据长度域(ll)中指定的数字相符。

6) “cc” :校验和域,它表示这个记录的校验和。校验和的计算是通过将记录当中所有十六进制编码数字对的值相加,以256为模进行以下补足。

19.3.2 Hex的数据记录

Intel Hex文件由任意数量以回车换行符结束的数据记录组成,数据记录(从GPIO实验的GPIO.hex提取出来,可以用NotePad++打开Hex文件)如图19.3-2。

图19.3-2 GPIO.hex记录

   从图19.3-2可以观察到GPIO.hex第一行数据记录“020000040000FA”,

  其中

  02是这个记录当中数据字节的数量。

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

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

  00040000是数据。

FA 是这个记录的校验和。

检验值计算方法如下:

0x01+~(0x02+0x00+0x00+0x04+0x00+0x00+0x00)=0xFA

更方便的计算方式可以使用“单片机多功能调试助手”进行计算,在【数据校验】中填入“020000040000”,点击计算,在“Intex Hex 校验和”文本框得出计算结果,如图19.3-3。

图19.3-3 快捷计算Intel Hex校验和

……………………………………………………

书籍下载地址(复制到下载工具进行下载):

http://files.cnblogs.com/wenziqi/ARMCortex-M0原理与应用实践.part1.rar

http://files.cnblogs.com/wenziqi/ARMCortex-M0原理与应用实践.part2.rar

注:书籍内容会不定期进行更新!

Hex文件的更多相关文章

  1. quartus和modelsim中使用mif和hex文件

    .mif和.hex文件都是Quartus支持的数据文件格式,常被用作内存初始化文件.可是,M odelSim却不支持.mif文件,只支持.hex文件格式,这意味着如果你的设计采用了.mif文件 ,你的 ...

  2. 使用Keil uVision下载hex文件

    在uVision3/uVision4/uVision5中,可以创建一个项目用来下载HEX文件到flash里面. 具体步骤如下: 1.  在菜单中,选择 Project - New Project... ...

  3. 如何读懂 Intel HEX 文件

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

  4. IAR编译ZStack-CC2530为可下载运行的HEX文件的正确配置

    转自IAR编译ZStack-CC2530为可下载运行的HEX文件的正确配置 IAR编译ZStack-CC2530为可下载运行的HEX文件的正确配置:        1.正确配置输出文件格式:菜单选择P ...

  5. 单片机 认识HEX文件

    看过几篇常用指令的用法后,我们换换口味,介绍一下Intel 原厂所公布的HEX文件标准格式,相信经过本文的介绍,一定可以让您对8051的操作有更进一步的认识.以下是一个程序经编译器编译后所得到的HEX ...

  6. BIN和HEX文件的区别

    HEX文件和BIN文件是我们经常碰到的2种文件格式.下面简单介绍一下这2种文件格式的区别: 1.HEX文件是包括地址信息的,而BIN文件格式只包括了数据本身.在烧写或下载HEX文件的时候,一般都不需要 ...

  7. Arduino中hex文件的保存及应用(转)

    源:Arduino中hex文件的保存及应用 arduino在编译.链接.下载之后,hex文件自动删除了,造成软件仿真(如用proteus仿真)及其他单片机板应用的不便.以下是自己实践的小结,与大家分享 ...

  8. Keil提示premature end of file错误 无法生成HEX文件

    今天舍友在使用Keil UV4的时候遇到一个问题:Keil提示premature end of file,无法生成hex文件. 代码是没有错误的.那么问题就出在设置上面了. 百度了一圈,发现很少人解答 ...

  9. 将STM32 iap hex文件与app hex文件合并为一个hex文件

    日前公司产品需要增加远程升级功能,boot loader程序写好后交予生产部门使用时他们反馈每个产品程序需要刷写两次(一个boot loader 一个app程序),生产进度变慢浪费时间,于是乎研究如何 ...

随机推荐

  1. oracle 更改SQL提示

    在oracle里面修改SQL提示为数据库名称: SQL>set SQLPROMPT "TEST>"

  2. 获取Map API Key

    开发人员在基于Google Maps服务进行开发之前,需要申请一组验证过的Map API Key,这样才可以使用Google Maps服务.申请过程如下:1.在Eclipse中打开“Window”|“ ...

  3. mysql生成随机测试数据

    一个demo: CREATE TABLE dept_InnoDB(  deptno MEDIUMINT NOT NULL DEFAULT 0 ,  dname VARCHAR(20) NOT NULL ...

  4. tomcat主目录

    简单显示天气预报js 代码

  5. 上海游侠电动汽车团队招募。iOS,Android,产品经理以及 SEVER 端工程师 - V2EX

    上海游侠电动汽车团队招募.iOS,Android,产品经理以及 SEVER 端工程师 - V2EX 上海游侠电动汽车团队招募.iOS,Android,产品经理以及 SEVER 端工程师

  6. Spring的StringUtils工具类

    本文是转载文章,感觉比较好,如有侵权,请联系本人,我将及时删除. 原文网址:<Spring的StringUtils工具类> org.springframework.util.StringU ...

  7. [原创作品]一个实用的js倒计时器 postby:zhutty.cnblogs.com

    今天做了一个手机短信发送倒计时,额,就是每隔多长时间可以重新发送的功能.贡献出来给园有吐槽点评. //倒计时,time:时长(秒),scb:每秒回调,cb:计时完成回调 var timing = fu ...

  8. Cortex-mo指令集

    处理器使用的是ARMv6-M Thumb指令集,包括大量的32位的使用Thumb-2技术的指令.表7-22列出了Cortex-M0指令和它们的周期数.周期计数以零等待状态的系统为基准. 表7-22  ...

  9. 服务 Service 基本介绍

    Activity public class MainActivity extends ListActivity {     private boolean flag;//是否开启线程     publ ...

  10. Universal-Image-Loader 示例 工具

    Base public class MyApplication extends Application {     @Override     public void onCreate() {     ...