【嵌入式烧录/刷写文件】-4.1-Intel Hex,Motorola S-record,Bin文件之间的差异/区别

共7页精讲送上独到的见解,。

目录

1 Intel Hex,Motorola S-record(S19/SREC/mot/SX)和bin文件之间的差异

2 Motorola S-record(S19/SREC/mot/SX)文件和Intel Hex文件的差异

3 如何理解ASCII文本形式(Motorola S-record文件和Intel Hex文件)传达二进制信息

结尾


优质博文推荐阅读(单击下方链接,即可跳转):

点击返回「《Autosar从入门到精通-实战篇》总目录」

点击返回「《Autosar_BSW高阶配置》总目录」

点击返回《嵌入式硬件/软件开发刷写/烧录文件》专栏

在以下3篇博文中,我们分别介绍了Motorola S-record(S19/SREC/mot/SX)文件Intel Hex文件Bin文件,现在我们来系统性总结一下三者的差异。

【嵌入式烧录/刷写文件】-1.1-详解Motorola S-record(S19/SREC/mot/SX)格式文件https://blog.csdn.net/qfmzhu/article/details/129741805

【嵌入式烧录/刷写文件】-2.1-详解Intel Hex格式文件https://blog.csdn.net/qfmzhu/article/details/129817980

【嵌入式烧录/刷写文件】-3.1-详解二进制Bin格式文件https://blog.csdn.net/qfmzhu/article/details/129860220

1 Intel Hex,Motorola S-record(S19/SREC/mot/SX)和bin文件之间的差异

Motorola S-record文件是Motorola公司开发的一种ASCII码文本文件格式,用于将程序代码数据传输到ROM或FLASH等非易失性存储器中。Motorola S-record文件包含了地址信息数据校验和等信息。

Intel Hex文件也是一种用于将程序代码数据传输到ROM或FLASH等非易失性存储器中的ASCII码文本文件格式。它与Motorola S-record文件类似,但是采用了不同的格式和校验和算法。

Bin文件是一种二进制文件格式,它是计算机中最基本的文件格式之一,不同于Motorola S-record文件和Intel Hex文件,它不包含地址信息或校验和,只包含原始二进制代码+数据。通常,它被用于将软件程序直接写入ROM或FLASH等非易失性存储器中。

Motorola S-record文件

Intel Hex文件

Bin文件

Record start

大写字母"S"

ASCII冒号“

Record type

位置在Record start之后,用个0到9的ASCII码字符表示。

位置在Address之后,用个00到05的ASCII码字符表示。

Byte count

表示一个Record的Address段,DataChecksum的字节数之和。

长度一般在3~37字节数之间,对于S0类型的Record,Byte count可能在3~255字节数之间。

表示一个Record的Data字节数。

长度一般选取8,16和32字节数,范围在0~255字节之间。

Address

由Record type决定,4/6/8个ASCII码字符

4个ASCII码字符

Data

用ASCII文本形式传达二进制信息的十六进制值。

二进制信息

Checksum

Byte countAddressData的两个ASCII码字符对所代表的数值之和的LSB反码

Byte countAddressRecord typeData的两个ASCII码字符对所代表的数值之和的LSB补码

Text line terminator

除了上述提到的基本差异外,Motorola S-record文件Intel Hex文件Bin文件还有一些其他的差异:

文件大小:Motorola S-record文件和Intel Hex文件通常比Bin文件要大,除了它们包含了额外的元数据校验和信息,还有数据段表示是bin文件的两倍。

可读性:Motorola S-record文件和Intel Hex文件通常比Bin文件更易读,因为它们包含了地址和数据的解释。而Bin文件只包含原始的二进制数据,不太容易读懂。

数据存储方式:Motorola S-record文件和Intel Hex文件通常使用大端存储方式,而Bin文件有时使用与系统架构相关的存储方式,如小端存储方式

数据压缩:Motorola S-record文件和Intel Hex文件可以对数据进行压缩,以减少文件大小。Bin文件不支持数据压缩。

2 Motorola S-record(S19/SREC/mot/SX)文件和Intel Hex文件的差异

通过图2-1的展示,您可以清楚的看到第一章节表格中总结的内容:

Motorola S-record(S19/SREC/mot/SX)文件Intel Hex文件除了Data16位Address一样外(当是24/32位地址时,二者的Address段是不一样的),Record startRecord typeByte countChecksum的表示有明显差异的,见图2-1。

【嵌入式烧录/刷写文件】-4.1-Intel Hex,Motorola S-record,Bin文件之间的差异/区别_第1张图片

图2-1

3 如何理解ASCII文本形式(Motorola S-record文件和Intel Hex文件)传达二进制信息

不管是Motorola S-record(S19/SREC/mot/SX)文件Intel Hex文件,还是Bin文件它们都是用无数个连续的01序列文件,不同的编码格式,实质是选取了多少个Bit,来表示一个有含义的字符。

将图3-1中的Motorola S-record(S19/SREC/mot/SX)文件十六进制显示,见图3-2,您可以清楚地看到,Motorola S-record(S19/SREC/mot/SX)文件中每个字符都是用ASCII表示的。

Motorola S-record(S19/SREC/mot/SX)文件中的地址段使用ASCII显示,见图3-1:

58595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F7071727374757677

Motorola S-record(S19/SREC/mot/SX)文件中的地址段使用十六进制显示,见图3-2:

353835393541354235433544354535463630363136323633363436353636363736383639364136423643364436453646373037313732373337343735373637373542

【嵌入式烧录/刷写文件】-4.1-Intel Hex,Motorola S-record,Bin文件之间的差异/区别_第2张图片

图3-1

【嵌入式烧录/刷写文件】-4.1-Intel Hex,Motorola S-record,Bin文件之间的差异/区别_第3张图片

图3-2

接着我们将该Motorola S-record(S19/SREC/mot/SX)文件文件用二进制显示,Motorola S-record(S19/SREC/mot/SX)文件中,每个ASCII码字符占用8个Bit,见图3-3。

【嵌入式烧录/刷写文件】-4.1-Intel Hex,Motorola S-record,Bin文件之间的差异/区别_第4张图片

图3-3

对比图3-1的S19文件和图3-4的Bin文件,您会发现Motorola S-record(S19/SREC/mot/SX)文件Intel Hex文件地址段ASCII码字字符Bin文件十六进制数字字符相同的,但前者使用了2倍的长度来表示/描述后者注意这里的总结!!!

【嵌入式烧录/刷写文件】-4.1-Intel Hex,Motorola S-record,Bin文件之间的差异/区别_第5张图片

图3-4

将该bin文件二进制显示,bin文件中,每个十六进制字符占用4个Bit,见图3-5。

【嵌入式烧录/刷写文件】-4.1-Intel Hex,Motorola S-record,Bin文件之间的差异/区别_第6张图片

图3-5

结尾

获取更多“汽车电子资讯”和“工具链使用”,

请关注CSDN博客“汽车电子助手”,做您的好助手。

你可能感兴趣的:(嵌入式开发刷写/烧录文件,Autosar,开发语言,嵌入式硬件)