|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
如何看HEX文件阿? |
| 作者:hejide2002 欄目:單片機(jī) |
| 2樓: | >>參與討論 |
| 作者: hejide2002 于 2005/8/3 9:13:00 發(fā)布:
HEX怎么看?謝謝 比如: :03000000020023D8 :0C002300787FE4F6D8FD75810702000329 :10000300E4FFFEE4FDFC0DBD00010CED640A4C7041 :10001300F50FBF00010EBE03EABFE8E7B2A080E020 :00000001FF 謝謝。! |
|
| 3樓: | >>參與討論 |
| 作者: h218 于 2005/8/3 9:29:00 發(fā)布:
不同公司的編譯器出來的不完全同 做幾個(gè)簡(jiǎn)單的程式,對(duì)照 LIST 看 |
|
| 4樓: | >>參與討論 |
| 作者: h218 于 2005/8/18 11:48:00 發(fā)布:
如沒有 List 文件 一般的編譯器在左邊是地址,最右邊是校驗(yàn),還要看程序字的長(zhǎng)度 PIC 有12位,16位 那么是兩字節(jié)一行 51 系列、摩托等是不定長(zhǎng)的,要難一些,一個(gè)一個(gè)的找 你的芯片是什么????? |
|
| 5樓: | >>參與討論 |
| 作者: h218 于 2005/8/18 12:11:00 發(fā)布:
例子 ORG 000H BEGIN: MOVLW 01H MOVLW 02H MOVLW 03H MOVLW 04H MOVLW 05H MOVLW 06H MOVLW 07H MOVLW 08H MOVLW 09H MOVLW 0AH MOVLW 0BH MOVLW 0CH MOVLW 0DH MOVLW 0EH MOVLW 0FH NOP MOVLW 10H MOVLW 11H MOVLW 12H MOVLW 13H MOVLW 14H MOVLW 15H MOVLW 16H MOVLW 17H MOVLW 18H MOVLW 19H MOVLW 1AH MOVLW 1BH MOVLW 1CH MOVLW 1DH MOVLW 1EH MOVLW 1FH NOP GOTO BEGIN END :20000000 0130 0230 0330 0430 0530 0630 0730 0830 0930 0A30 0B30 0C30 0D30 0E30 0F30 0000 98 :20002000 1030 1130 1230 1330 1430 1530 1630 1730 1830 1930 1A30 1B30 1C30 1D30 1E30 1F30 48 :04004000 0000 0028 94 :00000001 FF |
|
| 6樓: | >>參與討論 |
| 作者: h218 于 2005/8/18 12:15:00 發(fā)布:
PIC16F73A 芯片 指 令 代碼 MOVLW 01H ....... 0130 MOVLW 02H ....... 0230 MOVLW 03H ....... 0330 MOVLW 04H ....... 0430 . . . NOP ....... 0000 GOTO BEGIN ....... 0028 |
|
| 7樓: | >>參與討論 |
| 作者: h218 于 2005/8/18 12:25:00 發(fā)布:
51 例子 ORG 000H BEGIN: MOV A, #0 MOV A, #1 MOV A, #2 MOV A, #3 MOV A, #4 MOV A, #5 MOV A, #6 MOV A, #7 MOV A, #8 MOV A, #9 MOV A, #0AH MOV A, #0BH MOV A, #0CH MOV A, #0DH MOV A, #0EH MOV A, #0FH NOP MOV A, #10H MOV A, #11H MOV A, #12H MOV A, #13H MOV A, #14H MOV A, #15H MOV A, #16H MOV A, #17H MOV A, #18H MOV A, #19H MOV A, #1AH MOV A, #1BH MOV A, #1CH MOV A, #1DH MOV A, #1EH MOV A, #1FH INC A NOP END :20000000 7400 7401 7402 7403 7404 7405 7406 7407 7408 7409 740A 740B 740C 740D 740E 740F 28 :20002000 00 7410 7411 7412 7413 7414 7415 7416 7417 7418 7419 741a 741B 741C 741D 741E 74 27 :03004000 1F 04 00 9A :00000001 FF |
|
| 8樓: | >>參與討論 |
| 作者: h218 于 2005/8/18 12:28:00 發(fā)布:
51 指 令 代碼 MOV A,#00H ....... 7400 ; 雙字節(jié) MOV A,#01H ....... 7401 MOV A,#02H ....... 7402 . . . NOP ....... 00 ; 單字節(jié) INC A ....... 04 ; 單字節(jié) |
|
| 9樓: | >>參與討論 |
| 作者: h218 于 2005/8/18 12:50:00 發(fā)布:
關(guān)于地址 :03 0000 00 02 00 23 D8 :0C 0023 00 78 7F E4 F6 D8 FD 75 81 07 02 00 03 29 :10 0003 00 E4 FF FE E4 FD FC 0D BD 00 01 0C ED 64 0A 4C 70 41 :10 0013 00 F5 0F BF 00 01 0E BE 03 EA BF E8 E7 B2 A0 80 E0 20 :00 0000 01 FF 行長(zhǎng) 地址 :03 0000 00 02 00 23 D8 :10 0003 00 E4 FF FE E4 FD FC 0D BD 00 01 0C ED 64 0A 4C 70 41 :10 0013 00 F5 0F BF 00 01 0E BE 03 EA BF E8 E7 B2 A0 80 E0 20 :0C 0023 00 78 7F E4 F6 D8 FD 75 81 07 02 00 03 29 :00 0000 01 FF |
|
| 10樓: | >>參與討論 |
| 作者: h218 于 2005/8/18 14:17:00 發(fā)布:
按 51 幫你手工做的, 象是上電后的清 0 ;03 0000 00 02 00 23 D8 ;10 0003 00 E4 FF FE E4 FD FC 0D BD 00 01 0C ED 64 0A 4C 70 41 ;10 0013 00 F5 0F BF 00 01 0E BE 03 EA BF E8 E7 B2 A0 80 E0 20 ;0C 0023 00 78 7F E4 F6 D8 FD 75 81 07 02 00 03 29 ;00 0000 01 FF ORG 0000H BEGIN: LJMP START LOP0: CLR A MOV R7,A MOV R6,A LOP1: CLR A MOV R5,A MOV R4,A LOP2: INC R5 CJNE R5,#00,SKP1 INC R4 SKP1: MOV A,R5 XRL A,#0AH ORL A,R4 JNZ LOP2 INC R7 CJNE R7,#00H,SKP2 INC R6 SKP2: CJNE R6,#03H,LOP1 CJNE R7,#0E8H,LOP1 CPL 0A0H SJMP LOP0 ORG 0023H START: MOV R0,#7FH CLR A LP_CR: MOV @R0,A DJNZ R0,LP_CR MOV 81H,#07H LJMP LOP0 END |
|
| 11樓: | >>參與討論 |
| 作者: beiwei23du 于 2005/8/20 0:52:00 發(fā)布:
看他的HEX文件有什么用? 看他的HEX文件有什么用。 |
|
| 12樓: | >>參與討論 |
| 作者: 雷風(fēng) 于 2005/8/20 2:43:00 發(fā)布:
樓主可能是不清楚hex文件格式吧,給你看一篇文章 一個(gè)INTEL HEX文件可以包含任意多的十六進(jìn)制記錄,每條記錄有五個(gè)域,下面是一個(gè)記錄的格式. :llAAAA.html">AAAAtt[dd...]cc 每一組字母是獨(dú)立的一域,每一個(gè)字母是一個(gè)十六進(jìn)制數(shù)字,每一域至少由兩個(gè)十六進(jìn)制數(shù)字組成,下面是字節(jié)的描述. :冒號(hào) 是每一條INTEL HEX記錄的開始 ll 是這條記錄的長(zhǎng)度域,他表示數(shù)據(jù)(dd)的字節(jié)數(shù)目. AAAA.html">AAAA 是地址域,他表示數(shù)據(jù)的起始地址 <如果是數(shù)據(jù)記錄,這表示將要燒錄的這條記錄中的數(shù)據(jù)在EPROM中的偏移地址, 對(duì)于不支持?jǐn)U展段地址和擴(kuò)展線性地址的,如89C51,這就是此條記錄的起始地址> tt 這個(gè)域表示這條HEX記錄的類型,他有可能是下面這幾種類型 00 ----數(shù)據(jù)記錄 01 ----文件結(jié)束記錄 02 ----擴(kuò)展段地址記錄 04 ----擴(kuò)展線性地址記錄 dd 是數(shù)據(jù)域,表示一個(gè)字節(jié)的數(shù)據(jù),一個(gè)記錄可能有多個(gè)數(shù)據(jù)字節(jié),字節(jié)數(shù)目可以 查看ll域的說明 cc 是效驗(yàn)和域,表示記錄的效驗(yàn)和,計(jì)算方法是將本條記錄冒號(hào)開始的所有字母對(duì) <不包括本效驗(yàn)字和冒號(hào)> 所表示的十六進(jìn)制數(shù)字 <一對(duì)字母表示一個(gè)十六進(jìn)制數(shù),這樣的一個(gè)十六進(jìn)制數(shù)為一個(gè)字節(jié)> 都加起來然后模除256得到的余數(shù)最后求出余數(shù)的補(bǔ)碼即是本效驗(yàn)字節(jié)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++; > 數(shù)據(jù)記錄 INTEL HEX文件由若干個(gè)數(shù)據(jù)記錄組成,一個(gè)數(shù)據(jù)記錄以一個(gè)回車和一個(gè)換行結(jié)束 <回車為0x0d換行為0x0a> 比如下面的一條數(shù)據(jù)記錄 :10246200464C5549442050524F46494C4500464C33 10 是此行記錄數(shù)據(jù)的字節(jié)數(shù)目 2462 是數(shù)據(jù)在內(nèi)存<將要燒寫的eprom地址>中的起始地址 00 是記錄類型00(是一個(gè)數(shù)據(jù)記錄) 464C 到 464C 是數(shù)據(jù) 33 是此行記錄的效驗(yàn)和 擴(kuò)展線性地址記錄(HEX386) 擴(kuò)展線性地址記錄也可稱為 32位地址記錄 和 HEX386記錄,這個(gè)紀(jì)錄包含高16(16-31位)位數(shù)據(jù)地址,這種擴(kuò)展的線性記錄總是有兩個(gè)字節(jié)數(shù)據(jù),像下面這樣: :02000004FFFFFC 02 是記錄的數(shù)據(jù)字節(jié)數(shù)目 0000 是地址域這在擴(kuò)展地址記錄中總是0000 04 是記錄類型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?br>并應(yīng)用到后面從INTEL HEX文件中讀出的記錄,這個(gè)擴(kuò)展線性記錄一直有效, 直到讀到下一個(gè)擴(kuò)展線性記錄. 絕對(duì)內(nèi)存地址 = 數(shù)據(jù)記錄中的地址 + 移位后的擴(kuò)展線性地址 下面舉例說明這個(gè)過程 從數(shù)據(jù)記錄的地址域得到地址 2462 從擴(kuò)展線性地址記錄的地址域得到地址 FFFF 絕對(duì)內(nèi)存地址 FFFF2462 擴(kuò)展段地址記錄 (HEX86) 擴(kuò)展段地址記錄也被稱為 HEX86記錄, 包含 4-19位的數(shù)據(jù)地址段, 這個(gè)擴(kuò)展段地址記錄總是有兩字節(jié)數(shù)據(jù),如下: :020000021200EA 02 是 記錄中的數(shù)據(jù)字節(jié)數(shù)目 0000 是地址域,在擴(kuò)展段地址記錄中,這個(gè)域總是0000 02 是記錄類型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ò)展段地址記錄中的地址域 下面舉例說明這個(gè)過程 從數(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è)記錄的類型域必須是01, 一個(gè)EOF記錄總是這樣: :00000001FF 00是記錄中數(shù)據(jù)字節(jié)的數(shù)目 0000這個(gè)地址對(duì)于EOF記錄來說無任何意義 01記錄類型是01(文件結(jié)束記錄標(biāo)示) FF是效驗(yàn)和計(jì)算如下 01h + NOT(00h + 00h + 00h + 01h). ======================== 總結(jié) 形如 :BBAAAATTHHHH...HHHHCC BB: Byte AAAA:數(shù)據(jù)記錄的開始地址,高位在前,地位在后 因?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 |
|
| 13樓: | >>參與討論 |
| 作者: qjy_dali 于 2005/8/20 7:46:00 發(fā)布:
樓上“雷風(fēng)”才是樓主要的及時(shí)雨呀! |
|
| 14樓: | >>參與討論 |
| 作者: piter_tan 于 2005/8/20 11:24:00 發(fā)布:
呵呵,我很笨的阿 看來半天我還是沒有明白是怎么回事的 |
|
| 15樓: | >>參與討論 |
| 作者: yadog 于 2005/8/20 21:13:00 發(fā)布:
回復(fù)主題:如何看HEX文件阿? 路過 |
|
|
|
| 免費(fèi)注冊(cè)為維庫電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 www.udpf.com.cn 浙ICP證030469號(hào) |