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

山寨:不是最好的,是最適合我們的!歡迎體驗山寨 中文版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 閱讀(1564) 評論(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文檔。
  回復  更多評論   


只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


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

中文版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>
            99国产精品一区| 亚洲性图久久| 国产亚洲精品久久久久婷婷瑜伽| 亚洲国产成人在线视频| 国产欧美激情| 在线中文字幕日韩| 一本色道久久99精品综合| 久久久777| 久久国产精品久久国产精品| 欧美午夜大胆人体| 亚洲精选久久| avtt综合网| 欧美精品一区二区久久婷婷| 欧美刺激性大交免费视频| 国际精品欧美精品| 久久国产精品久久久久久久久久| 亚洲欧美日韩一区在线观看| 欧美日韩国产在线播放| 亚洲国产电影| 亚洲欧洲在线看| 蜜臀久久99精品久久久画质超高清 | 亚洲国产精品久久久久秋霞蜜臀| 午夜国产精品视频| 欧美一区二区三区另类| 国产精品一区二区三区久久久| 一二三区精品福利视频| 亚洲伊人久久综合| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ入口 | 午夜在线精品偷拍| 国产精品福利片| 亚洲网在线观看| 欧美与欧洲交xxxx免费观看| 国产精品亚洲а∨天堂免在线| 一区二区电影免费观看| 午夜激情综合网| 国产欧美综合在线| 久久精品国产久精国产思思| 久久综合狠狠| 亚洲欧洲精品一区二区精品久久久| 老司机精品视频网站| 亚洲国产欧美在线| 一区二区三区高清不卡| 国产精品乱码妇女bbbb| 欧美一区国产在线| 欧美激情久久久久| 亚洲性感美女99在线| 国产精品一级二级三级| 久久久久综合一区二区三区| 亚洲高清久久久| 亚洲欧美综合国产精品一区| 好吊色欧美一区二区三区四区| 久久深夜福利免费观看| 亚洲精品1234| 久久gogo国模裸体人体| 一区二区视频免费完整版观看| 欧美夫妇交换俱乐部在线观看| 99精品黄色片免费大全| 久久九九国产精品| 日韩午夜一区| 国产一区二区精品久久| 欧美激情亚洲| 欧美一级艳片视频免费观看| 欧美激情一区在线| 欧美中在线观看| 亚洲精品美女在线观看播放| 国产乱人伦精品一区二区| 久久综合九色综合网站| 亚洲一二区在线| 欧美成人亚洲| 欧美专区日韩视频| 一区二区av在线| 一区二区三区我不卡| 国产精品狠色婷| 欧美成人免费全部观看天天性色| 亚洲在线播放电影| 亚洲国产精品女人久久久| 欧美在线黄色| 99人久久精品视频最新地址| 国产一区成人| 国产精品theporn88| 欧美jjzz| 久久一二三四| 午夜视频在线观看一区二区三区| 亚洲精品黄色| 欧美激情视频一区二区三区不卡| 久久精品官网| 亚洲欧美日韩在线高清直播| 亚洲毛片在线观看| 亚洲电影免费观看高清完整版在线| 国产女主播一区二区三区| 欧美日韩一区二区视频在线观看| 麻豆国产精品777777在线| 久久国产婷婷国产香蕉| 亚洲一区二区三区中文字幕 | 亚洲伊人伊色伊影伊综合网| 亚洲精品一区二区三区av| 欧美mv日韩mv亚洲| 美女999久久久精品视频| 欧美在线视频二区| 午夜在线a亚洲v天堂网2018| 亚洲无限乱码一二三四麻| 亚洲精品免费在线播放| 亚洲国产毛片完整版 | 国产亚洲一区二区在线观看 | 男人天堂欧美日韩| 免费一级欧美片在线观看| 久久综合久久久| 久久艳片www.17c.com| 久久人人爽人人爽| 蜜桃av综合| 欧美成人亚洲成人日韩成人| 欧美成人免费全部观看天天性色| 免费在线观看一区二区| 免费影视亚洲| 亚洲国产精品久久久久婷婷884 | 欧美国产日韩一二三区| 欧美好骚综合网| 亚洲国产精品专区久久| 亚洲国产日韩一区| 99精品国产高清一区二区| 一区二区三区.www| 亚洲欧美另类在线观看| 午夜精品久久久久久久99樱桃| 欧美一级理论性理论a| 久久嫩草精品久久久精品一| 蜜臀91精品一区二区三区| 欧美精品观看| 国产精品伦一区| 国产亚洲二区| 亚洲精品一区二区三区樱花 | 亚洲欧美成人| 久久精品30| 亚洲电影在线免费观看| 日韩午夜免费视频| 欧美一乱一性一交一视频| 久久久夜精品| 欧美日韩三级一区二区| 国产欧美视频一区二区| 亚洲国产高清在线| 亚洲尤物视频在线| 久久伊伊香蕉| 99精品国产在热久久下载| 欧美在线观看视频| 欧美精品一区二区视频| 国产日韩欧美一区二区三区在线观看| 在线观看一区二区视频| 这里只有精品视频| 久色婷婷小香蕉久久| 99视频一区二区| 久久久久国色av免费看影院| 欧美日韩亚洲视频| 伊人久久久大香线蕉综合直播| 一本久久精品一区二区| 久久视频在线看| 夜夜嗨av一区二区三区| 开心色5月久久精品| 国产精品一香蕉国产线看观看| 亚洲高清在线观看| 久久国产精品高清| 日韩一级在线观看| 蜜桃久久av一区| 国产一区二区三区日韩欧美| 亚洲一区国产一区| 亚洲第一精品夜夜躁人人爽 | 亚洲日本va在线观看| 欧美在线观看网站| 亚洲免费电影在线观看| 另类天堂视频在线观看| 国产日韩欧美成人| 午夜在线播放视频欧美| 亚洲精品之草原avav久久| 老鸭窝亚洲一区二区三区| 国产欧美视频一区二区| 亚洲欧美日韩中文在线制服| 亚洲日韩中文字幕在线播放| 久久久久久久久综合| 国产人成精品一区二区三| 亚洲综合999| 日韩视频永久免费| 欧美精品性视频| 亚洲精品极品| 欧美高清免费| 蜜月aⅴ免费一区二区三区| 精品二区久久| 久久只有精品| 久久久久国产精品麻豆ai换脸| 国产视频亚洲精品| 欧美一区二区精品在线| 亚洲影院在线观看| 国产精品色在线| 西西人体一区二区| 亚洲女同在线| 国产资源精品在线观看| 可以免费看不卡的av网站| 欧美一区国产二区| 国产自产2019最新不卡| 麻豆久久精品| 久久婷婷激情| 日韩视频在线观看免费| 亚洲精品久久久久|