Home » [Update] MCU升级文件HEX、BIN、S19格式概述_$好记性还是要多记录$-CSDN博客 | vbf 0b – Nangdep.vn

[Update] MCU升级文件HEX、BIN、S19格式概述_$好记性还是要多记录$-CSDN博客 | vbf 0b – Nangdep.vn

vbf 0b: นี่คือโพสต์ที่เกี่ยวข้องกับหัวข้อนี้

HEX

Hex文件是可以到MCU中,被MCU执行的一种文件格式

如果用记事本打开可发现,整个文件以行为单位,每行以冒号开头,内容全部为16进制码(以ASCII码形式显示)。Hex文件可以按照如下的方式进行拆分来分析其中的内容:

例如 “:1000080080318B1E0828092820280B1D0C280D2854”可以被看作“0x10 0x00 0x08 0x00 0x80 0x31 0x8B 0x1E 0x08 0x28 0x09 0x28 0x20 0x28 0x0B 0x1D 0x0C 0x28 0x0D 0x28 0x54”

文件格式

1、以行为单位。

2、每行开头是“:“(0x3A),结尾”回车换行“(0x0D,0x0A.)。

3、中间所有内容都是一字符形式表现的。若数据是”0x1A“,在HEX中就是”0x31 0x41“。

4、HEX文件格式:”LLAAAATT【DD.—-】CC“。

第一个字节:表示本行的数据长度.第二个,第三个字节表示本行数据的起始地址.第四字节表示数据类型,数据类型有:0x00、0x01、0x02、0x03、0x04、0x05。

’00’ Data Rrecord:用来记录数据,HEX文件的大部分记录都是数据记录

’01’ End of File Record:用来标识文件结束,放在文件的最后,标识HEX文件的结尾

’02’ Extended Segment Address Record:标识扩展段地址,用来标识扩展段地址的记录,

’03’ Start Segment Address Record:开始段地址记录

’04’ Extended Linear Address Record:用来标识扩展线性地址(虚地址)的记录

’05’ Start Linear Address Record:开始线性地址(虚地址)记录

然后是数据,最后一个字节 0x69为校验和。

 CC校验和:校验和的算法为:计算 0x69校验和前所有16进制码的累加和(不计进位),检验和

校 验和的计算是通过将记录当中所有十六进制编码数字对的值相加, 以256 为 模 进 行以下 补 足.

例如:

 :10246200464C5549442050524F46494C4500464C33

33 是这个记录的校 验和即0x33;计算方法如下:100H-(10H+24H+62H+00H+46H+4CH+55H+49H+44H+20H+50H+52H+4FH+46H+49H+4CH+45H+00H+46H+4CH) % 100H=33H;

扩展线性地址记录(HEX386)

扩展线性地址记录又称为32位地址记录或者HEX386记录。 这些记录包含了数据地址的高16位。T扩展线性地址记录总是有两个数据,格式如下

:020000040800F2

这里:

02 是记录的数据位数

0000 对于扩展线性地址记录,这部分都是零。

04 代表记录类型是扩展线性地址记录。

0800 是地址的高16位。

F2 是以下计算结果的和:01h + NOT(02h + 00h + 00h + 04h + 08h + 00h).

当一个扩展线性地址被读取时,在数据域中的扩展线性地址被储存并且运用到后来的记录的读取中。线性地址保持有效直到被另外一个扩展地址所改变。数据的绝对地址由扩展线性地址和偏移地址相加获得。

下面这个例子可以说明这个过程。

数据记录的地址域中的地址                          2462

扩展线性地址记录的数据域                      0800

绝对地址:                                    08002462

扩展段地址记录(HEX86)

扩展段地址记录(也称HEX86)包括数据地址段的4-19位。扩展段地址记录总有两个数据位。一般如下:

:020000021200EA

这里:

02 在本记录中的数据的位数。

0000对于扩展段地址记录,这部分都是零。

02是记录类型,也就是扩展段地址记录。

1200 是地址段

EA 是如下计算的结果01h + NOT(02h + 00h + 00h + 02h + 12h + 00h).

当一个扩展段地址被读取时,储存在数据域的扩展段地址被保存,应用到后面的记录,并且保持有效,直到被新的扩展地址所代替。绝对地址的获得是段地址乘以16加上偏移地址。

以下这个例子说明这个过程。

记录地址域获得的地址:                2462

扩展段地址的数据域:                   1200

绝对存储地址:                    00014462

结束文件记录:

一个英特尔HEX文件必须由一个EOF文件来结束。一个结束文件记录一般这样出现:

:00000001FF

这里:00是记录的数据位数.

0000 是数据在存储器中定位的数据的地址.在结束文件中的地址是没有意义和可以忽略的。一个 0000h 的地址是很典型的。

