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

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

Blog @ Blog

當華美的葉片落盡,生命的脈絡才歷歷可見。 -- 聶魯達

常用鏈接

統計

積分與排名

BBS

Blog

Web

最新評論

什么是Intel HEX格式?

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

記錄格式

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

:llaaaatt[dd...]cc

每一組字母是獨立的一域,每一個字母是一個十六進制數字,每一域至少由兩個十六進制數字組成,下面是字節的描述.

:冒號     是每一條Intel HEX記錄的開始

ll 是這條記錄的長度域,他表示數據(dd)的字節數目.

aaaa 是地址域,他表示數據的起始地址<如果是數據記錄,這表示將要燒錄的這條記錄中的數據在EPROM中的偏移地址,對于不支持擴展段地址和擴展線性地址的,如89C51,這就是此條記錄的起始地址>

tt 這個域表示這條HEX記錄的類型,他有可能是下面這幾種類型
00 ----數據記錄      
01 ----文件結束記錄
02 ----擴展段地址記錄
04 ----擴展線性地址記錄

dd   是數據域,表示一個字節的數據,一個記錄可能有多個數據字節,字節數目可以查看ll域的說明

cc   是效驗和域,表示記錄的效驗和,計算方法是將本條記錄冒號開始的所有字母對<不包括本效驗字和冒號> 所表示的十六進制數字<一對字母表示一個十六進制數,這樣的一個十六進制數為一個字節>都加起來然后模除256得到的余數最后求出余數的補碼即是本效驗字節cc.
<例如:
:0300000002005E9D
cc=0x01+NOT((0x03+0x00+0x00+0x00+0x02+0x00+0x5E)%0x100)=0x01+0x9C=0x9D

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

Intel HEX文件由若干個數據記錄組成,一個數據記錄以一個回車和一個換行結束
<回車為0x0d換行為0x0a>

比如下面的一條數據記錄
:10246200464C5549442050524F46494C4500464C33

10   是此行記錄數據的字節數目
2462   是數據在內存<將要燒寫的eprom地址>中的起始地址
00     是記錄類型00(是一個數據記錄)
464C 到 464C 是數據
33   是此行記錄的效驗和

擴展線性地址記錄(HEX386)
擴展線性地址記錄也可稱為 32位地址記錄   和   HEX386記錄,這個紀錄包含高16(16-31位)位數據地址,這種擴展的線性記錄總是有兩個字節數據,像下面這樣:

:02000004FFFFFC
02     是記錄的數據字節數目
0000   是地址域這在擴展地址記錄中總是0000
04     是記錄類型04(擴展地址記錄)
FFFF   是高16位地址
FC     是記錄效驗和,計算方法如下:
        01h + NOT(02h + 00h + 00h + 04h + FFh + FFh)

當一個擴展線性地址記錄被讀到后,擴展線性地址記錄的數據區域將被保存并應用到后面從Intel HEX文件中讀出的記錄,這個擴展線性記錄一直有效,直到讀到下一個擴展線性記錄.


絕對內存地址 = 數據記錄中的地址 + 移位后的擴展線性地址


下面舉例說明這個過程

從數據記錄的地址域得到地址           2462
從擴展線性地址記錄的地址域得到地址   FFFF
絕對內存地址                           FFFF2462

擴展段地址記錄 (HEX86)

擴展段地址記錄也被稱為 HEX86記錄,   包含 4-19位的數據地址段,
這個擴展段地址記錄總是有兩字節數據,如下:

:020000021200EA
02 是     記錄中的數據字節數目
0000           是地址域,在擴展段地址記錄中,這個域總是0000
02           是記錄類型02(擴展段地址的標示)
1200     是該段的地址
EA     是效驗和
計算如下:
01h + NOT(02h + 00h + 00h + 02h + 12h + 00h).

當擴展段地址記錄被讀后,擴展段地址將被存儲并應用到以后從Intel HEX文件讀出的記錄,這個段地址一直有效直到讀到下一個擴展段地址記錄

絕對內存地址 = 數據記錄中的地址 + 移位后的擴展段地址

數據記錄中的地址域       移位后擴展段地址記錄中的地址域

下面舉例說明這個過程

從數據記錄的地址域得到地址                   2 4 6 2
從擴展段地址記錄的地址域得到地址           1 2 0 0
絕對內存地址                         0 0 0 1 4 4 6 2

文件結束記錄(EOF)
一個Intel HEX文件必須有一個文件結束記錄,這個記錄的類型域必須是01,
一個EOF記錄總是這樣:
:00000001FF
00是記錄中數據字節的數目
0000這個地址對于EOF記錄來說無任何意義
01記錄類型是01(文件結束記錄標示)
FF是效驗和計算如下
01h + NOT(00h + 00h + 00h + 01h).
========================
總結


