⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 e2emu.lst

📁 msc1201 编程3
💻 LST
📖 第 1 页 / 共 2 页
字号:
RC51 COMPILER V03.03.27,  E2EMU                   12/10/02  11:36:32  PAGE  1

QCW(0x00002F32)

WIN32 RC51 COMPILER V03.03.27, COMPILATION OF MODULE E2EMU     
OBJECT MODULE PLACED IN d:\data\msc1210\ride\e2emu\e2emu.obj
COMPILER INVOKED BY: RC51.EXE D:\DATA\MSC1210\RIDE\E2EMU\E2EMU.C OBJECT(D:\DATA\
            -MSC1210\RIDE\E2EMU\E2EMU.OBJ) PIN(D:\RIDE\INC) NOAM PR(D:\DATA\MSC1
            -210\RIDE\E2EMU\E2EMU.LST) CD SB OE(1) SM MODAMD(DP2) FP(NOFLOAT) PW
            -(80) NOIS UNSIGNEDCHAR ET(CHAR) 

stmt level    source
   1          #include "REG1210.H"
   2          #define OneMsConst	(1843-1)
   3          #define OneUsConst	(2-1)
   4          //#define OneMsConst	(22118-1)
   5          //#define OneUsConst	(22-1)
   6          #define FDM				1			// Flash Data Memory
   7          #define FPM				0			// Flash Program Memory
   8          #define CR				0x0a
   9          #define LF				0x0d
  10          #define BS				0x08
  11          extern void autobaud(void);
  12          extern char faddr_data_read(char);
  13          extern void put_string(char code *string);
  14          extern void putcr(void);
  15          extern void tx_byte(char);
  16          extern char rx_byte_echo(void);
  17          extern char page_erase (int faddr, char fdata, char fdm);
  18          extern char write_flash_chk (int faddr, char fdata, char fdm);
  19          sbit P17 = P1^7;
  20          char rmw(unsigned char faddr, unsigned char fdata) //read-modify-w
            -rite FDM
  21          {  unsigned char i,c;
  22   1      	unsigned char xdata * ptr;
  23   1      	unsigned char xdata * bufptr;
  24   1      	P17=!P17;
  25   1      	page_erase(0x0400, 0xff, FDM); 	// temp buf 0x400~0x047f
  26   1      	P17=!P17;
  27   1      	ptr = 0x0480;							// source page begin adr

WARNING C207 IN LINE 27 OF e2emu.c : suspicious pointer conversion
  28   1      	bufptr=0x0400;

WARNING C207 IN LINE 28 OF e2emu.c : suspicious pointer conversion
  29   1      	// backup target page to temp buf
  30   1      	for (i=0; i<128; i++) write_flash_chk(bufptr++,*ptr++,FDM);

WARNING C207 IN LINE 30 OF e2emu.c : suspicious pointer conversion
  31   1      	P17=!P17;
  32   1      	page_erase(0x0480, 0xff, FDM); 	// erase destination page
  33   1      	P17=!P17;
  34   1      	write_flash_chk((unsigned int)(0x0480+faddr),fdata,FDM);
  35   1      	bufptr=0x0400;							// source page

WARNING C207 IN LINE 35 OF e2emu.c : suspicious pointer conversion
  36   1      	ptr= 0x0480;							// destination page

WARNING C207 IN LINE 36 OF e2emu.c : suspicious pointer conversion
  37   1      	for (i=0; i<128; i++) {
  38   2      		if (i==faddr)c=fdata; else c=*bufptr;
  39   2      		write_flash_chk((unsigned int)(0x0480+i),c,FDM); 
  40   2      		bufptr++;
  41   2      	}
  42   1      	P17=!P17;
  43   1      }

