.hex与.bin文件区别

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

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



前言

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


一、.bin文件

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

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

下图是一个bin文件,文件内容的起始地址是0x08000000 末尾地址是0x0800246F,一共偏移了0x2470字节,大小刚好是9328byte,和右边属性值一致。
在这里插入图片描述

二、.hex文件

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

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

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


总结

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值