形如
:BBAAAATTHHHH...HHHHCC

BB: Byte
AAAA:數據記錄的開始地址,高位在前,地位在后
      因為這個格式只支持8bits,地址被倍乘
      所以,為了得到實際的PIC的地址,需要將 地址除以2
TT: Type
        00 數據記錄
        01 記錄結束
        04 擴展地址記錄(表示32位地址的前綴,當然這種只能在 INHX32)
HHHH:一個字(Word)的數據記錄,高Byte在前,低Byte在后
      TT之后,總共有 BB/2 個字 的數據
CC: 一個Byte的CheckSum


因為PIC16F873A只有4K的程序空間

所以,不會有 TT=04的 Linear Address Record

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

評論

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

HEX文件和BIN文件是我們經常碰到的2種文件格式。下面簡單介紹一下這2種文件格式的區別:


1 - HEX文件是包括地址信息的,而BIN文件格式只包括了數據本身
在燒寫或下載HEX文件的時候,一般都不需要用戶指定地址,因為HEX文件內部的信息已經包括了地址。而燒寫BIN
文件的時候,用戶是一定需要指定地址信息的。


3 - BIN文件格式
對二進制文件而言,其實沒有”格式”。文件只是包括了純粹的二進制數據。


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

記錄類型包括:
'00' Data Rrecord:用來記錄數據,HEX文件的大部分記錄都是數據記錄
'01' End of File Record: 用來標識文件結束,放在文件的最后,標識HEX文件的結尾
'04' Extended Linear Address Record: 用來標識擴展線性地址的記錄
'02' Extended Segment Address Record: 用來標識擴展段地址的記錄

在上面的后2種記錄,都是用來提供地址信息的。每次碰到這2個記錄的時候,都可以根據記錄計算出一個“基”地址。
對于后面的數據記錄,計算地址的時候,都是以這些“基”地址為基礎的。

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

看個例子:
:020000040000FA
:10000400FF00A0E314209FE5001092E5011092E5A3
:00000001FF

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

在上面這個例子里,實際的數據只有16個BYTE:FF00A0E314209FE5001092E5011092E5,其起始地址為0x4


4 - HEX文件和BIN文件大小有區別
HEX文件是用ASCII來表示二進制的數值。例如一般8-BIT的二進制數值0x3F,用ASCII來表示就需要分別表示字符'3'
和字符'F',每個字符需要一個BYTE,所以HEX文件需要 > 2倍的空間。
對一個BIN文件而言,你查看文件的大小就可以知道文件包括的數據的實際大小。而對HEX文件而言,你看到的文件
大小并不是實際的數據的大小。一是因為HEX文件是用ASCII來表示數據,二是因為HEX文件本身還包括別的附加信息。


要想詳細了解HEX文件格式,請GOOGLE INTEL HEX,就能找到詳細的PDF文檔。
  回復  更多評論   

廣告信息(免費廣告聯系)

