青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

山寨:不是最好的,是最適合我們的!歡迎體驗(yàn)山寨 中文版MSDN

Blog @ Blog

當(dāng)華美的葉片落盡,生命的脈絡(luò)才歷歷可見(jiàn)。 -- 聶魯達(dá)

常用鏈接

統(tǒng)計(jì)

積分與排名

BBS

Blog

Web

最新評(píng)論

什么是Intel HEX格式?

Intel HEX文件是記錄文本行的ASCII文本文件,在Intel HEX文件中,每一行是一個(gè)HEX記錄由十六進(jìn)制數(shù)組成的機(jī)器碼或者數(shù)據(jù)常量,Intel HEX文件經(jīng)常被用于將程序或數(shù)據(jù)傳輸存儲(chǔ)到ROM.EPROM,大多數(shù)編程器和模擬器使用Intel HEX文件.

記錄格式

一個(gè)Intel HEX文件可以包含任意多的十六進(jìn)制記錄,每條記錄有五個(gè)域,下面是一個(gè)記錄的格式.

:llaaaatt[dd...]cc

每一組字母是獨(dú)立的一域,每一個(gè)字母是一個(gè)十六進(jìn)制數(shù)字,每一域至少由兩個(gè)十六進(jìn)制數(shù)字組成,下面是字節(jié)的描述.

:冒號(hào)     是每一條Intel HEX記錄的開(kāi)始

ll 是這條記錄的長(zhǎng)度域,他表示數(shù)據(jù)(dd)的字節(jié)數(shù)目.

aaaa 是地址域,他表示數(shù)據(jù)的起始地址<如果是數(shù)據(jù)記錄,這表示將要燒錄的這條記錄中的數(shù)據(jù)在EPROM中的偏移地址,對(duì)于不支持?jǐn)U展段地址和擴(kuò)展線性地址的,如89C51,這就是此條記錄的起始地址>

tt 這個(gè)域表示這條HEX記錄的類(lèi)型,他有可能是下面這幾種類(lèi)型
00 ----數(shù)據(jù)記錄      
01 ----文件結(jié)束記錄
02 ----擴(kuò)展段地址記錄
04 ----擴(kuò)展線性地址記錄

dd   是數(shù)據(jù)域,表示一個(gè)字節(jié)的數(shù)據(jù),一個(gè)記錄可能有多個(gè)數(shù)據(jù)字節(jié),字節(jié)數(shù)目可以查看ll域的說(shuō)明

cc   是效驗(yàn)和域,表示記錄的效驗(yàn)和,計(jì)算方法是將本條記錄冒號(hào)開(kāi)始的所有字母對(duì)<不包括本效驗(yàn)字和冒號(hào)> 所表示的十六進(jìn)制數(shù)字<一對(duì)字母表示一個(gè)十六進(jìn)制數(shù),這樣的一個(gè)十六進(jìn)制數(shù)為一個(gè)字節(jié)>都加起來(lái)然后模除256得到的余數(shù)最后求出余數(shù)的補(bǔ)碼即是本效驗(yàn)字節(jié)cc.
<例如:
:0300000002005E9D
cc=0x01+NOT((0x03+0x00+0x00+0x00+0x02+0x00+0x5E)%0x100)=0x01+0x9C=0x9D

C語(yǔ)言描述:
UCHAR cc;
cc=(UCHAR)~(0x03+0x00+0x00+0x00+0x02+0x00+0x5E);
cc++;
>
數(shù)據(jù)記錄

Intel HEX文件由若干個(gè)數(shù)據(jù)記錄組成,一個(gè)數(shù)據(jù)記錄以一個(gè)回車(chē)和一個(gè)換行結(jié)束
<回車(chē)為0x0d換行為0x0a>

比如下面的一條數(shù)據(jù)記錄
:10246200464C5549442050524F46494C4500464C33