01是记录类型,结束文件记录

FF 由这样计算得出:01h + NOT(00h + 00h + 00h + 01h)

起始线性地址类型记录:

 只使用于803386.x86的寻址方面的知识。

起始段地址类型记录:

只适用于8086/800186.

示例

一个完整的超级简单的hex文件的截图:

在上面的后2种记录,都是用来提供地址信息的。每次碰到这2个记录的时候,都可以根据记录计算出一个“基”地址。对于后面的数据记录,计算地址的时候,都是以这些“基”地址为基础的。

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

Record mark ‘:’    *  Length * Load offset * Record type * INFO or DATA * CHKSUM

1 byte 1 byte 2 bytes 1 byte n bytes 1 byte

看个例子:

:020000040008F2

:10000400FF00A0E314209FE5001092E5011092E5A3

:00000001FF      

See also  [Update] 5 อันดับ เครื่องโกนหนวดไฟฟ้า ยี่ห้อไหนดี > Blog: sleepbudda | ที่โกนหนวดไฟฟ้า pantip - Nangdep.vn

对上面的HEX文件进行分析:

第1条记录的长度为02,LOAD OFFSET为0000,RECTYPE为04,说明该记录为扩展段地址记录。数据为0008,校验和为F2。从这个记录的长度和数据,我们可以计算出一个基地址,这个地址为(0x0008 << 16)。后面的数据记录都以这个地址为基地址。拓展地址是0008.。那么第二行数据的起始地址就是00080004,即0x00080004开始

第2条记录的长度为10(16),LOAD OFFSET为0004,RECTYPE为00,说明该记录为数据记录。数据为FF00A0E314209FE5001092E5011092E5,共16个BYTE。这个记录的校验和为A3。此时的基地址为0X80000,加上OFFSET,这个记录里的16BYTE的数据的起始地址就是0x80000 + 0x0004 = 0x80004.

第3条记录的长度为00,LOAD OFFSET为0000,TYPE = 01,校验和为FF。说明这个是一个END OF FILE RECORD,标识文件的结尾。在上面这个例子里,实际的数据只有16个BYTE:FF00A0E314209FE5001092E5011092E5.

BIN

平时我们通过 JTAG 等工具下载的都是 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文件里面,每一行代表一个记录。记录的基本格式为:

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

Bin文件是最纯粹的二进制机器代码,没有格式,或者说是”顺序格式”。按assembly code顺序翻译成binary machine code。由于分析出来Hex文件中的数据域ASCII码表示的十六进制与二进制一一对应,而且我公司DSP又是16位的,以一个word为最小单位,所以四个十六进制ASCII码代表一条机器指令单位或者地址,借于上面分析,编写了工具代码。大体原理是用fscanf函数在每行的数据域读入四个ASCII码,以短整形(short int 16bit)形式储存,在把这个短整形变量顺序fwrite到文件流中去即可。

表1为源程序,表2是汇编后得到的HEX文件,表3是由HEX文件转换成的目标文件,也就是最终写入EPROM的文件,它由编程器转换得到,也可以由 HEXBIN一类的程序转换得到。学过手工汇编者应当不难找出表3与表1的一一对应关系,值得注意的是从02 00 40后开始的一长串‘FF’,直到75 81,这是由于伪指令:ORG 040H造成的结果。

表一

ORG 0000H 
LJMP START 
ORG 040H 
START: 
MOV SP, #5FH  ;设堆栈 
LOOP: 
NOP 
LJMP LOOP    ;循环 
END        ;结束

S19

s19:Motorola format for EEPROM programming :程序文件

1.概述

为了在不同的计算机平台之间传输程序代码和数据,摩托罗拉将程序和数据文件以一种可打印的格式(ASCII格式)编码成s格式文件。s格式文件是Freescale推荐使用的标准文件传送格式。编译完成之后,FreescaleCodeWarrior编译器将在bin文件夹下自动生成“*.abs.s19”文件,这个文件包含最终下载带单片机中的所有内容。

2. 格式定义及含义

S格式文件中的每一行称为一个S记录,每个S记录由记录类型、记录长度、存储地址、代码/数据、校验和5个部分组成。

每字节数据被编码成2个16进制字符,第一个字符代表数据的高四位,第二个字符代表数据的低4位。

5个部分具体内容如下:

记录类型:2个字符(即1个字节),用来描述记录的类型。记录供定义了8种类型:

S0:S格式文件的第一个记录,表示文件名(含路径),存储地址部分没有使用,以0000置位。此记录表示记录的开始,无需下载到MCU。

S1: 地址为2字节(4个字符)的记录。

S2: 地址为3字节的记录。

S3: 地址为4字节的记录。

S5: 标记本文件的S1、S2、S3记录的个数(此记录不是一个S文件所必须的)。

