Intel HEX格式說(shuō)明_第1頁(yè)
Intel HEX格式說(shuō)明_第2頁(yè)
Intel HEX格式說(shuō)明_第3頁(yè)
Intel HEX格式說(shuō)明_第4頁(yè)
Intel HEX格式說(shuō)明_第5頁(yè)
已閱讀5頁(yè),還剩2頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、Intel HEX格式說(shuō)明Intel HEX文件是記錄文本行的ASCII文本文件。后綴為.hex在Intel HEX文件中,每一行是一個(gè)HEX記錄,它由十六進(jìn)制數(shù)組成的機(jī)器碼或者數(shù)據(jù)常量。Intel HEX文件經(jīng)常被用于將程序或數(shù)據(jù)傳輸存儲(chǔ)到ROM,EPROM。大多數(shù)編程器和模擬器使用Intel HEX文件。1.記錄詳解Intel HEX文件由若干個(gè)數(shù)據(jù)記錄組成,每個(gè)字符都是ASCII字符表示。每一條數(shù)據(jù)記錄以冒號(hào)開(kāi)始,ASCII碼為0x3A,以一個(gè)回車和一個(gè)換行結(jié)束,回車的ASCII碼為0x0d,換行的ASCII碼為0x0a 。一個(gè)Intel HEX文件可以包含任意多的十六進(jìn)制記錄,每一行為

2、一條記錄。每條記錄有六個(gè)區(qū)域。通常記錄的格式如下圖所示:記錄的一般結(jié)構(gòu)下面是一個(gè)記錄的格式。:llaaaattdd.cc字符:llaaaattddcc英文描述RECORDMARKLOADRECLENOFFSETRECTYPINFOorDATACHKSUM區(qū)域冒號(hào)為起始標(biāo)志長(zhǎng)度域length地址域address類型域type數(shù)據(jù)域data校驗(yàn)和域check sum字節(jié)長(zhǎng)度1 byte1 byte2 bytes1 byteN bytes1 byte每一組字母是獨(dú)立的一個(gè)域,每一個(gè)字母是一個(gè)十六進(jìn)制數(shù)字,每一域至少由兩個(gè)十六進(jìn)制數(shù)字組成,下面是字節(jié)的描述:Ø :    

3、 冒號(hào)是每一條Intel HEX記錄開(kāi)始的標(biāo)志Ø ll 是這條記錄的長(zhǎng)度域,它表示INFO or DATA域dd的字節(jié)bytes個(gè)數(shù)Ø aaaa 是地址域,它表示數(shù)據(jù)的起始地址<如果是數(shù)據(jù)記錄,這表示將要燒錄的這條記錄中的數(shù)據(jù)在EPROM中的偏移地址,對(duì)于不支持?jǐn)U展段地址和擴(kuò)展線性地址的,如89C51,這就是此條記錄的起始地址>Ø tt 表示這條HEX記錄的類型,有6種類型00 -數(shù)據(jù)記錄        Data Record (8-, 16-, or 32-bit formats)01 -文件結(jié)束記錄 End

4、of File Record(8-, 16-, or 32-bit formats)02 -擴(kuò)展段地址記錄 Extended Segment Address Record(16- or 32-bit formats)03-起始段地址記錄 Start Segment Address Record(16- or 32-bit formats)04-擴(kuò)展線性地址記錄 Extended Linear Address Record(32-bit format only)05-起始線性地址記錄 Start Linear Address Record(32-bit format only)Ø dd

5、   是數(shù)據(jù)域,表示一個(gè)字節(jié)的數(shù)據(jù),一個(gè)記錄可能有多個(gè)數(shù)據(jù)字節(jié),長(zhǎng)度域ll域的數(shù)值大小說(shuō)明了數(shù)據(jù)域字節(jié)數(shù)。Ø cc   是效驗(yàn)和域,表示記錄的效驗(yàn)和。計(jì)算方法是將本條記錄冒號(hào)開(kāi)始后的所有字母對(duì)(不包括本效驗(yàn)字本身和冒號(hào))所表示的十六進(jìn)制數(shù)字<一對(duì)字母表示一個(gè)十六進(jìn)制數(shù)以字節(jié)為單位>都加起來(lái)然后模除256得到余數(shù),最后求出余數(shù)的補(bǔ)碼即是本效驗(yàn)字節(jié)cc.必須注意的是,此處的補(bǔ)碼是將余數(shù)的8bit二進(jìn)制數(shù)所有位取反,然后加1。也就是最高位不管是0還是1,都要取反。某一條記錄的校驗(yàn)和計(jì)算過(guò)程:第一步,求該行各字節(jié)數(shù)字的和(不包括冒號(hào),不包括最后一個(gè)字節(jié)即校驗(yàn)和

6、本身)第二步,模除256第三步,各位取反第四步,加1即得到校驗(yàn)和<例如: 一條記錄為 :0300000002005E9D校驗(yàn)和cc=0x01+NOT(0x03+0x00+0x00+0x00+0x02+0x00+0x5E) % 0x100)=0x01+NOT(0x63 % 0x100)=0x01+NOT(0x63)=8b1+8b1001_1100=8b1001_1101=8h9D3.1.數(shù)據(jù)記錄00 (8-, 16-, or 32-bit formats)字符:llaaaattddcc英文描述RECORDMARKRECLENLOADOFFSETRECTYP00DATACHKSUM區(qū)域冒號(hào)為

