嵌入式开发系统编程文件格式解析

嵌入式开发系统编程文件格式解析,第1张

 

  嵌入式系统编程文件格式多种多样。为方便嵌入式系统开发和深度理解各种目标系统,论文详细分析了多种主流的嵌入式可执行文件(即机器码文件)格式。比较了不同格式的异同点,并介绍了各种嵌入式文件格式的主要硬件系统及目标器件。

  1 常见文件格式解析

  虽然不同的开发集成环境和不同的硬件架构使得嵌入式设备中可执行文件的格式不尽相同,但基本上包含以下一些典型特征:

  ① 可执行文件的基本信息,如文件大小、时间、权限等。

  ② 与硬件架构相关的二进制代码和数据。

  ③ 符号表与符号重定位表。

  从文件本身所包含的信息来看,嵌入式系统可执行文件主要有:纯数据类文件,记录类文件以及描述类文件。

  1.1 纯数据文件格式

  纯数据文件就是指文件中不包含地址和校验信息等,只包含纯粹的用户数据。纯数据文件主要包括两种:BIN格式和HEX格式。BIN格式即二进制的文件,使用时每8位作为一个字节来用,传输BIN文件时并不进行ASCII编码。BIN文件格式是没有结束标记的。显然,BIN文件格式是除了一些压缩格式(如ZIP和RAR)之外最节省空间的格式,它主要是用来编程存储器器件的,通常会建议将EPROM数据存储为BIN格式以作为标准文件格式来下载[2].HEX格式相比BIN格式的区别就是,每个字节都转成了2个0~9和A~F之间值的ASCII码。整个文件是分行表示的,每行一般是16或32个字节,行以空格加回车表示结束。

  1.2 记录类文件格式

  记录类文件中所有的数据行都叫做记录,每一条记录一般都分为多个域来清晰地说明记录的类型、记录中数据的数量、数据的存储地址、数据校验信息等。而且,记录类文件一般都有关于该文件开始和结束的标记信息。各种记录类文件格式的差异就体现在不同公司定义的记录标记以及一些域格式和顺序的差别上。记录类文件常见的就是各种MCU的烧录文件。

  1.2.1 Intel HEX文件格式(.HEX)

  Intel HEX是一种较老的文件格式。它是用ASCII字符来表示文件中数据域的二进制数据。文件中每一行是一条HEX记录,由一个回车和一个换行结束。Intel HEX文件经常被用于将程序或数据传输存储到ROM、EPROM,大多数编程器和模拟器使用Intel HEX文件。

  记录格式如下:

  :BBAAAATTHHHH…HHHCC

  :--记录开始标记。

  BB--长度域,占一个字节。代表这条记录中数据的字节数,每条记录最大数据字节数是255字节,通常为32字节。长度域只计数数据域的大小。

  AAAA--地址域,占两个字节,存储方式是MSB.地址域指出这条记录的第一个数据字节的地址,随后地址逐一增加以存储下面的数据。整个文件中各记录的地址顺序是不重要的,文件中有时也会有一段空的地址。

  TT--类型域,1字节。表示该条记录的类型。

  HH--数据域,长度受到记录类型的限制。数据记录以字节为单位。

  CC--校验和,占一个字节。计算方法是将本记录中除了冒号和校验字节之外的所有字节加起来,将模除256得到的余数取补码。

  Intel HEX文件格式的6种记录说明如表1所列。

  表1 Intel HEX文件格式的记录类型

  

嵌入式开发系统编程文件格式解析,1.jpg,第2张

 

  

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/dianzi/2713849.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-17
下一篇 2022-08-17

发表评论

登录后才能评论

评论列表(0条)

保存