WARNING C096 IN LINE 43 OF e2emu.c : Function 'rmw' should return a value
  44          void main(void)
  45          {	
  46   1      	unsigned char xdata * msgptr;
  47   1      	unsigned char xdata * ptr;
  48   1      	char i,c, cursor_ptr;
  49   1      	CKCON &= 0xf8; 	// 0 MOVX cycle stretch
  50   1      	PDCON &= 0x0ed;	//turn on tone gen & sys timer
  51   1      	//Flash Related Timer Setup
  52   1      	USEC = OneUsConst;
  53   1      	MSEC = OneMsConst;  
  54   1      	FTCON=0xa5;
  55   1         T2CON  = 0x34;   // T2 as baudrate generator 
  56   1         RCAP2  = 65535;  // 57600 Baud @ 1.8432MHz
  57   1      //   RCAP2  = 65524;  // 57600 Baud @ 22.1184MHz
  58   1         SCON   = 0x52;   // Async mode 1, 8-bit UART, enable rcvr, TI=1
            -, RI=0
  59   1      	put_string("\x1b[46;37m\x1b[25C\x1b[2JMSC1210 E2PROM Emulation\nA
            -ny key to start:");
  60   1      	while(RI==0) {;} // get a key	
  61   1      	RI=0;	
  62   1      	put_string("\x1b[2;1HInput message:      ");
  63   1      	msgptr=0x0480;

WARNING C207 IN LINE 63 OF e2emu.c : suspicious pointer conversion
  64   1      	while(1) {
  65   2      		ptr=msgptr;
  66   2      		put_string("\x1b[3;1H'"); //set cursor
  67   2      		for (i=0; i<128; i++) tx_byte(*ptr++);
  68   2      		put_string("'\x1b[2;15H"); 
  69   2      		while(RI==0) {;} // get a key		
  70   2      		c=rx_byte_echo();
  71   2      		if (c==CR || c==LF) cursor_ptr=0;
  72   2      		else if (c==BS) {cursor_ptr--; rmw(cursor_ptr,' ');}
  73   2      		else rmw(cursor_ptr++,c);
  74   2      		if (cursor_ptr<0) cursor_ptr=0;
  75   2      	}		
  76   1      }
  77          
RC51 COMPILER V03.03.27,  E2EMU                   12/10/02  11:36:32  PAGE  2

ASSEMBLY LISTING OF GENERATED OBJECT CODE

            ; FUNCTION _rmw (BEGIN)
                                           ; SOURCE LINE # 20 
0000 8F00    R      MOV    faddr,R7
0002 8D00    R      MOV    fdata,R5
                                           ; SOURCE LINE # 24 
0004 B297           CPL    P17
                                           ; SOURCE LINE # 25 
0006 7E04           MOV    R6,#004H
0008 E4             CLR    A
0009 FF             MOV    R7,A
000A 7DFF           MOV    R5,#0FFH
000C 7B01           MOV    R3,#001H
000E 120000  R      LCALL  _page_erase
                                           ; SOURCE LINE # 26 
0011 B297           CPL    P17
                                           ; SOURCE LINE # 27 
0013 750004  R      MOV    ptr,#004H
0016 750080  R      MOV    ptr+01H,#080H
                                           ; SOURCE LINE # 28 
0019 750004  R      MOV    bufptr,#004H
001C E4             CLR    A
001D F500    R      MOV    bufptr+01H,A
                                           ; SOURCE LINE # 30 
001F F500    R      MOV    i,A
0021         ?FOR2:
0021 AE00    R      MOV    R6,bufptr
0023 AF00    R      MOV    R7,bufptr+01H
0025 0500    R      INC    bufptr+01H
0027 E500    R      MOV    A,bufptr+01H
0029 7002           JNZ    ?LAB8
002B 0500    R      INC    bufptr
002D         ?LAB8:
002D 850083  R      MOV    DPH,ptr
0030 850082  R      MOV    DPL,ptr+01H
0033 0500    R      INC    ptr+01H
0035 E500    R      MOV    A,ptr+01H
0037 7002           JNZ    ?LAB9
0039 0500    R      INC    ptr
003B         ?LAB9:
003B E0             MOVX   A,@DPTR
003C FD             MOV    R5,A
003D 7B01           MOV    R3,#001H
003F 120000  R      LCALL  _write_flash_chk
0042 0500    R      INC    i
0044 E500    R      MOV    A,i
0046 6480           XRL    A,#080H
0048 70D7           JNZ    ?FOR2
                                           ; SOURCE LINE # 31 
004A B297           CPL    P17
                                           ; SOURCE LINE # 32 
004C 7E04           MOV    R6,#004H
004E 7F80           MOV    R7,#080H
0050 7DFF           MOV    R5,#0FFH
0052 7B01           MOV    R3,#001H
0054 120000  R      LCALL  _page_erase
                                           ; SOURCE LINE # 33 
0057 B297           CPL    P17
                                           ; SOURCE LINE # 34 
0059 E500    R      MOV    A,faddr
005B 2480           ADD    A,#080H
005D FF             MOV    R7,A
005E E4             CLR    A
005F 3404           ADDC   A,#004H
0061 FE             MOV    R6,A
0062 AD00    R      MOV    R5,fdata
0064 7B01           MOV    R3,#001H
0066 120000  R      LCALL  _write_flash_chk
                                           ; SOURCE LINE # 35 
0069 750004  R      MOV    bufptr,#004H
006C E4             CLR    A
006D F500    R      MOV    bufptr+01H,A
                                           ; SOURCE LINE # 36 
006F 750004  R      MOV    ptr,#004H
0072 750080  R      MOV    ptr+01H,#080H
                                           ; SOURCE LINE # 37 
0075 F500    R      MOV    i,A

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -