.hex与.bin文件区别

嵌入式_.hex与.bin文件区别

之前在做GD32远程升级的时候需要发送可执行文件,但编译产生的可执行文件有两种分别是.bin和.hex文件,当时对这两个文件是有点迷惑的,导致走了一段弯路,现在作为笔记,简单回顾一下理解思路


文章目录

  • 嵌入式_.hex与.bin文件区别
  • 前言
  • 一、.bin文件
  • 二、.hex文件
  • 总结


前言

单片机程序一般是hex,或者bin文件,那么hex和bin文件到底有什么区别?


一、.bin文件

Binary 的缩写Bin,即为二进制文件,在这里理解为可执行的机器代码(程序)文件,因为计算机存储只有 0 和 1,有时候下载的镜像文件也有Bin格式。我们这里只针对编译生成的二进制文件。

特点:
A.大小 :可以看作最简单的文本,内容有多大,文件就有多大
B.因为只有文本信息,所以下载需要指定起始地址

下图是一个bin文件,文件内容的起始地址是0x08000000 末尾地址是0x0800246F,一共偏移了0x2470字节,大小刚好是9328byte,和右边属性值一致。
.hex与.bin文件区别_第1张图片

二、.hex文件

hex 格式文件由 Intel 制定的一种十六进制标准文件格式,是由编译器转换而成的一种用于下载到处理器里面的ASCII文本文件。拥有固定的行格式(格式包含数据长度、地址信息、数据信息、校验)等。这里对hex文件的行格式不做分析,感兴趣的可以去搜一下。

特点:
A.大小 :除了文本信息还包含其他内容,文本内容有多大,文件大小要大一些
B.因为包含地址信息,所以下载不需要指定起始地址

使用上述同一个代码编译Hex文件,文件内容的起始地址依旧是0x08000000 末尾地址依旧是0x0800246F,一共偏移了0x2470字节,大小是9328byte,但是和右边属性显示大小不一样,这是因为包含了其他格式信息。
.hex与.bin文件区别_第2张图片


总结

bin文件只是单纯的程序数据,hex除程序数据之外还有一定格式数据,一般来讲同一个文件编译出来的Hex文件大小是其Bin文件大小的2.5倍左右。

在hex之上,还有一种axf文件,差别在于 axf 具有更多的调试信息。

你可能感兴趣的:(嵌入式基础,单片机,c语言)