7、起始標(biāo)志長(zhǎng)度域length地址域address類型域type數(shù)據(jù)域data校驗(yàn)和域check sumASCII:固定為0016進(jìn)制3A3030字節(jié)長(zhǎng)度1 byte1 byte2 bytes1 byteN bytes1 byteRECORD MARK該區(qū)域?yàn)椋旱腁SCII編碼,其16進(jìn)制數(shù)為8h3A。RECLEN該區(qū)域使用2個(gè)ASCII編碼的16進(jìn)制數(shù)字來(lái)表示數(shù)據(jù)域的字節(jié)個(gè)數(shù)。最大值為0xFF或 H 4646 (十進(jìn)制255)。LOAD OFFSET該區(qū)域使用4個(gè)ASCII編碼的16進(jìn)制數(shù)字來(lái)表示數(shù)據(jù)域的第一個(gè)數(shù)據(jù)存放的偏移地址。RECTYPASCII編碼字符為00,其16進(jìn)制編碼為H3030,

8、它指示該文件記錄類型為數(shù)據(jù)記錄。CHKSUM 校驗(yàn)和為RECLEN, LOAD OFFSET, RECTYP, 和 DATA 區(qū)域以字節(jié)為單位,求和,模除256,取反,加1。比如下面的一條數(shù)據(jù)記錄:0C032400787FE4F6D8FD75813402036B8D0C   LOAD RECLEN是此行記錄數(shù)據(jù)的字節(jié)數(shù)目,表示記錄的數(shù)據(jù)域有12個(gè)字節(jié)的INFO或者DATA。最大為0xFF或者2550324   是本條記錄的數(shù)據(jù)在內(nèi)存<將要燒寫的eprom地址>中的起始地址. OFFSET只用于數(shù)據(jù)記錄。其他類型的記錄中,不使用這個(gè)域,應(yīng)該被編碼為4個(gè)ASICC碼

9、0000或者030303030H。00     是記錄類型,00表示是一個(gè)數(shù)據(jù)記錄787F 到 036B 是數(shù)據(jù)域8D   是此條記錄的效驗(yàn)和校驗(yàn)和計(jì)算過(guò)程:第一步,求各字節(jié)的和(不包括冒號(hào),不包括最后一個(gè)字節(jié)即校驗(yàn)和本身) 0C+03+24+00+78+7F+E4+F6+D8+FD+75+81+34+02+03+6B = 11h673第二步,模除256 11h673 mod 9h100 = 8h73第三步,各位取反 not (8h73) = not(8b0111_0011) = 8h1000_1100 = 8h8C第四步,加1即得到校驗(yàn)和 8h8C + 1 =

10、8h8D3.2.文件結(jié)束記錄01(8-, 16-, or 32-bit formats)一個(gè)Intel HEX文件必須有且僅有一條文件結(jié)束記錄,其類型域必須是01。沒(méi)有數(shù)據(jù)即長(zhǎng)度域?yàn)?0,數(shù)據(jù)域沒(méi)有。該記錄必須是文件的最后一行,每個(gè)文件有且僅有一條文件結(jié)束記錄。通常一條文件結(jié)束記錄除了類型域(01),校驗(yàn)和域,其他域都為0,例如 :00000001FF00是記錄中數(shù)據(jù)字節(jié)的數(shù)目0000這個(gè)地址對(duì)于EOF記錄來(lái)說(shuō)無(wú)任何意義01記錄類型是01(文件結(jié)束記錄標(biāo)示)FF是效驗(yàn)和計(jì)算如下01h + NOT( (00h + 00h + 00h + 01h) mod 100h).字符:llaaaattcc英

11、文描述RECORDMARKRECLEN00LOADOFFSET0000RECTYP01CHKSUM區(qū)域冒號(hào)為起始標(biāo)志長(zhǎng)度域length地址域address類型域type校驗(yàn)和域check sumASCII:固定為00固定為0000固定為01FF16進(jìn)制3A30303030303030314646字節(jié)長(zhǎng)度1 byte1 byte2 bytes1 byte1 byteRECORD MARK該區(qū)域?yàn)椋旱腁SCII編碼,其16進(jìn)制數(shù)為H3A。RECLEN由于文件結(jié)束記錄不包含任何INFO或DATA,ASCII編碼字符為00,其16進(jìn)制編碼為H 3030。LOAD OFFSET由于文件結(jié)束記錄不使用該區(qū)

