📄 hex.lst
字号:
C51 COMPILER V7.50 HEX 10/30/2008 09:30:27 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE HEX
OBJECT MODULE PLACED IN hex.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE hex.C BROWSE DEBUG OBJECTEXTEND
line level source
1 #include"hex.h"
2 #include<ctype.h>
3 uchar hex_parser(void)
4 {
5 1 uchar hex_data;
6 1 status=HEX_DEC_OK;
7 1 while(status==HEX_DEC_OK)
8 1 {
9 2 if(nb_rx_data!=0)
10 2 {
11 3 hex_data=rx_buffer_rd();
12 3 status=hex_decoder(hex_data);
13 3 }
14 2 }
15 1 return status;
16 1 }
17 unsigned char hex_decoder(unsigned char hex_data)
18 {
19 1 static uchar state=REC_MARK;
20 1 static uchar length,type,nb_byte,data_value,sum,sum_1,sum_2;
21 1 static Uint16 offset;
22 1 switch(state){
23 2 case REC_MARK:if(hex_data==':'){state=REC_LEN_1;nb_byte=0;}else state=REC_MARK;break;
24 2 case REC_LEN_1:length=toint(hex_data)*16;state=REC_LEN_2;break;
25 2 case REC_LEN_2:length=toint(hex_data)+length;state=OFFSET_1;break;
26 2 case OFFSET_1:offset=toint(hex_data)*4096;state=OFFSET_2;break;
27 2 case OFFSET_2:offset=offset+toint(hex_data)*256;sum_1=offset/256;state=OFFSET_3;break;
28 2 case OFFSET_3:offset=offset+toint(hex_data)*16;state=OFFSET_4;break;
29 2 case OFFSET_4:offset=offset+toint(hex_data);sum_2=offset-sum_1*256;state=REC_TYP_1;break;
30 2 case REC_TYP_1:type=toint(hex_data)*16;state=REC_TYP_2;break;
31 2 case REC_TYP_2:type=type+toint(hex_data);sum=length+sum_1+sum_2+type;if(length==0)state=CHEKSUM_1;else st
-ate=DATA_1;break;
32 2 case DATA_1:data_value=toint(hex_data)*16;state=DATA_2;break;
33 2 case DATA_2:data_value=data_value+toint(hex_data);sum=sum+data_value;
34 2 flash_wr(offset+nb_byte,data_value);
35 2 nb_byte++;
36 2 if(nb_byte==length)state=CHEKSUM_1;else state=DATA_1;
37 2 break;
38 2 case CHEKSUM_1:sum_1=toint(hex_data)*16;sum=(~sum)+1;state=CHEKSUM_2;break;
39 2 case CHEKSUM_2:sum_1=sum_1+toint(hex_data);if(sum_1!=sum)status=HEX_DEC_CSERR;state=REC_MARK;if(type==0
-x01)status=HEX_DEC_END;break;
40 2 }
41 1 return status;
42 1 }
43
44
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 401 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 10 2
IDATA SIZE = ---- ----
C51 COMPILER V7.50 HEX 10/30/2008 09:30:27 PAGE 2
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -