烧写文件格式说明(ELF、HEX、BIN)

一、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 是此行记录的效验和

三、BIN:

BIN文件就是直接的二进制文件,内部没有地址标记。一般用编程器烧写时从00开始,而如果下载运行,则下载到编译时的地址即可。

总结:

  • 可以由ELF文件转化为其它两种文件,HEX也可以直接转换为BIN文件,但是BIN要转化为HEX文件必须要给定一个基地址。而HEX和BIN不能转化为elf文件,因为ELF的信息量要大。另外还有一种ads的调试文件axf,
    它可以转化为BIN文件,用以下命令 fromelf -nodebug xx。axf -bin xx。bin即可。

  • 这里所说的ARM系统基本文件格式,都是在基于ARM的嵌入式系统开发中常会碰到的文件格式。

ARM系统基本文件格式有三种:

  1. BIN,平板式二进制格式,一般用于直接烧写到Flash中,也可以用于加载到monitor程序中。
  2. ELF,EXECUTABLE AND LINKABLE FORMAT,一种通用的OBJECT文件格式,一般由GNU COMPILER COLLECTION (GCC)产生。
  3. AXF,BIN格式的扩展版,主体部分同BIN,在文件头和尾加入了调试用的信息,用于AXD。

烧写文件格式介绍(ELF、HEX、BIN)相关推荐

  1. 各种烧写文件格式简介-ELF Hex Bin axf

    转载地址:http://blog.chinaunix.net/uid-20321537-id-1966794.html 一,ELF Executable and linking format(ELF) ...

  2. I2C接口的EEPROM烧写软件介绍以及源码下载

    本软件可以通过Ginkgo I2C适配器对EEPROM芯片进行读写数据,当然也可以自己修改程序用于自己的硬件. 软件功能简介: 支持多通道操作,硬件模式支持2个通道,软件模式支持8个通道. 可以根据不 ...

  3. 米联客 ZYNQ/SOC 精品教程 S02-CH29 基于TCP的QSPI Flash bin文件网络烧写

    软件版本:VIVADO2017.4 操作系统:WIN10 64bit 硬件平台:适用米联客 ZYNQ系列开发板 米联客(MSXBO)论坛:www.osrc.cn答疑解惑专栏开通,欢迎大家给我提问!! ...

  4. STM32的烧录和Hex/bin烧录文件解析、烧录文件是被如何存储到MCU中的?

    什么是hex文件 以*.hex为后缀的文件我们称之为HEX文件.hex是intel规定的标准,hex的全称是Intel HEX,此类文件通常用于传输将被存于ROM或EEPROM中的程序和数据.是由一行 ...

  5. micropython8266ota_[Micropython]TPYBoardV102 Dfu固件烧写教程

    TPYBoardv10x固件烧写一直是大家比较关心的问题,上次教大家用SWD接口烧写TPYBoard的固件,这次教大家用另一种方式烧写我们TPYBoardv10x的固件,直接用dfu模式烧写固件. 用 ...

  6. 使用dd命令烧写linux系统到sd卡

    基于S3c2416 http://www.industech.com.cn (uboot-1.3.4) 一:明白uboot怎么到sd卡的原理概述: 1:首先明白开发板从sd卡的什么部分读取引导安装程序 ...

  7. Hi3516A开发-- 板卡串口烧写

    uboot使用loady命令进行串口传输 新改版的板卡,网络无法使用,uboot可以起来,但是内核和文件系统镜像,没法烧写. 在无网络的情况下,SecureCRT使用loady命令进行串口传输,烧写内 ...

  8. 【Tiny4412】烧写Android系统(SD卡)

    00. 目录 文章目录 00. 目录 01. 编译内核 02. 安装dnw工具 03. 安装Android_tools 04. 烧写Android系统 05. 问题解决 06. 附录 01. 编译内核 ...

  9. armboot和内核文件系统烧写总结

    armboot的烧写和内核文件系统的烧写是最基本的,也是最原始的操作.但是对于以后整块板的分析是很有好处的,为下一步外围模块的添加做好了准备工作.<?xml:namespace prefix = ...

最新文章

  1. php 跳转qq群代码_PHP小脚本~QQ免KEY值加群
  2. uni-app读取html缓存,uni-app同步缓存值 设置 读取 删除(示例代码)
  3. Vue.js TypeScript 支持
  4. java添加不了源代码,JAVA初学者的一些问题
  5. 用户请求队列化_爬虫架构消息队列应用场景及ActiveMQ、RabbitMQ、RocketMQKafka
  6. DCMTK:读取DICOM图像,添加一个Curve并将其写回
  7. 实现根据id查询房源数据的dubbo服务
  8. winre drv分区干嘛用的_都2020年了,还在给硬盘分区?看完你就知道有没有必要了...
  9. 腾讯视频怎么设置全速下载模式
  10. UVA12633 Super Rooks on Chessboard
  11. 基于JAVA+SpringMVC+Mybatis+MYSQL的网上零食商城管理系统
  12. MFC获取文件夹路径并得到该字符串
  13. flask结合令牌桶算法实现上传和下载速度限制
  14. 网站访客 简易日志记录
  15. 百度统计挂了,分布式数据库异常引起,数据显示为空!
  16. dreamweaver php代码提示框,PHP 5.4中的Dreamweaver CS5代码提示和语法错误
  17. 谷歌服务组件安装简介
  18. 干货 | 七年留美经验,帮你省钱自助游美国
  19. 语音数字信号处理系统设计(含matlab程序)
  20. VS源文件提取工具vsjuicer 实现细节

热门文章

  1. 摩伴windows桌面服务器,魔伴Windows桌面app
  2. 采样点 求拐点 算法 c语言,平面曲线离散点集拐点的快速查找算法.pdf
  3. 诛剑奇侠传java_诛剑奇侠传飞升版
  4. 龙卷风收音机绿色版cradio_chs
  5. ROS软路由 IPSec配置
  6. 苹果微信多开共存软件免费发布
  7. 用户研究方法介绍――情绪板(Mood Board)
  8. Windows10家庭版安装MySQL(无法启动服务问题和卸载教程)
  9. plantuml 依赖_PlantUML参考手册
  10. 苹果11锁屏后打开计算机管理,苹果11电源键不能锁屏