admin 管理员组文章数量: 1184232
嵌入式_.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 具有更多的调试信息。
版权声明:本文标题:HEX与BIN比较指南:揭示二进制和十六进制文件格式的关键差异 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1772045145a3551493.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论