ihex文件格式介紹

Intel HEX(ihex)是一種廣泛用于微控制器和嵌入式系統(tǒng)編程的文件格式,主要用于存儲(chǔ)可執(zhí)行機(jī)器代碼或程序數(shù)據(jù)。這種格式簡單、易讀,通常由十六進(jìn)制編碼表示二進(jìn)制數(shù)據(jù)。以下是對(duì) Intel HEX 文件格式的詳細(xì)介紹。

1. 基本結(jié)構(gòu)

Intel HEX 文件由多行記錄組成,每行記錄稱為“記錄行”,以 ASCII 字符表示,每一行都遵循以下格式:

:LLAAAATT[DATA]CC

:冒號(hào) (0x3A): 每行記錄的開頭,表示該行為一條有效的記錄。
LL (2 字節(jié)): 數(shù)據(jù)字節(jié)數(shù)(一個(gè)記錄行中有效數(shù)據(jù)的字節(jié)數(shù),范圍 0~255)。
AAAA (4 字節(jié)): 數(shù)據(jù)的起始地址,表示當(dāng)前記錄中數(shù)據(jù)存儲(chǔ)在目標(biāo)內(nèi)存的地址偏移量。
TT (2 字節(jié)): 記錄類型,表示記錄的用途(見記錄類型說明)。
[DATA] (2×LL 字節(jié)): 數(shù)據(jù)內(nèi)容,十六進(jìn)制編碼。
CC (2 字節(jié)): 校驗(yàn)和,確保數(shù)據(jù)傳輸?shù)耐暾浴?/p>

2. 記錄類型

TT 字段表示記錄的類型,常見的類型如下:
值 (TT) 名稱 說明
00 數(shù)據(jù)記錄 (Data Record) 包含實(shí)際的數(shù)據(jù),用于加載到內(nèi)存中的目標(biāo)地址。
01 文件結(jié)束記錄 (EOF) 指示文件結(jié)束,沒有數(shù)據(jù),僅用于標(biāo)記結(jié)束。
02 擴(kuò)展段地址記錄 提供 16 位段基址,允許表示超過 64KB 的地址空間。
04 擴(kuò)展線性地址記錄 提供 32 位地址的高 16 位,適用于 32 位地址空間。
05 起始線性地址記錄 指示代碼執(zhí)行的起始地址,通常用于指定啟動(dòng)向量地址。

3. 詳細(xì)字段解釋

  1. 數(shù)據(jù)字節(jié)數(shù)(LL)

    表示當(dāng)前記錄中 [DATA] 的長度,單位為字節(jié),如果沒有數(shù)據(jù),則 LL 為 00。

  2. 地址字段(AAAA)

    用于指定數(shù)據(jù)的存儲(chǔ)地址,對(duì)于擴(kuò)展段地址記錄和擴(kuò)展線性地址記錄,這一字段通常為 0000,地址信息通過擴(kuò)展記錄提供。

  3. 校驗(yàn)和(CC)

校驗(yàn)和通過以下公式計(jì)算:

1. 計(jì)算從 LL 到 [DATA] 字段所有字節(jié)的和;
2. 取此和的最低字節(jié)(低 8 位);
3. 用 0x100 減去上述結(jié)果的低字節(jié),即:
校驗(yàn)和=0x100?((LL+AAAA+TT+DATA 字節(jié)總和) & 0xff)

接收方會(huì)驗(yàn)證校驗(yàn)和是否正確,確保數(shù)據(jù)未損壞。

4. 舉例說明

以下是一個(gè)典型的 Intel HEX 文件示例:

:10000000214601360121470136007EFE09D2190140
:00000001FF

解析第一行:
:10010000214601360121470136007EFE09D2190140
:(冒號(hào)): 開頭符號(hào)。
10: 數(shù)據(jù)字節(jié)數(shù)(16 字節(jié))。
0000: 起始地址 0x0000。
00: 記錄類型(數(shù)據(jù)記錄)。
214601360121470136007EFE09D21901: 數(shù)據(jù)內(nèi)容,共16個(gè)字節(jié)數(shù)據(jù)(從左到右默認(rèn)是MSB)。
40: 校驗(yàn)和。

解析最后一行:
:00000001FF
:(冒號(hào)): 開頭符號(hào)。
00: 數(shù)據(jù)字節(jié)數(shù)(0字節(jié))。
0000: 起始地址 0x0000。
01: 文件結(jié)束記錄 (EOF) 指示文件結(jié)束。
FF: 校驗(yàn)和。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 本文是根據(jù)維基百科及其他網(wǎng)絡(luò)資源,經(jīng)自己理解后做的總結(jié)。S19文件格式的由來及介紹可自行查看維基,詳見維基百科:h...
    L_Kian閱讀 11,097評(píng)論 0 1
  • HEX 文件是可以燒錄到 MCU 中,被 MCU 執(zhí)行的一種文件格式。如果用記事本打開可發(fā)現(xiàn),整個(gè)文件以行為單位,...
    開著保時(shí)捷堵你家門口閱讀 3,278評(píng)論 0 0
  • TIFF 文件格式 本文檔基于 TIFF version 6.0 描述附錄:TIFF 規(guī)范 版本6.0.pdf ...
    雷震西山閱讀 12,539評(píng)論 0 5
  • BMP文件格式,又稱為Bitmap(位圖)或是DIB(Device-Independent Device,設(shè)備無關(guān)...
    我是嘻哈大哥閱讀 5,162評(píng)論 0 1
  • 要書寫二進(jìn)制(十六進(jìn)制)文件,應(yīng)該準(zhǔn)備好一些工具,比如我自己用的是VC++,因?yàn)閷W(xué)習(xí)MIDI格式無非是想寫它的軟件...
    錢鑫_9771閱讀 1,604評(píng)論 0 2

友情鏈接更多精彩內(nèi)容