12、域,ASCII編碼字符為0000,其16進(jìn)制編碼為030303030HRECTYPASCII編碼字符為01,其16進(jìn)制編碼為H3031,它指示該文件記錄類型為文件結(jié)束記錄。CHKSUM校驗(yàn)和為RECLEN, LOAD OFFSET, 和 RECTYP 區(qū)域以字節(jié)為單位,求和,模除256,取反,加1。由于文件結(jié)束記錄各域都是靜止不變的,所以CHKSUM可以靜態(tài)計(jì)算出來(lái),為HFF。3.3.Extended Segment Address Record02 (16- or 32-bit formats)字符:llaaaattddcc區(qū)域冒號(hào)為起始標(biāo)志長(zhǎng)度域length地址域address類型域typ

13、e數(shù)據(jù)域data校驗(yàn)和域check sumASCII:0200000216進(jìn)制3A3032303030303032字節(jié)長(zhǎng)度1 byte1 byte2 bytes1 byteN bytes1 byteRECORD MARK該區(qū)域?yàn)椋旱腁SCII編碼,其16進(jìn)制數(shù)為H3A。RECLEN該區(qū)域使用2個(gè)ASCII編碼的16進(jìn)制數(shù)字來(lái)表示數(shù)據(jù)域的字節(jié)個(gè)數(shù)。最大值為0xFF或 4646H (十進(jìn)制255)。LOAD OFFSET由于擴(kuò)展段地址記錄不使用該區(qū)域,ASCII編碼字符為0000,其16進(jìn)制編碼為030303030HRECTYPASCII編碼字符為02,其16進(jìn)制編碼為H3032,它指示該文件記錄

14、類型為擴(kuò)展段地址記錄。CHKSUM 校驗(yàn)和為RECLEN, LOAD OFFSET, RECTYP, 和USBA區(qū)域以字節(jié)為單位,求和,模除256,取反,加1。3.4.擴(kuò)展線性地址記錄(HEX386)04擴(kuò)展線性地址記錄也可稱為 32位地址記錄 和   HEX386記錄,這個(gè)紀(jì)錄包含高16(16-31位)位數(shù)據(jù)地址,這種擴(kuò)展的線性記錄總是有兩個(gè)字節(jié)數(shù)據(jù),像下面這樣:02000004FFFFFC02     是記錄的數(shù)據(jù)字節(jié)數(shù)目0000   是地址域這在擴(kuò)展地址記錄中總是000004     是記錄類型04(擴(kuò)展地址記錄)FFFF &#

15、160; 是高16位地址FC     是記錄效驗(yàn)和,計(jì)算方法如下:        01h + NOT(02h + 00h + 00h + 04h + FFh + FFh)當(dāng)一個(gè)擴(kuò)展線性地址記錄被讀到后,擴(kuò)展線性地址記錄的數(shù)據(jù)區(qū)域?qū)⒈槐4娌?yīng)用到后面從Intel HEX文件中讀出的記錄,這個(gè)擴(kuò)展線性記錄一直有效,直到讀到下一個(gè)擴(kuò)展線性記錄.絕對(duì)內(nèi)存地址 = 數(shù)據(jù)記錄中的地址 + 移位后的擴(kuò)展線性地址下面舉例說(shuō)明這個(gè)過(guò)程從數(shù)據(jù)記錄的地址域得到地址           2462從擴(kuò)展線性地址

16、記錄的地址域得到地址   FFFF絕對(duì)內(nèi)存地址                           FFFF24623.5.擴(kuò)展段地址記錄 (HEX86) 02擴(kuò)展段地址記錄也被稱為 HEX86記錄,   包含 4-19位的數(shù)據(jù)地址段,這個(gè)擴(kuò)展段地址記錄總是有兩字節(jié)數(shù)據(jù),如下:020000021200EA02 是     記錄中的數(shù)據(jù)字節(jié)數(shù)目0000          

17、; 是地址域,在擴(kuò)展段地址記錄中,這個(gè)域總是000002           是記錄類型02(擴(kuò)展段地址的標(biāo)示)1200     是該段的地址EA     是效驗(yàn)和計(jì)算如下:01h + NOT(02h + 00h + 00h + 02h + 12h + 00h).當(dāng)擴(kuò)展段地址記錄被讀后,擴(kuò)展段地址將被存儲(chǔ)并應(yīng)用到以后從Intel HEX文件讀出的記錄,這個(gè)段地址一直有效直到讀到下一個(gè)擴(kuò)展段地址記錄絕對(duì)內(nèi)存地址 = 數(shù)據(jù)記錄中的地址 + 移位后的擴(kuò)展段地址數(shù)據(jù)記錄中的地址域       移位后擴(kuò)展段

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論