中文版MSDN:
歡迎體驗

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲国产精品久久久久| 国产精品女主播一区二区三区| 欧美国产高清| 亚洲视频精选在线| 亚洲日韩成人| 欧美激情视频免费观看| 亚洲高清激情| 91久久精品日日躁夜夜躁国产| 欧美国产精品一区| 亚洲人成亚洲人成在线观看图片| 久久综合九色九九| 亚洲国产日韩一级| 欧美一级专区| 欧美精品一区二区三区久久久竹菊 | 亚洲一区高清| 欧美日韩卡一卡二| 欧美成人免费网站| 国产精品视频久久| 欧美午夜不卡影院在线观看完整版免费 | 欧美精品一区二区三区一线天视频| 欧美一区国产在线| 国产在线欧美日韩| 欧美日韩一区二区免费在线观看| 亚洲永久视频| 久久综合久久久久88| 欧美成人在线免费观看| 亚洲精品影院| 欧美亚洲免费| 国产精品最新自拍| 国产精品美女在线观看| 一本色道久久综合狠狠躁篇的优点 | 很黄很黄激情成人| 欧美大尺度在线| 性欧美xxxx大乳国产app| 久久综合色婷婷| 性伦欧美刺激片在线观看| 亚洲欧美国产精品va在线观看| 噜噜噜在线观看免费视频日韩| 亚洲三级国产| 欧美午夜不卡在线观看免费 | 久久久久亚洲综合| 亚洲免费精彩视频| 欧美精品一区二区三区四区| 亚洲国产电影| 国产欧美午夜| 午夜日韩在线| 性色一区二区| 在线观看视频欧美| 牛牛影视久久网| 欧美黑人多人双交| 亚洲一区亚洲二区| 一本大道久久a久久精品综合| 美女视频一区免费观看| 最新中文字幕一区二区三区| 欧美 亚欧 日韩视频在线| 欧美高清视频一二三区| 亚洲欧美日韩国产综合| 久久亚洲综合色| 亚洲自拍电影| 欧美成人精品影院| 久久精品免费播放| 亚洲精品国久久99热| 亚洲男人的天堂在线aⅴ视频| 国模吧视频一区| 在线综合视频| 99在线|亚洲一区二区| 欧美一区二区三区免费在线看| 99国产精品一区| 猛干欧美女孩| 免费在线日韩av| 国产一区二区三区在线观看免费| 亚洲欧洲在线一区| 1024精品一区二区三区| 亚洲一区制服诱惑| 亚洲一区二区三区四区视频| 老**午夜毛片一区二区三区| 久久九九国产| 一区二区三区亚洲| 欧美制服丝袜| 欧美v日韩v国产v| 一区在线影院| 亚洲一区视频在线| 国产精品vvv| 亚欧美中日韩视频| 欧美福利一区二区三区| 在线免费观看日韩欧美| 欧美成人69av| 宅男在线国产精品| 免费亚洲电影在线| 9i看片成人免费高清| 国产精品啊啊啊| 久久精品在这里| 亚洲精选在线观看| 久久综合狠狠综合久久激情| 最新高清无码专区| 国产精品一区在线观看你懂的| 欧美一区二区| 亚洲久久在线| 老司机成人网| 午夜亚洲激情| 亚洲九九精品| 亚洲国产一区二区视频| 国产欧美日韩中文字幕在线| 欧美精品亚洲一区二区在线播放| 亚洲一区二区三区中文字幕在线| 麻豆精品91| 久久综合伊人77777| 亚洲视频在线播放| 亚洲欧洲一二三| 在线不卡a资源高清| 国产视频亚洲精品| 欧美视频中文字幕| 欧美日韩视频在线一区二区| 久久夜色精品国产| 久久亚洲春色中文字幕久久久| 香蕉视频成人在线观看| 亚洲女同精品视频| 久久国产精品久久精品国产| 亚洲视频网在线直播| 一本久道久久综合婷婷鲸鱼| 亚洲全部视频| 在线观看日韩av电影| 在线观看日韩一区| 亚洲精品影院在线观看| 在线亚洲免费| 午夜视频在线观看一区二区三区| 亚洲综合国产精品| 噜噜噜噜噜久久久久久91| 欧美.www| 亚洲人成人一区二区三区| 在线综合亚洲欧美在线视频| 亚洲伦理中文字幕| 香蕉av777xxx色综合一区| 久久精品国产91精品亚洲| 欧美精品二区| 激情综合久久| 午夜亚洲福利在线老司机| 欧美大片在线观看一区二区| 日韩亚洲视频在线| 久久久久女教师免费一区| 欧美日韩在线亚洲一区蜜芽| 国产欧美日韩亚洲精品| 一区二区三区久久久| 毛片av中文字幕一区二区| 中文亚洲视频在线| 欧美日韩高清在线一区| 尤物九九久久国产精品的分类| 在线一区亚洲| 99av国产精品欲麻豆| 欧美激情bt| 亚洲国产精品激情在线观看| 午夜激情综合网| 亚洲淫片在线视频| 欧美午夜寂寞影院| 亚洲欧美综合| 午夜精品福利在线| 精品1区2区| 麻豆国产精品777777在线| 久久成人资源| 在线观看视频日韩| 亚洲蜜桃精久久久久久久| 欧美日韩精品二区第二页| 99在线热播精品免费99热| 亚洲在线免费视频| 亚洲伦理网站| 国产一区二区日韩精品欧美精品 | 免费成人你懂的| 亚洲成色999久久网站| 亚洲电影免费观看高清| 欧美日本不卡| 久久综合伊人77777蜜臀| 欧美大片免费| 欧美一区二区在线视频| 欧美高清在线视频观看不卡| 中文精品一区二区三区| 欧美一区二区在线视频| 91久久在线观看| 午夜亚洲激情| 午夜老司机精品| 欧美裸体一区二区三区| 久久亚洲高清| 国产视频欧美视频| 99视频一区| 亚洲午夜激情网站| 欧美精品在欧美一区二区少妇| 久久激情婷婷| 国产精品一区二区黑丝| 亚洲视频免费在线| 亚洲香蕉网站| 欧美日韩综合视频| 在线亚洲免费| 欧美一级视频一区二区| 欧美日韩视频不卡| 日韩视频在线观看| 中国日韩欧美久久久久久久久| 欧美激情一区二区三区四区| 亚洲国产高清视频| 亚洲日本理论电影| 欧美连裤袜在线视频| 日韩网站在线观看|