HEX文件和BIN文件格式的區別

1.HEX文件是包括地址信息的,而BIN文件格式只包括了數據自己 基礎

在燒寫或下載HEX文件的時候,通常都不須要用戶指定地址,由於HEX文件內部的信息已經包括了地址。而燒寫BIN文件的時候,用戶是必定須要指定地址信息的。 擴展

2.BIN文件格式 下載

對二進制文件而言,其實沒有」格式」。文件只是包括了純粹的二進制數據。 二進制

3.HEX文件格式 數據

HEX文件都是由記錄(RECORD)組成的。在HEX文件裏面,每一行表明一個記錄。記錄的基本格式爲: 文件

+---------------------------------------------------------------+
         |   RECORD  | RECLEN |  LOAD  | RECTYPE | INFO or DATA | CHKSUM |
         |  MARK ':' |        | OFFSET |         |              |        |
         +---------------------------------------------------------------+
         |  1-byte   | 1-byte | 2-byte | 1-byte  |    n-byte    | 1-byte |
         +---------------------------------------------------------------+ co

記錄類型包括: 字符

'00' Data Rrecord:用來記錄數據,HEX文件的大部分記錄都是數據記錄
'01' End of File Record: 用來標識文件結束,放在文件的最後,標識HEX文件的結尾
'04' Extended Linear Address Record: 用來標識擴展線性地址的記錄
'02' Extended Segment Address Record: 用來標識擴展段地址的記錄
在上面的後2種記錄,都是用來提供地址信息的。每次碰到這2個記錄的時候,均可以根據記錄計算出一個「基」地址。

對於後面的數據記錄,計算地址的時候,都是以這些「基」地址爲基礎的。

數據記錄的具體格式:

+---------------------------------------------------------------+
         |   RECORD  | RECLEN |  LOAD  | RECTYPE | INFO or DATA | CHKSUM |
         |  MARK ':' |        | OFFSET |  '00'   |              |        |
         +---------------------------------------------------------------+
         |  1-byte   | 1-byte | 2-byte | 1-byte  |    n-byte    | 1-byte |
         +---------------------------------------------------------------+        

看個例子:

:020000040000FA
:10000400FF00A0E314209FE5001092E5011092E5A3
:00000001FF
對上面的HEX文件進行分析:

第1條記錄的長度爲02,LOAD OFFSET爲0000,RECTYPE爲04,說明該記錄爲擴展段地址記錄。數據爲0000,校驗和爲FA。從這個記錄的長度和數據,咱們能夠計算出一個基地址,這個地址爲0X0000。後面的數據記錄都以這個地址爲基地址。

第2條記錄的長度爲10(16),LOAD OFFSET爲0004,RECTYPE爲00,說明該記錄爲數據記錄。數據爲FF00A0E314209FE5001092E5011092E5,共16個BYTE。這個記錄的校驗和爲A3。此時的基地址爲0X0000,加上OFFSET,這個記錄裏的16BYTE的數據的起始地址就是0x0000 + 0x0004 = 0x0004.

第3條記錄的長度爲00,LOAD OFFSET爲0000,TYPE = 01,校驗和爲FF。說明這個是一個END OF FILE RECORD,標識文件的結尾。

在上面這個例子裏,實際的數據只有16個BYTE:FF00A0E314209FE5001092E5011092E5,其起始地址爲0x4

4.HEX文件和BIN文件大小有區別

HEX文件是用ASCII來表示二進制的數值。例如通常8-BIT的二進制數值0x3F,用ASCII來表示就須要分別表示字符'3'和字符'F',每一個字符須要一個BYTE,因此HEX文件須要 > 2倍的空間。

對一個BIN文件而言,你查看文件的大小就能夠知道文件包括的數據的實際大小。而對HEX文件而言,你看到的文件大小並非實際的數據的大小。一是由於HEX文件是用ASCII來表示數據,二是由於HEX文件自己還包括別的附加信息。

相關文章
相關標籤/搜索