什麼是HEX檔案

2021-04-20 00:20:26 字數 3768 閱讀 1886

intel hex

檔案是由一行行符合intel hex檔案格式的文字所

構成的ascii文字檔案。在intel hex檔案中,每一行包含一

個hex記錄。

這些記錄由

對應機器語言

碼和/或常量

資料的十六進製制

編碼數字

組成。intel hex檔案通常用於

傳輸將被存於rom或者eprom中的程式和

資料。大多

數eprom

程式設計器或模擬器使用intel hex檔案。

記錄格式

intel hex由任意數量的十六進製制

記錄組成。每

個記錄包含5

個域,它們按以下格式排列:

:llaaaatt[dd...]cc

每一組字母對應一

個不同的域,每乙個字母

對應乙個十六

進製編碼的

數字。每一

個域由至少

兩個十六進製制

編碼數字組成,

它們構成乙個字

節,就像以下描述的那樣:

: 每個intel hex

記錄都由冒號開頭.

ll 是資料

長度域,它代表

記錄當中資料字

節(dd)

的數量.

aaaa 是位址域,它代表

記錄當中資料的起始位址.

tt 是代表hex記錄型別的域,

它可能是以下資料

當中的乙個:

00 – 數

據記錄01 – 檔案結

束記錄02 – 擴充套件段位址記錄

04 – 擴充套件

線性位址記錄

dd 是數

據域,它

代表乙個位元組

的資料.乙個記錄

可以有許多數

據位元組.記錄當中數

據位元組的數

量必須和數

據長度域(ll)中指定的數字相符.

cc 是校驗和域,它表示

這個記錄的校驗

和.校驗和的計

算是通過將記錄當

中所有十六進製制

編碼數字對的

值相加,以256為模

進行以下補足.

資料記錄intel hex檔案由任意數

量以回車換行符結

束的資料記錄組成.數

據記錄外觀如下:

:10246200464c5549442050524f46494c4500464c33

其中:10 是這個記錄當中資料字

節的數量.

2462 是資料將被下

載到儲存器當中的位址.

00 是記錄型別(

資料記錄)

464c…464c是資料.

33 是這個記錄的校驗和.擴充套件線

性位址記錄(hex386)擴充套件

線性位址

記錄也叫作32位位址

記錄或hex386記錄.

這些記錄包含

資料位址的高16位.擴充套件

線性位址

記錄總是有

兩個資料位元組,

外觀如下:

:02000004fffffc

其中:02 是這個記錄當中資料字

節的數量.

0000 是位址域,對於擴充套件

線性位址記錄,

這個域總是0000.

04 是記錄型別04(擴充套件

線性位址記錄)

ffff 是位址的高16位.

fc 是這個記錄的校驗和,

計算方法如下:

01h + not(02h + 00h + 00h + 04h + ffh + ffh).

當乙個擴充套件線

性位址記錄被讀

取,儲存於數

據域的擴充套件線

性位址被儲存,它被

應用於從intel hex檔案讀

取來的隨

後的記錄.線

性位址保持有效,直到

它被另外一

個擴充套件位址

記錄所改變.通過

把記錄當

中的位址域

與被移位的來自

擴充套件線性位址

記錄的位址

資料相加獲得

資料記錄的

絕對儲存器位址.

以下的例子演示了這個過程..來自數

據記錄位址域的位址2462擴充套件線

性位址記錄

的資料域+ ffff

------------

絕對儲存

器位址ffff2462 擴

展段位址記錄(hex86)

擴充套件段位址

記錄也叫hex86記錄,

它包括4-19位

資料位址段.

擴充套件段位址

記錄總是有

兩個資料位元組,

外觀如下:

:020000021200ea

其中:02 是記錄當中資料字

節的數量.

0000 是位址域.對於

擴充套件段位址記錄,

這個域總是0000.

02 是記錄型別02(

擴充套件段位址記錄)

1200 是位址段.

ea 是這個記錄的校驗和,

計算方法如下:

01h + not(02h + 00h + 00h + 02h + 12h + 00h).

當乙個擴

展段位址記錄被

讀取,儲存於

資料域的

擴充套件段位址被儲存,它被

應用於從intel hex檔案讀

取來的隨

後的記錄

.段位址保持有效,直到

它被另外一

個擴充套件位址

記錄所改變.通過

把記錄當

中的位址域

與被移位的來自

擴充套件段位址

記錄的位址

資料相加獲得

資料記錄的

絕對儲存器位址.

以下的例子演示了這個過程..來自數

據記錄位址域的位址2462

擴充套件段位址記錄資料域+  1200

---------

絕對儲存

器位址00014462 檔案

結束(eof)

記錄intel hex檔案必須

以檔案結

束(eof)

記錄結束.

這個記錄

的記錄類

型域的值必須

是01.eof

記錄外觀總是如下:

:00000001ff

其中:00 是記錄當中資料字

節的數量.

0000 是資料被**到存

儲器當中的位址.在檔案結束

記錄當中位址是

沒有意義被忽略的.0000h是典型的位址.

01 是記錄型別01(檔案

結束記錄)

ff 是

這個記錄的校驗

和,計算方法如下:

01h + not(00h + 00h + 00h + 01h).

intel hex檔案例子:

下面是乙個

完整的intel hex檔案的例子:

:10001300ac12ad13ae10af1112002f8e0e8f0f2244

:10000300e50b250df509e50a350cf5081200132259

:03000000020023d8

:0c002300787fe4f6d8fd7581130200031d

:10002f00eff88df0a4ffedc5f0cea42efeec88f016

:04003f00a42efe22cb

:00000001ff

HEX檔案格式

hex檔案格式描述 1intel hex檔案是由一行行符合intel hex檔案格式的文字所構成的ascii文字檔案。在intel hex檔案中,每一行包含乙個hex記錄。這些記錄由對應機器語言碼和 或常量資料的十六進製制編碼數字組成。intel hex檔案通常用於傳輸將被存於rom或者eprom中...

HEX檔案格式

nec微控制器編譯器pm 生成的燒錄檔案是hex檔案。hex檔案的intel格式 這是intel公司提出的按位址排列的資料資訊,資料寬度為位元組,所有資料使用16進製制數字表示.例子 10008000af5f67f0602703e0322cfa92007780c361 1000900089001c6...

hex檔案格式

hex檔案是可以燒寫到微控制器中,被微控制器執行的一種檔案格式,生成hex檔案的方式由很多種,可以通過不同的編譯器將c程式或者匯程式設計序編譯生成hex。hex檔案如果用特殊的程式來檢視 一般記事本就可以實現 開啟後可發現,整個檔案以行為單位,每行以冒號開頭,內容全部為16進製製碼 以ascii碼形...