如何讀懂hex文件.doc

如何讀懂hex文件.doc

ID:55925580

大小:26.50 KB

頁數(shù):4頁

時(shí)間:2020-06-15

如何讀懂hex文件.doc_第1頁
如何讀懂hex文件.doc_第2頁
如何讀懂hex文件.doc_第3頁
如何讀懂hex文件.doc_第4頁
資源描述:

《如何讀懂hex文件.doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、什么是IntelHEX文件格式IntelHEX文件是遵循IntelHEX文件格式的ASCII文本文件。在IntelHEX文件的每一行都包含了一個(gè)HEX記錄。這些記錄是由一些代表機(jī)器語言代碼和常量的16進(jìn)制數(shù)據(jù)組成的。IntelHEX文件常用來傳輸要存儲(chǔ)在ROM或者EPROM中的程序和數(shù)據(jù)。大部分的EPROM編程器能使用IntelHEX文件。IntelHEX由任意數(shù)量的十六進(jìn)制記錄組成。每個(gè)記錄包含5個(gè)域,它們按以下格式排列:StartCode?每個(gè)IntelHEX記錄都由冒號(hào)開頭Bytecount是數(shù)據(jù)長(zhǎng)度域,它代表記錄當(dāng)中數(shù)據(jù)字節(jié)的數(shù)量Addr

2、ess是地址域,它代表記錄當(dāng)中數(shù)據(jù)的起始地址Recordtype是代表HEX記錄類型的域,它可能是以下數(shù)據(jù)當(dāng)中的一個(gè):00-數(shù)據(jù)記錄01-文件結(jié)束記錄02-擴(kuò)展段地址記錄03-開始段地址記錄04-擴(kuò)展線性地址記錄05-開始線性地址記錄Data是數(shù)據(jù)域,一個(gè)記錄可以有許多數(shù)據(jù)字節(jié).記錄當(dāng)中數(shù)據(jù)字節(jié)的數(shù)量必須和數(shù)據(jù)長(zhǎng)度域中指定的數(shù)字相符Checksum是校驗(yàn)和域,它表示這個(gè)記錄的校驗(yàn)和.校驗(yàn)和的計(jì)算是通過將記錄當(dāng)中所有十六進(jìn)制編碼數(shù)字對(duì)的值相加,以256為模進(jìn)行以下補(bǔ)足。HEX文件以行為單位。每行以字符?‘:’(0x3a)開頭,以回車換行符0x0d,

3、0x0a為結(jié)束。每行開始和結(jié)束之間的所有內(nèi)容,都是以字符形式表現(xiàn)的。例如數(shù)據(jù)如果是?0x1A?,那么轉(zhuǎn)換到HEX格式的行里面就是0x310x41。如果數(shù)據(jù)是16bit的,例如地址,則先顯示高位,后顯示底位。例如?0x1234,轉(zhuǎn)換成HEX格式文件后變成?0x310x320x330x34,顯示出來以后就是1234。將數(shù)據(jù)部分內(nèi)容每2個(gè)字符看做一個(gè)HEX數(shù)據(jù),例如::020000040000FA,?我把它看做?0x020x000x000x040x000x000xFA第一個(gè)?0x02?為數(shù)據(jù)長(zhǎng)度。緊跟著后面的0x000x00?為地址。再后面的0x04為

4、數(shù)據(jù)類型,類型共分一下幾類:'00'DataRecord'01'EndofFileRecord'02'ExtendedSegmentAddressRecord'03'StartSegmentAddressRecord'04'ExtendedLinearAddressRecord'05'StartLinearAddressRecord???????然后,接著0x04后面的兩個(gè)?0x000x00就是數(shù)據(jù)。最后一個(gè)0xFA是校驗(yàn)碼。???????HEX文件的每一行都是這樣的格式:<0x3a>[數(shù)據(jù)長(zhǎng)度1Byte][數(shù)據(jù)地址2Byte][數(shù)據(jù)類型1Byt

5、e][數(shù)據(jù)nByte][校驗(yàn)1Byte]<0x0d><0x0a>?在例如::1000000018F09FE518F09FE518F09FE518F09FE5C0安裝上面的數(shù)據(jù)行格式分析如下:<0x3a>?[數(shù)據(jù)長(zhǎng)度1Byte]10[數(shù)據(jù)地址2Byte]0000[數(shù)據(jù)類型1Byte]00[數(shù)據(jù)nByte]18F09FE518F09FE518F09FE518F09FE5[校驗(yàn)1Byte]C0<0x0d>?<0x0a>??每行中的數(shù)據(jù)并不是一定有的,第二個(gè)直接的數(shù)據(jù)長(zhǎng)度為0,那么這行就沒有數(shù)據(jù)。由于每行標(biāo)識(shí)數(shù)據(jù)地址的只有2Byte,所以最大只能到64K

6、,為了可以保存更大數(shù)據(jù)地址數(shù)據(jù),就有了ExtendedLinearAddressRecord。如果這行的數(shù)據(jù)類型是0x04,那么,這行的數(shù)據(jù)就是隨后數(shù)據(jù)的基地址。例如::020000040004F6:1000000018F09FE518F09FE518F09FE518F09FE5C0:1000100018F09FE5805F20B9F0FF1FE518F09FE51D第一行,是ExtendedLinearAddressRecord,里面的基地址是0x0004,第二行是DataRecord,里面的地址值是0x0000。那么數(shù)據(jù)18F09FE518F

7、09FE518F09FE518F09FE5要寫入FLASH中的地址為(0x0004<<16)0x0000,也就是寫入FLASH的0x40000這個(gè)地址。同樣,第三行的數(shù)據(jù)的寫入地址為0x40010。當(dāng)一個(gè)HEX文件的數(shù)據(jù)超過64k的時(shí)候,文件中就會(huì)出現(xiàn)多個(gè)ExtendedLinearAddressRecord。EndofFileRecord?行是每一個(gè)HEX文件的最后一行。例如::00000001FF這樣的一行數(shù)據(jù)內(nèi)容是固定的,數(shù)據(jù)長(zhǎng)度為0,地址為0。?校驗(yàn)值:每一行的最后一個(gè)值為此行數(shù)據(jù)的校驗(yàn)和。例如::1000000018F09FE518F0

8、9FE518F09FE518F09FE5C0?這行中的?0xC0:1000100018F09FE5805F20B9F0FF1FE518F

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。