arm对应hex_ARM开发中各种烧写文件格式说明(ELF、HEX、BIN)

本文详细介绍了ARM开发中常用的三种文件格式:ELF(Executable and Linking Format)、HEX和BIN。ELF文件用于链接和执行,包含多种类型;HEX文件是ASCII文本,用于数据传输和存储;BIN文件是直接二进制格式,适用于直接烧写。转换关系为:ELF可转为HEX和BIN,HEX能转为BIN,但HEX和BIN无法转为ELF。此外,还提及了ADS调试文件AXF及其与BIN的关系。
摘要由CSDN通过智能技术生成

一、ELF

Executable and linking format(ELF)文件是x86Linux系统下的一种常用目标文件(object file)格式,有三种主要类型:

(1)适于连接的可重定位文件(relocatable file),可与其它目标文件一起创建可执行文件和共享目标文件。

(2)适于执行的可执行文件(executable file),用于提供程序的进程映像,加载的内存执行。

(3)共享目标文件(shared object file),连接器可将它与其它可重定位文件和共享目标文件连接成其它的目标文件,动态连接器又可将它与可执行文件和其它共享目标文件结合起来创建一个进程映像。

ELF文件格式比较复杂。

二、HEX

Intel

HEX文件是记录文本行的ASCII文本文件,在Intel HEX文件中,每一行是一个HEX记录,由十六进制数组成的机器码或者数据常量,Intel HEX文件经常被用于将程序或数据传输

存储到ROM、EPROM,大多数编程器和模拟器使用Intel HEX文件。

记录格式

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

: llaaaatt[dd。。。]cc

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

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

ll 是这条记录的长度域,他表示数据(dd)的字节数目。

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

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

00 —-数据记录

01 —-文件结束记录

02 —-扩展段地址记录

04 —-扩展线性地址记录

dd 是数据域,表示一个字节的数据,一个记录可能有多个数据字节,字节数目可以

查看ll域的说明

cc 是效验和域,表示记录的效验和,计算方法是将本条记录冒号开始的所有字母对

所表示的十六进制数字

都加起来然后模除256得到的余数最后求出余数的补码即是本效验字节cc。

: 0300000002005E9D

cc=0×01+NOT((0×03+0×00+0×00+0×00+0×02+0×00+0×5E)%0×100)=0×01+0×9C=0×9D >

数据记录

Intel HEX文件由若干个数据记录组成,一个数据记录以一个回车和一个换行结束

比如下面的一条数据记录

: 10246200464C5549442050524F46494C4500464C33

10 是此行记录数据的字节数目

2462 是数据在内存中的起始地址

00 是记录类型00(是一个数据记录)

464C 到 464C 是数据

33 是此行记录的效验和

三、

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值