10   是此行記錄數(shù)據(jù)的字節(jié)數(shù)目
2462   是數(shù)據(jù)在內(nèi)存<將要燒寫(xiě)的eprom地址>中的起始地址
00     是記錄類(lèi)型00(是一個(gè)數(shù)據(jù)記錄)
464C 到 464C 是數(shù)據(jù)
33   是此行記錄的效驗(yàn)和

擴(kuò)展線性地址記錄(HEX386)
擴(kuò)展線性地址記錄也可稱(chēng)為 32位地址記錄   和   HEX386記錄,這個(gè)紀(jì)錄包含高16(16-31位)位數(shù)據(jù)地址,這種擴(kuò)展的線性記錄總是有兩個(gè)字節(jié)數(shù)據(jù),像下面這樣:

:02000004FFFFFC
02     是記錄的數(shù)據(jù)字節(jié)數(shù)目
0000   是地址域這在擴(kuò)展地址記錄中總是0000
04     是記錄類(lèi)型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ò)展線性地址


下面舉例說(shuō)明這個(gè)過(guò)程

從數(shù)據(jù)記錄的地址域得到地址           2462
從擴(kuò)展線性地址記錄的地址域得到地址   FFFF
絕對(duì)內(nèi)存地址                           FFFF2462

擴(kuò)展段地址記錄 (HEX86)

擴(kuò)展段地址記錄也被稱(chēng)為 HEX86記錄,   包含 4-19位的數(shù)據(jù)地址段,
這個(gè)擴(kuò)展段地址記錄總是有兩字節(jié)數(shù)據(jù),如下:

:020000021200EA
02 是     記錄中的數(shù)據(jù)字節(jié)數(shù)目
0000           是地址域,在擴(kuò)展段地址記錄中,這個(gè)域總是0000
02           是記錄類(lèi)型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ò)展段地址記錄中的地址域

下面舉例說(shuō)明這個(gè)過(guò)程

從數(shù)據(jù)記錄的地址域得到地址                   2 4 6 2
從擴(kuò)展段地址記錄的地址域得到地址           1 2 0 0
絕對(duì)內(nèi)存地址                         0 0 0 1 4 4 6 2

文件結(jié)束記錄(EOF)
一個(gè)Intel HEX文件必須有一個(gè)文件結(jié)束記錄,這個(gè)記錄的類(lèi)型域必須是01,
一個(gè)EOF記錄總是這樣:
:00000001FF
00是記錄中數(shù)據(jù)字節(jié)的數(shù)目
0000這個(gè)地址對(duì)于EOF記錄來(lái)說(shuō)無(wú)任何意義
01記錄類(lèi)型是01(文件結(jié)束記錄標(biāo)示)
FF是效驗(yàn)和計(jì)算如下
01h + NOT(00h + 00h + 00h + 01h).
========================
總結(jié)


形如
:BBAAAATTHHHH...HHHHCC

BB: Byte
AAAA:數(shù)據(jù)記錄的開(kāi)始地址,高位在前,地位在后
      因?yàn)檫@個(gè)格式只支持8bits,地址被倍乘
      所以,為了得到實(shí)際的PIC的地址,需要將 地址除以2
TT: Type
        00 數(shù)據(jù)記錄
        01 記錄結(jié)束
        04 擴(kuò)展地址記錄(表示32位地址的前綴,當(dāng)然這種只能在 INHX32)
HHHH:一個(gè)字(Word)的數(shù)據(jù)記錄,高Byte在前,低Byte在后
      TT之后,總共有 BB/2 個(gè)字 的數(shù)據(jù)
CC: 一個(gè)Byte的CheckSum


因?yàn)镻IC16F873A只有4K的程序空間

所以,不會(huì)有 TT=04的 Linear Address Record

posted on 2007-12-20 14:12 isabc 閱讀(1564) 評(píng)論(1)  編輯 收藏 引用

評(píng)論

# re: 什么是Intel HEX格式? 2007-12-21 17:04 Lee7

HEX文件和BIN文件是我們經(jīng)常碰到的2種文件格式。下面簡(jiǎn)單介紹一下這2種文件格式的區(qū)別:


