单片机下载程序需要将c文件通过编译器编译成o文件通过连接器连接为一个main的o文件,再将main文件生成hex文件,hex文件即可通过下载器加载到我们的单片机。那么他到底是怎么样子呢

从上图来看,Hex就是一个16进制数文件,它具有一定格式,下面我们进行一些说明。
Hex文件的格式,如上图所示,共包含6个部分,开始冒号为起始记录,bb为字节个数,aaaa为地址,dd为具体的数据,cc为checksum部分。

02代表这部分Hex有两个字节,0400是这部分Hex的存储地址,而00为其记录类型(后续我们会介绍一下记录类型有哪些种类),0034为数据部分,这里先存放低字节部分,后存放高字节部分。

记录类型使用两位二进制数据表示,共有四种形式,如上图表示,其中00表示数据类型,01表示文件结尾记录类型(后续我们对实际Hex进行说明)。

这里是结尾Hex数据表示,00代表有0个数据,地址表示0x0000,记录类型为0x01,checksum是0xFF。

使用一个实际的PIC16F1778的代表编译出来的Hex进行说明,第一行Hex数据是02 0000 04 0000 FA,可以看出这里有两个Hex字节,地址为0x0000,记录类型为扩展线性地址记录,数据是0000,checksum为0xFA,对应第一个PAGE存储空间。第二行为04 0000 00 8031 0628 1D,这里显示为四个数据字节,地址为0x0000开始,类型为数据字节,具体数据为0x3180,0x2806。
审核编辑:汤梓红
-
单片机
+关注
关注
6044文章
44635浏览量
639724 -
嵌入式
+关注
关注
5096文章
19218浏览量
308579 -
文件
+关注
关注
1文章
572浏览量
24866 -
编译器
+关注
关注
1文章
1643浏览量
49364 -
HEX
+关注
关注
0文章
37浏览量
16887
发布评论请先 登录
相关推荐
嵌入式文件系统znFAT介绍

嵌入式Linux文件系统的研究与应用
详解嵌入式linux文件类型

嵌入式文件系统及特点
基于嵌入式视频存储的专用文件系统设计
Linux嵌入式文件系统如何构建
支持Hex、Bin、Motorola S文件的开源库使用
【嵌入式】文件操作

【嵌入式】构建嵌入式Linux系统(uboot、内核、文件系统)

嵌入式Linux系统移植-(Linux文件系统)

Intel Hex 文件格式

评论