




已閱讀5頁(yè),還剩2頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Intel HEX格式說明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)開始,ASCII碼為0x3A,以一個(gè)回車和一個(gè)換行結(jié)束,回車的ASCII碼為0x0d,換行的ASCII碼為0x0a 。一個(gè)Intel HEX文件可以包含任意多的十六進(jìn)制記錄,每一行為一條記錄。每條記錄有六個(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é)的描述: : 冒號(hào)是每一條Intel HEX記錄開始的標(biāo)志 ll 是這條記錄的長(zhǎng)度域,它表示INFO or DATA域dd的字節(jié)bytes個(gè)數(shù) aaaa 是地址域,它表示數(shù)據(jù)的起始地址 tt 表示這條HEX記錄的類型,有6種類型00 -數(shù)據(jù)記錄 Data Record (8-, 16-, or 32-bit formats)01 -文件結(jié)束記錄 End 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 是數(shù)據(jù)域,表示一個(gè)字節(jié)的數(shù)據(jù),一個(gè)記錄可能有多個(gè)數(shù)據(jù)字節(jié),長(zhǎng)度域ll域的數(shù)值大小說明了數(shù)據(jù)域字節(jié)數(shù)。 cc 是效驗(yàn)和域,表示記錄的效驗(yàn)和。計(jì)算方法是將本條記錄冒號(hào)開始后的所有字母對(duì)(不包括本效驗(yàn)字本身和冒號(hào))所表示的十六進(jìn)制數(shù)字都加起來然后模除256得到余數(shù),最后求出余數(shù)的補(bǔ)碼即是本效驗(yàn)字節(jié)cc.必須注意的是,此處的補(bǔ)碼是將余數(shù)的8bit二進(jìn)制數(shù)所有位取反,然后加1。也就是最高位不管是0還是1,都要取反。某一條記錄的校驗(yàn)和計(jì)算過程:第一步,求該行各字節(jié)數(shù)字的和(不包括冒號(hào),不包括最后一個(gè)字節(jié)即校驗(yàn)和本身)第二步,模除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)為起始標(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ù)字來表示數(shù)據(jù)域的字節(jié)個(gè)數(shù)。最大值為0xFF或 H 4646 (十進(jìn)制255)。LOAD OFFSET該區(qū)域使用4個(gè)ASCII編碼的16進(jìn)制數(shù)字來表示數(shù)據(jù)域的第一個(gè)數(shù)據(jù)存放的偏移地址。RECTYPASCII編碼字符為00,其16進(jìn)制編碼為H3030,它指示該文件記錄類型為數(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)存中的起始地址. OFFSET只用于數(shù)據(jù)記錄。其他類型的記錄中,不使用這個(gè)域,應(yīng)該被編碼為4個(gè)ASICC碼0000或者030303030H。00 是記錄類型,00表示是一個(gè)數(shù)據(jù)記錄787F 到 036B 是數(shù)據(jù)域8D 是此條記錄的效驗(yàn)和校驗(yàn)和計(jì)算過程:第一步,求各字節(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 = 8h8D3.2.文件結(jié)束記錄01(8-, 16-, or 32-bit formats)一個(gè)Intel HEX文件必須有且僅有一條文件結(jié)束記錄,其類型域必須是01。沒有數(shù)據(jù)即長(zhǎng)度域?yàn)?0,數(shù)據(jù)域沒有。該記錄必須是文件的最后一行,每個(gè)文件有且僅有一條文件結(jié)束記錄。通常一條文件結(jié)束記錄除了類型域(01),校驗(yàn)和域,其他域都為0,例如 :00000001FF00是記錄中數(shù)據(jù)字節(jié)的數(shù)目0000這個(gè)地址對(duì)于EOF記錄來說無任何意義01記錄類型是01(文件結(jié)束記錄標(biāo)示)FF是效驗(yàn)和計(jì)算如下01h + NOT( (00h + 00h + 00h + 01h) mod 100h).字符:llaaaattcc英文描述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ū)域,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ì)算出來,為HFF。3.3.Extended Segment Address Record02 (16- or 32-bit formats)字符:llaaaattddcc區(qū)域冒號(hào)為起始標(biāo)志長(zhǎng)度域length地址域address類型域type數(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ù)字來表示數(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,它指示該文件記錄類型為擴(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 是高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ò)展線性地址下面舉例說明這個(gè)過程從數(shù)據(jù)記錄的地址域得到地址 2462從擴(kuò)展線性地址記錄的地址域得到地址 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 是地址域,在擴(kuò)展段地址記錄中,這個(gè)域總是000002 是記錄類型02(擴(kuò)展段地址的標(biāo)示)1200 是該段的地址EA 是效驗(yàn)和計(jì)算如下:01h + NOT(02h +
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 中學(xué)2025年寒假工作計(jì)劃
- 國(guó)家健康教育特色學(xué)校計(jì)劃
- 放化療護(hù)理常規(guī)
- 編譯打包部署培訓(xùn)
- 左側(cè)腹股溝腫物鑒別診斷
- 小腦腫瘤的臨床診療策略
- 腎臟內(nèi)科業(yè)務(wù)查房
- 公交安全生產(chǎn)月
- 【酒泉】2025年甘肅酒泉市瓜州縣事業(yè)單位招聘21人筆試歷年典型考題及考點(diǎn)剖析附帶答案詳解
- 幼兒教學(xué)多媒體課件
- 新生兒腹脹的觀察及護(hù)理
- SJG85-2020邊坡工程技術(shù)標(biāo)準(zhǔn)
- 2024年上海浦東新區(qū)公辦學(xué)校儲(chǔ)備教師招聘筆試真題
- 項(xiàng)目總工聘用合同書
- 安徽大學(xué)專職輔導(dǎo)員招聘筆試真題2024
- 2025至2030中國(guó)城市公共交通行業(yè)深度發(fā)展研究與企業(yè)投資戰(zhàn)略規(guī)劃報(bào)告
- 2025春季學(xué)期國(guó)開電大本科《管理英語4》一平臺(tái)機(jī)考真題及答案(第八套)
- 2025屆上海市中考語文真題作文題目解析+范文
- 2025年全國(guó)普通高校招生全國(guó)統(tǒng)一考試數(shù)學(xué)試卷(新高考Ⅰ卷)含答案
- 2025年河南省豫地科技集團(tuán)有限公司社會(huì)招聘169人筆試參考題庫(kù)附帶答案詳解析集合
- DZ/T 0269-2014地質(zhì)災(zāi)害災(zāi)情統(tǒng)計(jì)
評(píng)論
0/150
提交評(píng)論