单片机
返回首页

ARM7 LPC2378 远程升级----HEX文件

2017-11-29 来源:eefocus

      嵌入式程序编译后可以生成.HEX格式的可执行文件,远程升级的原始升级程序的格式也是.HEX格式文件,因此首

先应深入理解HEX文件格式。

     HEX格式文件是一个记录文本行的ASCII文本文件,在Intel HEX文件中,每一行是一个HEX记录,由十六进制数组

成的机器码或者数据常量。一个数据记录以一个冒号(0x3A)开始。

   一个Intel HEX文件可以包含任意多的十六进制记录,每条记录有五个域,下面是一个记录的格式:

: LL AAAA TT [DD...] CC 

    每一组字母是独立的一域,每一个字母是一个十六进制数字,每一域至少由两个十六进制数字组成,下面是字节的描

述. 

      : (冒号) 是每一条Intel HEX记录的开始 

      LL 是这条记录的长度域,他表示数据(dd)的字节数目. 注意:LL表示数据的长度而不是一行五个域的总长度。

     AAAA 是地址域,他表示数据的起始地址 

     TT 这个域表示这条HEX记录的类型,他有可能是下面这几种类型 :

           00 ----数据记录 

           01 ----文件结束记录 

           02 ----扩展段地址记录 

           04 ----扩展线性地址记录 

           05----用于调试器, 芯片烧录可忽略

           06----用户信息记录(并非标准HEX格式,升级时与上位机自行商定)

           07----用户信息记录(并非HEX标准格式,升级时与上位机自行商定)

     DD 是数据域,表示一个字节的数据,一个记录可能有多个数据字节,字节数目可以查看LL域的说明。 

     CC 是校验和域,表示记录的效验和,计算方法是将本条记录冒号开始的所有字母(不包括冒号即“3A”但包括校验字节)相加之后等于0x00。 

      一个Intel HEX文件必须有一个文件结束记录,这个记录的类型域必须是01。

下面举例说明,以加强对HEX文件的理解

1.1. 数据记录举例

(注:为了便于查看,将各域用【】隔开,实际HEX文件数据中并无这个括号,下同)

【:】【10】【0000】【00】【18F09FE518F09FE518F09FE518F09FE5】【C0】

这其中,【:】为一个记录的开始;

               【10】为长度域,表示数据长度,为16进制,0x10表示数据域的数据长度为16个字节;

               【0000】为地址域,表示数据的起始地址;

               【00】为记录类型域,00表示本记录为数据记录;

               【18F09FE518F09FE518F09FE518F09FE5】为数据域;

               【C0】为校验和域,表示记录的校验和,计算方法是将本条记录冒号开始的所有字母(包括校验字节)相加之后等于0x00。本记录的校验和计算方法为:

               【10】+【0000】+【00】+【18F09FE518F09FE518F09FE518F09FE5】+【C0】=0x00;

1.2. 扩展线性地址记录举例

【:】【02】【0000】【04】【0001】【FA】

这其中: 【:】为一个记录的开始;

               【02】为长度域,表示数据长度,为16进制,0x02表示数据域的数据长度为2个字节;

               【0000】为地址域,表示数据的起始地址,这里为绝对地址;

               【04】为记录类型域,04表示本记录为扩展线性地址记录;

               【0001】为数据域,该数据内容表示数据地址的高16位。地址域与被移位的来自扩展线性地址记录的地址

        数据相加获得数据记录的32位绝对存储器地址。因为只用地址域的16位数据只能表示64K的程序,当程序绝对地

    址地址超过0xFFFF时,必须用该记录进行线性地址扩展,经过线性地址扩展,程序可以达到4GB。

               【FA】为校验和域,表示记录的校验和。

1.3. 文件结束记录举例

       一个Intel HEX文件必须有一个文件结束记录,这个记录的类型域必须是01。一个文件结束记录是如下所示的固定

格式:

:00000001FF

1.4. 扩展段地址记录 :

不会用到。


进入单片机查看更多内容>>
相关视频
  • RISC-V嵌入式系统开发

  • SOC系统级芯片设计实验

  • 云龙51单片机实训视频教程(王云,字幕版)

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

精选电路图
  • 家用电源无载自动断电装置的设计与制作

  • 短波AM发射器电路设计图

  • 带有短路保护系统的5V直流稳压电源电路图

  • 如何调制IC555振荡器

  • 基于ICL296的大电流开关稳压器电源电路

  • 基于TDA2003的简单低功耗汽车立体声放大器电路

    相关电子头条文章