1 - HEX文件是包括地址信息的,而B(niǎo)IN文件格式只包括了數(shù)據(jù)本身
在燒寫(xiě)或下載HEX文件的時(shí)候,一般都不需要用戶指定地址,因?yàn)镠EX文件內(nèi)部的信息已經(jīng)包括了地址。而燒寫(xiě)B(tài)IN
文件的時(shí)候,用戶是一定需要指定地址信息的。


3 - BIN文件格式
對(duì)二進(jìn)制文件而言,其實(shí)沒(méi)有”格式”。文件只是包括了純粹的二進(jìn)制數(shù)據(jù)。


4 - HEX文件格式
HEX文件都是由記錄(RECORD)組成的。在HEX文件里面,每一行代表一個(gè)記錄。記錄的基本格式為:
+---------------------------------------------------------------+
| RECORD | RECLEN | LOAD | RECTYPE | INFO or DATA | CHKSUM |
| MARK ':' | | OFFSET | | | |
+---------------------------------------------------------------+
| 1-byte | 1-byte | 2-byte | 1-byte | n-byte | 1-byte |
+---------------------------------------------------------------+

記錄類(lèi)型包括:
'00' Data Rrecord:用來(lái)記錄數(shù)據(jù),HEX文件的大部分記錄都是數(shù)據(jù)記錄
'01' End of File Record: 用來(lái)標(biāo)識(shí)文件結(jié)束,放在文件的最后,標(biāo)識(shí)HEX文件的結(jié)尾
'04' Extended Linear Address Record: 用來(lái)標(biāo)識(shí)擴(kuò)展線性地址的記錄
'02' Extended Segment Address Record: 用來(lái)標(biāo)識(shí)擴(kuò)展段地址的記錄

在上面的后2種記錄,都是用來(lái)提供地址信息的。每次碰到這2個(gè)記錄的時(shí)候,都可以根據(jù)記錄計(jì)算出一個(gè)“基”地址。
對(duì)于后面的數(shù)據(jù)記錄,計(jì)算地址的時(shí)候,都是以這些“基”地址為基礎(chǔ)的。

數(shù)據(jù)記錄的具體格式:
+---------------------------------------------------------------+
| RECORD | RECLEN | LOAD | RECTYPE | INFO or DATA | CHKSUM |
| MARK ':' | | OFFSET | '00' | | |
+---------------------------------------------------------------+
| 1-byte | 1-byte | 2-byte | 1-byte | n-byte | 1-byte |
+---------------------------------------------------------------+

看個(gè)例子:
:020000040000FA
:10000400FF00A0E314209FE5001092E5011092E5A3
:00000001FF

對(duì)上面的HEX文件進(jìn)行分析:
第1條記錄的長(zhǎng)度為02,LOAD OFFSET為0000,RECTYPE為04,說(shuō)明該記錄為擴(kuò)展段地址記錄。數(shù)據(jù)為0000,校驗(yàn)和為
FA。從這個(gè)記錄的長(zhǎng)度和數(shù)據(jù),我們可以計(jì)算出一個(gè)基地址,這個(gè)地址為0X0000。后面的數(shù)據(jù)記錄都以這個(gè)地址為基
地址。
第2條記錄的長(zhǎng)度為10(16),LOAD OFFSET為0004,RECTYPE為00,說(shuō)明該記錄為數(shù)據(jù)記錄。
數(shù)據(jù)為FF00A0E314209FE5001092E5011092E5,共16個(gè)BYTE。這個(gè)記錄的校驗(yàn)和為A3。此時(shí)的基地址為0X0000,加上OFFSET,
這個(gè)記錄里的16BYTE的數(shù)據(jù)的起始地址就是0x0000 + 0x0004 = 0x0004.
第3條記錄的長(zhǎng)度為00,LOAD OFFSET為0000,TYPE = 01,校驗(yàn)和為FF。說(shuō)明這個(gè)是一個(gè)END OF FILE RECORD,標(biāo)識(shí)
文件的結(jié)尾。

