必威体育Betway必威体育官网
当前位置:首页 > IT技术

STM32学习笔记一一HEX文件和BIN文件格式

时间:2019-08-10 07:46:18来源:IT技术作者:seo实验室小编阅读:65次「手机版」
 

bin文件

前言:

为了方便查看博客,特意申请了一个公众号,附上二维码,有兴趣的朋友可以关注,和我一起讨论学习,一起享受技术,一起成长。

在这里插入图片描述


1. 引言

今天看串口的 IAP ,平时我们通过 JTAG 等工具下载的都是 HEX 文件,都没有思考一下 HEX 的文件组成。而串口 IAP 下载的是 BIN 文件,刚好在这里区分学习一下。

我们平时烧写 HEX 文件是不需要设置地址信息的,因为已经包含在文件里面,而使用 BIN 烧写,需要在程序中指定地址。

在这里插入图片描述

2. 简述

Intel hex 文件是记录文本行的 ASCII 文本文件,在 Intel HEX 文件中,每一行是一个 HEX 记录,由十六进制数组成的机器码或者数据常量。Intel HEX 文件经常被用于将程序或数据传输存储到 ROM、EPROM,大多数编程器和模拟器使用Intel HEX文件。

2.1 HEX文件

HEX 文件是包括地址信息的,而BIN文件格式只包括了数据本身。在烧写或下载HEX文件的时候,一般都不需要用户指定地址,因为HEX文件内部的信息已经包括了地址。而烧写BIN文件的时候,用户是一定需要指定地址信息的。

2.2 BIN文件

二进制文件而言,其实没有”格式”。文件只是包括了纯粹的二进制数据。

2.3 HEX文件格式

HEX文件都是由记录(RECORD)组成的。在HEX文件里面,每一行代表一个记录。记录的基本格式为:

在这里插入图片描述

RECTYP类型:

在这里插入图片描述

eg:

在这里插入图片描述

第一条:

RECLEN:02;offset:0000;RECTYP:04;INFO or DATA:0000;CHKUSM:FA

第二条:

RECLEN:10;OFFSET:0000;RECTYP:00;INFO or DATA:982100203501000021920000A5920000;CHKUSM:F7

以此类推

在这里插入图片描述

最后一条,表示文件末尾::00000001FF

2.4 BIN文件格式

在这里插入图片描述

可以看到,BIN文件的数据与 HEX 格式数据的数据段是一一对应的。

2.5 HEX与BIN文件的大小

HEX 文件是用 ASCII 来表示二进制的数值。

例如:一般 8BIT 的二进制数值0x3F,用ASCII来表示就需要分别表示字符’3’ 和字符’F’,每个字符需要一个BYTE,所以HEX文件需要 > 2倍的空间

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

2.6 校验和计算

计算从(0x3a–":")以后的所有各字节的和模256的余。即各字节二进制算术和,不计超过256的溢出值,然后用0x100减去这个算数累加和,得出的值就是此行校验码。

eg:04000005000000C92E

0x100-(04+00+00+05+00+00+00+C9) = 2E


参考:

1.hex和bin文件格式的区别

2.HEX文件和BIN文件格式的区别

相关阅读

在html页面中展示pdf文件,实现在线阅读

在项目中遇到需要展示PDF的文件的问题,转载了博客https://blog.csdn.net/ohyesurright/article/details/41891139

嵌入式STM32学习:I2C-读写EEPROM2

bsp_i2c_ee.h #ifndef __I2C_EE_H #define __I2C_EE_H #include "stm32f4xx.h" /* AT24C01/02每页有8个字节 */ #define I2

关于Windows环境下处理.tar.gz文件的问题

文章目录现象原因与分析解决办法第一步第二步代码测试结果现象 .tar.gz文件是linux下标准的打包+压缩格式。在Windows下处理时,发

java文件操作getAbsolutePath和getCanonicalPath的区

java文件操作getAbsolutePath和getCanonicalPath的区别 2014年11月03日 14:11:52 阅读数:2318 一般情况下,二者得到的结果是没有差

OmniGraffle原型案例 | 某APP产品原型PDF文件分享之二

各位朋友们大家好,在上一篇文章中 LY@iPM分享了笔者从1.0.0开始跟的一个项目——乐宠(后改名为「尾巴圈」)的SNS 论坛部分「OmniGraf

分享到:

栏目导航

推荐阅读

热门阅读