|
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统 驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe |
如何看HEX文件阿? |
作者:hejide2002 栏目:单片机 |
2楼: | >>参与讨论 |
作者: hejide2002 于 2005/8/3 9:13:00 发布:
HEX怎么看?谢谢 比如: :03000000020023D8 :0C002300787FE4F6D8FD75810702000329 :10000300E4FFFEE4FDFC0DBD00010CED640A4C7041 :10001300F50FBF00010EBE03EABFE8E7B2A080E020 :00000001FF 谢谢!!! |
3楼: | >>参与讨论 |
作者: h218 于 2005/8/3 9:29:00 发布:
不同公司的编译器出来的不完全同 做几个简单的程式,对照 LIST 看 |
4楼: | >>参与讨论 |
作者: h218 于 2005/8/18 11:48:00 发布:
如没有 List 文件 一般的编译器在左边是地址,最右边是校验,还要看程序字的长度 PIC 有12位,16位 那么是两字节一行 51 系列、摩托等是不定长的,要难一些,一个一个的找 你的芯片是什么????? |
5楼: | >>参与讨论 |
作者: h218 于 2005/8/18 12:11:00 发布:
例子 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 发布:
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 发布:
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 发布:
51 指 令 代码 MOV A,#00H ....... 7400 ; 双字节 MOV A,#01H ....... 7401 MOV A,#02H ....... 7402 . . . NOP ....... 00 ; 单字节 INC A ....... 04 ; 单字节 |
9楼: | >>参与讨论 |
作者: h218 于 2005/8/18 12:50:00 发布:
关于地址 :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 行长 地址 :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 发布:
按 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 发布:
看他的HEX文件有什么用啊? 看他的HEX文件有什么用啊? |
12楼: | >>参与讨论 |
作者: 雷风 于 2005/8/20 2:43:00 发布:
楼主可能是不清楚hex文件格式吧,给你看一篇文章 一个INTEL HEX文件可以包含任意多的十六进制记录,每条记录有五个域,下面是一个记录的格式. :llAAAA.html">AAAAtt[dd...]cc 每一组字母是独立的一域,每一个字母是一个十六进制数字,每一域至少由两个十六进制数字组成,下面是字节的描述. :冒号 是每一条INTEL HEX记录的开始 ll 是这条记录的长度域,他表示数据(dd)的字节数目. AAAA.html">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 |
13楼: | >>参与讨论 |
作者: qjy_dali 于 2005/8/20 7:46:00 发布:
楼上“雷风”才是楼主要的及时雨呀! |
14楼: | >>参与讨论 |
作者: piter_tan 于 2005/8/20 11:24:00 发布:
呵呵,我很笨的阿 看来半天我还是没有明白是怎么回事的 |
15楼: | >>参与讨论 |
作者: yadog 于 2005/8/20 21:13:00 发布:
回复主题:如何看HEX文件阿? 路过 |
|
|
免费注册为维库电子开发网会员,参与电子工程师社区讨论,点此进入 |
Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号 |