在上面這個(gè)例子里,實(shí)際的數(shù)據(jù)只有16個(gè)BYTE:FF00A0E314209FE5001092E5011092E5,其起始地址為0x4


4 - HEX文件和BIN文件大小有區(qū)別
HEX文件是用ASCII來(lái)表示二進(jìn)制的數(shù)值。例如一般8-BIT的二進(jìn)制數(shù)值0x3F,用ASCII來(lái)表示就需要分別表示字符'3'
和字符'F',每個(gè)字符需要一個(gè)BYTE,所以HEX文件需要 > 2倍的空間。
對(duì)一個(gè)BIN文件而言,你查看文件的大小就可以知道文件包括的數(shù)據(jù)的實(shí)際大小。而對(duì)HEX文件而言,你看到的文件
大小并不是實(shí)際的數(shù)據(jù)的大小。一是因?yàn)镠EX文件是用ASCII來(lái)表示數(shù)據(jù),二是因?yàn)镠EX文件本身還包括別的附加信息。


要想詳細(xì)了解HEX文件格式,請(qǐng)GOOGLE INTEL HEX,就能找到詳細(xì)的PDF文檔。
  回復(fù)  更多評(píng)論   


只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


廣告信息(免費(fèi)廣告聯(lián)系)

中文版MSDN:
歡迎體驗(yàn)

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美人与禽性xxxxx杂性| 在线一区亚洲| 午夜欧美精品| 亚洲午夜一区| 欧美大片免费久久精品三p | 亚洲一区二区精品在线| 久久久精彩视频| 久久成人综合视频| 欧美性事免费在线观看| 最新国产精品拍自在线播放| 激情av一区| 欧美一区二区视频在线观看2020| 亚洲一区欧美激情| 欧美日韩你懂的| 亚洲日韩欧美视频一区| 最新国产乱人伦偷精品免费网站 | 欧美日韩三级电影在线| 91久久线看在观草草青青| 亚洲风情在线资源站| 久久国产手机看片| 久久一区二区精品| 黄色欧美日韩| 久久亚洲精选| 亚洲第一主播视频| 亚洲免费观看在线视频| 欧美精品一区二区在线播放| 亚洲高清不卡在线| 99在线精品观看| 欧美视频网址| 亚洲欧美三级伦理| 久久久久久一区二区| 一区二区亚洲精品| 免费看的黄色欧美网站| 亚洲经典三级| 午夜精品久久久久99热蜜桃导演| 国产精品夜夜夜| 欧美在线视频一区| 欧美成人精品激情在线观看| 亚洲人成77777在线观看网| 欧美日本精品一区二区三区| 一区二区三区国产精华| 久久国产精品网站| 亚洲第一综合天堂另类专| 欧美a一区二区| 99亚洲视频| 久久婷婷久久一区二区三区| 亚洲韩国日本中文字幕| 欧美日韩亚洲综合在线| 午夜免费电影一区在线观看| 久久综合九色综合欧美就去吻| 亚洲国产日韩欧美| 欧美午夜电影一区| 久久国产66| 亚洲巨乳在线| 欧美在线首页| 亚洲国产另类 国产精品国产免费| 欧美日韩国产综合一区二区| 亚洲欧美综合v| 亚洲第一精品电影| 亚洲免费视频网站| 亚洲国产高清自拍| 国产精品日韩精品| 欧美激情黄色片| 香蕉av777xxx色综合一区| 亚洲韩国精品一区| 久久久国产精品亚洲一区| 99视频超级精品| 激情五月综合色婷婷一区二区| 欧美人体xx| 久久偷看各类wc女厕嘘嘘偷窃| 一区二区三区四区五区视频| 蜜桃av一区二区三区| 亚洲欧美第一页| 亚洲精品在线免费观看视频| 国内偷自视频区视频综合| 欧美日韩国产天堂| 久久夜色精品| 久久av红桃一区二区小说| 一本色道久久综合亚洲二区三区| 欧美黄色aaaa| 久久久国产一区二区| 亚洲免费网站| 在线视频你懂得一区| 亚洲国产精品一区在线观看不卡| 国产午夜精品一区理论片飘花| 欧美日韩亚洲高清| 欧美成人在线网站| 鲁大师影院一区二区三区| 欧美一区二区精美| 亚洲欧美日韩另类| 亚洲一二三四久久| 亚洲视频在线观看三级| 亚洲精选视频免费看| 亚洲成人资源网| 美国三级日本三级久久99| 午夜精品一区二区三区四区 | 亚洲精品久久久久久久久久久| 国内精品久久久久国产盗摄免费观看完整版 | 欧美特黄一级| 欧美日韩大片| 欧美日韩99| 欧美日韩一区高清| 国产精品v亚洲精品v日韩精品| 欧美日韩第一区日日骚| 欧美日韩国产专区| 欧美日韩一二区| 欧美日韩亚洲一区二区三区在线| 欧美劲爆第一页| 欧美精品尤物在线| 欧美日韩日日夜夜| 国产精品久久久久久久午夜片| 欧美三级特黄| 国产麻豆一精品一av一免费| 国产精品视频久久| 国产在线精品一区二区中文| 国产日韩欧美一区二区三区在线观看 | 亚洲天堂成人在线观看| 亚洲欧美国产另类| 亚洲欧美综合| 久久久青草青青国产亚洲免观| 久久蜜桃资源一区二区老牛| 久久免费少妇高潮久久精品99| 免费中文日韩| 亚洲精品欧美| 亚洲美女精品久久| 亚洲综合第一页| 久久久另类综合| 欧美欧美午夜aⅴ在线观看| 欧美日韩精品二区第二页| 国产精品女主播在线观看| 国产亚洲欧美日韩美女| 亚洲国产成人久久综合一区| 一本色道**综合亚洲精品蜜桃冫| 亚洲一区二区视频在线| 久久精品国产免费| 亚洲第一区在线观看| 一区二区精品在线| 香蕉久久a毛片| 欧美高清一区| 国产欧美一级| 亚洲精品国产精品乱码不99| 亚洲一区在线看| 免费在线看一区| 亚洲视频一区二区免费在线观看| 久久精品亚洲| 欧美日韩一区二区高清| 黄色成人免费网站| 亚洲小说欧美另类社区| 久久免费高清视频| 日韩一级免费观看| 久久久一区二区三区| 欧美午夜精品久久久久久浪潮| 在线成人国产| 性欧美8khd高清极品| 亚洲激情视频在线播放| 欧美一区综合| 欧美三级日韩三级国产三级| 亚洲电影有码| 久久国产免费| 一本色道88久久加勒比精品| 可以看av的网站久久看| 国产免费亚洲高清| 亚洲性感美女99在线| 欧美激情麻豆| 久久婷婷av| 韩国一区二区三区美女美女秀| 亚洲一二三四久久| 亚洲激情一区二区三区| 久久久99爱| 国产午夜精品一区二区三区视频 | 欧美成人免费大片| 欧美一级久久| 国产情人综合久久777777| 亚洲午夜精品久久久久久app| 亚洲国产裸拍裸体视频在线观看乱了| 亚洲欧美日韩精品一区二区 | 国产手机视频一区二区| 亚洲视频中文字幕| 亚洲麻豆av| 欧美国产欧美亚洲国产日韩mv天天看完整| 国产一区二区三区不卡在线观看| 性久久久久久久久久久久| 一区二区动漫| 国产精品xvideos88| 亚洲自拍电影| 在线视频精品一区| 国产精品国产精品国产专区不蜜| 一区二区免费在线播放| 亚洲欧洲精品一区二区三区| 欧美成人小视频| 99国产精品久久久| 亚洲日本在线视频观看| 欧美精品不卡| 一区二区三区高清在线| 亚洲国产精品一区二区三区| 欧美激情偷拍| 中文精品视频一区二区在线观看| 99视频在线精品国自产拍免费观看| 欧美日韩免费观看一区=区三区| 宅男在线国产精品|