Hex檔案格式及其校驗演算法

2021-06-20 23:32:49 字數 1301 閱讀 7172

hex   檔案記錄格式如下: 

:aabbbbccdd......ddee 

其中:   表示行起始標誌

aa:表示本條記錄中的資料位元組數

bbbb:本條記錄中的資料在儲存區中的起始位址

cc:記錄型別,含義如下:        

'00' data record

'01' end of file record

'02' extended segment address record

'03' start segment address record

'04' extended linear address record

'05' start linear address record

dd......dd:表示資料位元組

ee:表示校驗和,具體演算法為 0x100-((0xaa+0xbb+0xbb+0xcc+0xdd+......+0xdd)%256)

示例::

020000040000fa , 

我把它看做

0x02 0x00 0x00 0x04 0x00 0x00 0xfa

其中:0x02:表示本記錄有效資料長度為0x02

0x0000:表示本條記錄在

0x04:表示本條記錄為

extended linear address record

接下來的兩個位元組表示有效資料

0xfa:表示校驗和 0xfa=0x100-(0x02+0x00+0x00+0x04+0x00+0x00)

最後一行為檔案結束標誌:

:00000001ff

hex實際占用儲存區大小計算辦法

hex實際大小=檔案結束標誌前面一條記錄的儲存起始位址+這條記錄的有效資料長度

相關校驗測試程式

:下面演算法實現記錄的校驗,校驗成功返回1,失敗返回0

bit analysehex(char hex

,int

len)

while

(i<

(len

-2))

;cc%

=256;

cc=0x100-cc;

temp[0]

=hex

[i++];

temp[1]

=hex

[i++];

sscanf(temp,

"%x"

,&data)

;return (cc=

=data)

?1:0;

}int _tmain(

int argc, _tchar* argv)

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