hex檔案格式

2021-08-03 07:12:29 字數 2112 閱讀 3666

hex檔案是可以燒寫到微控制器中,被微控制器執行的一種檔案格式,生成hex檔案的方式由很多種,可以通過不同的編譯器將c程式或者匯程式設計序編譯生成hex。 

hex檔案如果用特殊的程式來檢視(一般記事本就可以實現)。開啟後可發現,整個檔案以行為單位,每行以冒號開頭,內容全部為16進製製碼(以ascii碼形式顯示)。hex檔案可以按照如下的方式進行拆分來分析其中的內容: 

例如: 

:020000040000fa , 我把它看做 0x02 0x00 0x00 0x04 0x00 0x00 0xfa 

第乙個 0x02 為資料長度。 

緊跟著後面的0x00 0x00 為位址。 

再後面的0x04為資料型別,型別共分以下幾類: 

'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//開始線性位址記錄 

然後,接著0x04後面的兩個 0x00 0x00就是資料。最後乙個0xfa是校驗碼。 

hex檔案的每一行都是這樣的格式: 

<0x3a>

[資料長度1byte]

[資料位址2byte]

[資料型別1byte]

[資料nbyte]

[校驗1byte]

<0x0d>

<0x0a>

在例如: 

:1000000018f09fe518f09fe518f09fe518f09fe5c0 

按照上面的資料行格式分析如下: 

<0x3a>

[資料長度1byte]

10(十六進製制)

[資料位址2byte]

00 00

[資料型別1byte]

00[資料nbyte]

18f09fe518f09fe518f09fe518f09fe5

[校驗1byte]

c0<0x0d>

<0x0a>

每行中的資料並不是一定有的,第二個位元組資料長度為0,那麼這行就沒有資料。 

由於每行標識資料位址的只有2byte,所以最大只能到64k,為了可以儲存高位址的資料,就有了extended linear address record。如果這行的資料型別是0x04,那麼,這行的資料就是隨後資料的基位址。例如: 

:020000040004f6 

:1000000018f09fe518f09fe518f09fe518f09fe5c0 

:1000100018f09fe5805f20b9f0ff1fe518f09fe51d 

第一行,是extended linear address record,裡面的資料,也就是基位址是0x0004,第二行是data record,裡面的位址值是0x0000。那麼資料18f09fe518f09fe518f09fe518f09fe5要寫入flash中的位址為 (0x0004 << 16) | 0x0000,也就是寫入flash的0x40000這個位址。同樣,第三行的資料的寫入位址為0x40010。當乙個hex檔案的資料超過64k的時候,檔案中就會出現多個extended linear address record。 

end of file record 行是每乙個hex檔案的最後一行。例如: 

:00000001ff 

這樣的一行資料內容是固定的,資料長度為0,位址為0。 

校驗值:每一行的最後乙個值為此行資料的校驗和。例如: 

:1000000018f09fe518f09fe518f09fe518f09fe5c0 這行中的 0xc0 

:1000100018f09fe5805f20b9f0ff1fe518f09fe51d 這行中的 0x1d 

校驗和的演算法為:計算從0x3a 以後(不包括0x3a)的所有各位元組的和模256的餘數的補碼即是校驗位元組。即各位元組二進位制算術和,不計超過256的溢位值,然後用0x100減去這個算數累加和,得出得值就是此行得校驗和。

**:   在此感謝!!!

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