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碼形...