S7: 地为4字节,表示程序的开始执行地址,代码/数据部分没有被使用,此行表示程序的结束,无需下载到MCU。

S8: 地为3字节,表示程序的开始执行地址,代码/数据部分没有被使用,此行表示程序的结束,无需下载到MCU。

S9: 地为2字节,表示程序的开始执行地址,代码/数据部分没有被使用,此行表示程序的结束,无需下载到MCU。

记录长度: 2个字符(即1个字节),显示在记录中剩余的字节数。即

记录长度 = 存储地址字节数 + 代码/数据字节数 + 校验和字节数

存储地址: 2或3或4个字节(由记录类型决定),用来表示代码/数据应该装载的起始地址。

代码/数据: 0-64字符(即0-32字节),表示需要下载到MCU中的数据。

校验和: 2个字符(即1字节),校验数据,计算方法:

校验和 = 0Xff – (记录长度 + 存储地址 + 代码/数据)

(注意,为校验和不是字符的校验和,而是实际二进制数的校验和)

3. 实例:

S01F0000443A5C50726F6A6563745F335C62696E5C50726F6A6563742E61627371

S123C000CF2100C6055B134A800BFE4A8000FE0000C015C03100000000000000
0000000092

S218FE8020F2FEC013EC31270BED31180A30700434F920F10A0B

S9030000FC

说明;

第一行:S0,表示S19文件格式开始;1F为剩余字节数;0000无用;443A5C50726F6A6563745F335C62696E5C50726F6A6563742E616273

为D:\Project_3\bin\Project_3.abs.的ASCII码;71为校验和.

第二行: S1,表示本条记录存储地址长度为2字节;23(注意为16进制)剩余字

节数,C000,表示起始地址,92表示校验和。即,本行表示将

CF2100C6055B134A800BFE4A8000FE0000C015C0310000000000000000000000依次下载到从地址C000开始的一段连续地址中。

第三行:S2,表示本条记录存储地址长度为3字节,18(16进制数)表示剩余字节数,FE8020表示起始地址,0B为校验和。

校验和的计算:以S2记录为例,

校验和 = 0xFF – (0xFE + 0×80 + 0×20 + 0Xf2 + … + 0x0A);

另记:在用Freescale CodeWarrior调试FLASH擦除和写入时需注意以下几点:

1. 已写入过的FLASH地址需要在擦除后才能再次写入。

2. 在内存监视窗口有时无法看到是否正确写入和擦除,可用指针从地址处读出数据检查是否正确擦除及写入。

3.在BDM模式下,用自己写的FLASH下载代码通过串口导入s19文件后,将导致芯片锁定,若不解锁(Unsecure),无法再次通过BDM或者串口下载s19文件。但当芯片脱离BDM独立运行时未发现此问题。

注: 软件版本;CW for S12(X) 5.0,芯片型号:MC9S12XDP512

##############################################################################

1、概述

S-record每行最大是78个字节,156个字符

2.1. Example1

S19文件首行:

S021000036384B50524F47202020313143524541544544204259204541535936384B6D

首行翻译信息: S0 0000 6 8 K P R O G 11 C R E A T E D B Y E A S Y 6 8 K 
色块图例:module name version number revision number checksum 
checksum的算法: 
0x21+0x00+0x00+0x36+0x38+0x4B+0x50+0x52+0x4F+0x47+0x20+0x20+0x20+0x31+0x31+0x43+0x52+0x45+0x41+0x54+0x45+0x44 
+0x20+0x42+0x59+0x20+0x45+0x41+0x53+0x59+0x36+0x38+0x4B=0x792 
checksum=0xFF-0x92=6D

2.2. Example2

S123C000CF1400790011CC09395B105A124A8046304A8000300001C01BCB73140007340027

色块图例:type count address data checksum


See also  [Update] แปลเพลง Love & The Outcome | king of king แปลว่า - Nangdep.vn

Spider-Man: Spider-Verse Flash Mob Prank


SpiderVerse explodes onto the streets when the biggest Marvel Comics story of the year comes to life in a hilarious cosplay flash mob.
Special thanks to the cosplayers who helped make this video!!!
Starring:
Oliver Marriott https://www.fb.com/iammarriottcosplay
Brandon Gilbert http://fb.com/brandongilberto
Peter Parkour http://fb.com/ththeSpectacularSpiderMan
Michelle Cormier http://instagram.com/Angelmichellec
Elise Lauren Cosplay http://fb.com/EliseLaurenCosplay
Symbiote Spidey http://fb.com/symbiotespidey1
Tumbling Cosplay http://fb.com/tumblingcosplay
Symbiotes Unleashed http://fb.com/pages/SymbiotesUnleashed/357445717751436
The Symbol of Hope Cosplay http://instagram.com/thesymbolofhope
Christian Perera http://instagram.com/cperera_
Camera by Marston Thursby and Thomas Napper http://youtube.com/napperFTW
Production Assistant: Laura Nemeth http://fb.com/theSuperheroineVillianessOfDundasSquare
Directed by Sean Ward

