[其他]

单片机中hex、bin文件的区别

[复制链接]
529|14
手机看帖
扫描二维码
随时随地手机跟帖
两只袜子|  楼主 | 2022-10-21 19:26 | 显示全部楼层 |阅读模式

单片机程序编译之后,除了生成hex文件之外还生成了bin文件,实际它们都是单片机的下载文件,下文介绍它们的区别。

Hex

    Hex文件包含地址信息。

    在用ISP方式烧写程序时,有这样的经验:


  • 选择单片机型号

  • 选择串口号

  • 设置波特率(或者默认)

  • 选择下载的文件

  • 点击下载按钮下载



    在串口工具中,操作如下图红框所示。

1660386506195108.png

经过这几步后,程序下载工作就完成了,在以上的步骤中我们并没有选择要把程序下载到单片机的哪块内存中,即不需要设置地址。因为HEX文件内部的信息已经包括了地址。

    单片机一般是下载hex文件

BIN

    BIN文件格式只包括了数据本身,没有包含地址。烧写BIN文件的时候,用户是一定需要指定地址信息的。

    所以在下载bin文件时需要选择内存的起始地址和终止地址,即要把bin文件下载到指定的内存空间。

    通常需要指定程序内存地址的芯片为ARM芯片和DSP芯片。

文件大小
    对于bin文件,通过右键属性查看到的文件的大小就是数据的实际大小。

    而对HEX文件而言,你看到的文件大小并不是实际的数据的大小。一是因为HEX文件是用ASCII来表示数据,二是因为HEX文件本身还包括别的附加信息。


使用特权

评论回复
地瓜patch| | 2022-10-21 20:33 | 显示全部楼层
赞一个

使用特权

评论回复
两只袜子|  楼主 | 2022-10-24 14:18 | 显示全部楼层

哈哈,感谢版主支持

使用特权

评论回复
tpgf| | 2022-11-2 11:39 | 显示全部楼层
hex文件是可以烧写到单片机中,被单片机执行的一种文件格式,生成Hex文件的方式由很多种,可以通过不同的编译器将C程序或者汇编程序编译生成hex。

使用特权

评论回复
nawu| | 2022-11-2 11:55 | 显示全部楼层
Intel hex文件记录中的数字都是16进制格式,两个16进制数字代表一个字节。

使用特权

评论回复
aoyi| | 2022-11-2 12:09 | 显示全部楼层
Bin文件是最纯粹的二进制机器代码,没有格式,或者说是“顺序格式”按assembly code顺序翻译成binary machine code

使用特权

评论回复
zljiu| | 2022-11-2 12:17 | 显示全部楼层
Hex文件如果用特殊的程序来查看(一般记事本就可以实现)。打开后可发现,真个文件以行为单位,每行以冒号开头,内容全部为16进制码。

使用特权

评论回复
gwsan| | 2022-11-2 13:24 | 显示全部楼层
生成Hex文件的方式由很多种,可以通过不同的编译器将C程序或者汇编程序编译生成hex

使用特权

评论回复
tfqi| | 2022-11-2 13:42 | 显示全部楼层
bin文件是二进制文件,所有数据就是写入到单片机中的实际数据。

使用特权

评论回复
Stahan| | 2022-11-2 20:43 | 显示全部楼层
Bin文件是最纯粹的二进制机器代码

使用特权

评论回复
chenjun89| | 2022-11-7 19:50 | 显示全部楼层
bin文件主要用于在线升级

使用特权

评论回复
天天向善| | 2022-11-8 14:08 | 显示全部楼层
BIN文件看到的大小也不一定是实际大小哦。

使用特权

评论回复
Pretext| | 2022-11-8 14:09 | 显示全部楼层
axf是个什么文件?

使用特权

评论回复
AloneKaven| | 2022-11-19 17:22 | 显示全部楼层
BIN文件需要指定地址信息

使用特权

评论回复
Jacquetry| | 2022-11-19 17:52 | 显示全部楼层
hex文件记录中的数字都是16进制格式

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则