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

山寨:不是最好的,是最適合我們的!歡迎體驗山寨 中文版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>
            性色av香蕉一区二区| 美女黄网久久| 夜夜躁日日躁狠狠久久88av| 蜜臀va亚洲va欧美va天堂| 久久久精彩视频| 久久er99精品| 久久久国产精品亚洲一区| 久久久夜夜夜| 欧美激情在线观看| 亚洲精品国产精品乱码不99| 日韩视频一区二区三区在线播放免费观看| 亚洲国产1区| 亚洲精品国产欧美| 亚洲欧美日韩国产综合在线| 久久精品av麻豆的观看方式| 久久一区二区三区四区| 欧美另类高清视频在线| 国产精品一二| 在线日韩中文| 亚洲午夜激情免费视频| 久久精品国产视频| 亚洲国产你懂的| 亚洲小说欧美另类婷婷| 榴莲视频成人在线观看| 国产精品欧美日韩久久| 亚洲精品1234| 久久狠狠亚洲综合| 日韩午夜激情av| 99视频在线精品国自产拍免费观看 | 国产一区日韩二区欧美三区| 一区二区在线视频| 亚洲午夜av在线| 久久久噜噜噜久久久| 亚洲国产欧美精品| 久久精品视频免费观看| 国产精品成人一区二区网站软件| 国产日韩av高清| 国产精品99久久久久久宅男 | 欧美一级视频| 亚洲国产精品一区二区第四页av| 亚洲欧美区自拍先锋| 欧美成人免费va影院高清| 国产一区二区精品在线观看| 亚洲欧美成人在线| 亚洲欧洲精品一区二区三区不卡 | 亚洲视频欧美在线| 麻豆国产va免费精品高清在线| 国产女优一区| 午夜精品福利视频| 亚洲精品一区二区三区99| 久热综合在线亚洲精品| 国产真实乱偷精品视频免| 性欧美8khd高清极品| 一区二区三区国产精华| 欧美日本亚洲| 中国av一区| 日韩午夜视频在线观看| 欧美另类一区二区三区| 99精品热视频| 日韩视频在线观看| 欧美日韩小视频| 99成人精品| 日韩视频永久免费观看| 欧美色图首页| 欧美一区二区三区在线观看视频| 正在播放欧美一区| 国产精品香蕉在线观看| 欧美一区中文字幕| 亚洲免费综合| 国产一区二区三区免费在线观看| 欧美一区二区三区免费视| 亚洲欧美激情诱惑| 国内精品伊人久久久久av一坑| 久久精品女人| 看片网站欧美日韩| 亚洲精品护士| 正在播放欧美视频| 国产视频精品va久久久久久| 久久久久九九九| 久热精品视频在线观看一区| 亚洲精品在线一区二区| 在线亚洲高清视频| 久久一区二区三区四区| 久久综合99re88久久爱| 亚洲精品乱码久久久久久黑人| 亚洲电影第1页| 欧美日韩调教| 欧美一区中文字幕| 免费看的黄色欧美网站| 中文在线一区| 久久福利视频导航| 日韩写真视频在线观看| 亚洲男女自偷自拍| 亚洲国产欧美久久| 日韩特黄影片| 伊人精品成人久久综合软件| 亚洲精品久久久久| 国产午夜精品全部视频播放| 欧美激情一区| 国产精品无码专区在线观看| 久久躁狠狠躁夜夜爽| 欧美色另类天堂2015| 欧美成人国产va精品日本一级| 欧美特黄一级| 欧美freesex交免费视频| 国产精品久久久久av| 六月丁香综合| 国产精品va在线播放| 美女黄网久久| 国产亚洲午夜| 中国成人黄色视屏| 在线欧美不卡| 新狼窝色av性久久久久久| 亚洲精品日韩综合观看成人91| 亚洲在线观看| 亚洲最新中文字幕| 另类尿喷潮videofree | 亚洲午夜在线| 老色鬼久久亚洲一区二区| 午夜视频久久久久久| 欧美日韩大片一区二区三区| 欧美大片在线观看一区| 国产主播一区二区| 亚洲一二三级电影| 9l视频自拍蝌蚪9l视频成人| 久久久久久久久久久久久女国产乱| 一区二区高清视频在线观看| 久久综合九色综合欧美狠狠| 欧美专区日韩专区| 国产精品综合| 亚洲欧美日韩第一区| 亚洲影院色无极综合| 欧美日本精品| 亚洲日本欧美日韩高观看| 1204国产成人精品视频| 久久本道综合色狠狠五月| 欧美亚洲视频在线观看| 国产精品女人久久久久久| 亚洲一区在线播放| 午夜综合激情| 国产在线国偷精品产拍免费yy| 亚洲欧美日韩中文在线制服| 久久av一区二区三区| 国产日韩欧美三级| 性做久久久久久| 久久天天狠狠| 在线欧美福利| 99pao成人国产永久免费视频| 欧美日韩国产精品成人| 亚洲激情一区| 99这里只有久久精品视频| 欧美片第1页综合| 夜夜嗨网站十八久久| 亚洲一级片在线观看| 国产精品三区www17con| 久久精品国产综合| 欧美xxx成人| 亚洲人午夜精品| 欧美色偷偷大香| 午夜精品久久久久99热蜜桃导演| 久久久国产一区二区| 亚洲国产精品一区二区www| 欧美精选午夜久久久乱码6080| 亚洲精品亚洲人成人网| 午夜精品999| 亚洲国产精品成人一区二区| 欧美久久影院| 亚洲欧美日韩成人高清在线一区| 欧美在线不卡视频| 亚洲国产视频一区| 国产精品yjizz| 久久米奇亚洲| 在线综合亚洲| 欧美mv日韩mv国产网站| 亚洲一区二区三区四区中文| 欧美性理论片在线观看片免费| 在线观看国产精品淫| 久久青草欧美一区二区三区| 免费一级欧美片在线观看| 久久精品国产99精品国产亚洲性色| 久久精品视频播放| 玖玖在线精品| 一区久久精品| 欧美尤物一区| 午夜精品影院| 欧美日韩免费高清一区色橹橹| 蜜臀av性久久久久蜜臀aⅴ四虎| 国产美女精品视频| 亚洲精选在线| 亚洲一级黄色片| 欧美日韩精品在线播放| 欧美激情一区二区三区高清视频| 国产精品尤物| 亚洲一区综合| 久热精品在线| 亚洲高清视频的网址| 亚洲免费观看高清完整版在线观看熊| 欧美成人精品h版在线观看| 欧美精品1区| 亚洲欧美视频一区二区三区|