LET’S GET SOCIAL:
http://fb.com/TheSeanWardShow
http://twitter.com/seanward
http://instagram.com/seanward
SUBSCRIBE for geeky \u0026 Comic Conthemed videos every FRIDAY! http://bit.ly/SWsubscribe
3D animated logo by GM3 http://youtube.com/GM3beats

นอกจากการดูบทความนี้แล้ว คุณยังสามารถดูข้อมูลที่เป็นประโยชน์อื่นๆ อีกมากมายที่เราให้ไว้ที่นี่: ดูเพิ่มเติม

Spider-Man: Spider-Verse Flash Mob Prank

Маша и Медведь (Masha and The Bear) – Приятного аппетита (24 Серия)


Подпишись на Машу в Инстаграм: http://instagram.com/mashaandthebear/
http://youtube.com/MashaBearEN now watch in english!
http://mashabear.com – Masha and The Bear official website
Masha And The Bear Facebook http://facebook.com/MashaAndTheBear

RU: Маша и Медведь – Приятного аппетита (Серия 24)
К Медведю снова приезжает его дальний родственник – Панда. Они начинают лепить китайские пельмени, но тут появляется неугомонная Маша, у которой, как всегда, собственные способы приготовления. Так обычная готовка превращается в весёлый кулинарный мастеркласс!
EN: Masha and The Bear Bon appétit (Episode 24)
Panda the Bear’s distant relative pays one more visit to the Bear. They start making Chinese dumplings, but then Masha appears, with her own methods of cooking. And a simple cooking turns into a culinary master class with butterflies!
http://goo.gl/UI7Ed7 watch all episodes

See also  [NEW] “มิยาโมโต้ มุซาชิ” จอมดาบแห่งวิถีปัจเจกชน | มูซาชิ ซามูไร - Nangdep.vn

Маша и Медведь (Masha and The Bear) - Приятного аппетита (24 Серия)

เทคนิคการเรียกใช้อีโมจิน่ารักๆ ในคอมพิวเตอร์ window 10


อีโมจิ window10 computer เทคนิคในการเรียกใช้อีโมจิ น่ารักๆ ในคอมพิวเตอร์ window10 มาชมกันดูครับ

เทคนิคการเรียกใช้อีโมจิน่ารักๆ ในคอมพิวเตอร์ window 10

खिलौना कारों के साथ बच्चों के रंग सिखाने! (HINDI)


खिलौना कारों के साथ बच्चों के रंग सिखाने! बच्चों के लिए सीखने का सबसे अच्छा वीडियो: रंग, गिनती और छंटाई जानें!पूर्वस्कूली खिलौने के साथ खेलते हैं! बच्चों की सीखने वीडियो: जानें रंग, गिनती और वर्गीकृत!बच्चों के लिए मज़ा कार खिलौने के साथ खेलो! आइए बच्चों को सिखाएं मेलिसा \u0026 डौग की फन नेस्टिंग टॉय कारों के साथ ।इन रंगीन खिलौना कारों छोटी से सबसे बड़ी से आदेश दिया है और प्रत्येक बच्चों को जानने के लिए एक इसी संख्या है ।चलो यह घोंसले के गैरेज के साथ प्रत्येक कार गठबंधन । यह खिलौना कार और गेराज सेट में मदद करता है बच्चों के आकार और वर्गीकरण की तरह अवधारणाओं को शुरू करने से उनके रंग और संख्या सीखने ।इन मज़ा खिलौने के साथ खेलने के लिए बहुत मज़ा कर रहे हैं और हम अपने बच्चे को प्यार करते हैं और देखते समय सीखना होगा उम्मीद है!

खिलौना कारों के साथ बच्चों के रंग सिखाने! (HINDI)

GUESS THAT 17 KPOP SONGS THE EMOJI 💙 | เกมส์ทายเพลงจากอิโมจิ💛 #GAMEKPOP


GUESS THAT 17 KPOP SONGS THE EMOJI 💙 | เกมส์ทายเพลงจากอิโมจิ💛 #GAMEKPOP

นอกจากการดูบทความนี้แล้ว คุณยังสามารถดูข้อมูลที่เป็นประโยชน์อื่นๆ อีกมากมายที่เราให้ไว้ที่นี่: ดูบทความเพิ่มเติมในหมวดหมู่Wiki

ขอบคุณมากสำหรับการดูหัวข้อโพสต์ vbf 0b

Leave a Reply

Your email address will not be published.