mvp.lst

来自「msc1201 编程4」· LST 代码 · 共 1,131 行 · 第 1/3 页

LST
1,131
字号
RC51 COMPILER V03.03.29,  MVP                     06/03/03  11:10:06  PAGE  1

QCW(0x00002F32)

WIN32 RC51 COMPILER V03.03.29, COMPILATION OF MODULE MVP       
OBJECT MODULE PLACED IN d:\data\msc1210\ride\mvp\mvp.obj
COMPILER INVOKED BY: RC51.EXE D:\DATA\MSC1210\RIDE\MVP\MVP.C OBJECT(D:\DATA\MSC1
            -210\RIDE\MVP\MVP.OBJ) PIN(D:\RIDE\INC) PIN(D:\RIDE\INC\51\TI\) NOAM
            - SUE_OPT PR(D:\DATA\MSC1210\RIDE\MVP\MVP.LST) CD SB OE(1) SM FP(NOF
            -LOAT) PW(80) MAXWAR(200) NOIS UNSIGNEDCHAR ET(CHAR) 

stmt level    source
   1          // MSC1210 Versatile Programmer 		HC 12/16/2002
   2          #include <REG1210.H>
   3          #include "mvp.h"

WARNING C179 IN LINE 183 OF mvp.h : 'msg' : mspace on parameter ignored
   4          unsigned int t0, t1, t2;	// global timers
   5          xdata at 0x0400 NV ping;
   6          xdata at 0x0480 NV pong;
   7          NV xdata * data nvcp; // current pointer
   8          NV xdata * data nvnp; // next pointer
   9          // Serial0
  10          unsigned char xdata *rx_hdptr;
  11          unsigned char xdata * rx_tailptr;
  12          unsigned char xdata * tx_hdptr;
  13          unsigned char xdata * tx_tailptr;
  14          bit txmt, rxmt, txfull, rxfull;
  15          void version (void)
  16          {
  17   1      	putstr("\x1b[1;37;46m\x1b[2J");
  18   1      	putstr("\nMSC Versatile Programmer\tVer:");
  19   1      	tx_hex(HWPC1);	tx_hex(HWPC0);	tx_hex(HWID);	tx_byte('F');
  20   1      	tx_hex(FWVer); putcr();
  21   1      }
  22          void initsfr(void)
  23          {
  24   1      	PASEL=0x10;		// PSEN output OscClk
  25   1      	CKCON &= 0xf8; 	// 0 MOVX cycle stretch
  26   1      	PDCON=0x05;		// tone/pwm/adc/systimer
  27   1      	// ADC setup
  28   1      	ACLK=kACLK;
  29   1      	DECIMATION=27;	// 800 sample per sec
  30   1      	ADCON0 = 0x00;			   // Vref Off, Buff on, BOD off, PGA 1
  31   1      	ADCON1=0x41;			  // Unipolar, Self Cal
  32   1      	ADMUX=0x08;
  33   1      	// UART setup
  34   1      	THL2=0xffff;
  35   1        	RCAP2  = kRCAP2;  // 57600 Baud @ 11.0592MHz
  36   1      	T2CON  = 0x34;  // T2 as baudrate generator 
  37   1        	SCON   = 0x52;  // Async mode 1, 8-bit UART, enable rcvr, TI=1,
            - RI=0	
  38   1        	// System timer setup
  39   1      	USEC = kUSEC;
  40   1      	MSEC = kMSEC;  
  41   1      	// ALE setup
  42   1      	PASEL=2;			// ALE pin = 0;
  43   1      	// Int Setup
  44   1      	MSINT=0x81;			// Interrupt per 2 ms
  45   1      	AIE=0x30;		// MSec Int and ADC Int
  46   1      	EAI=1;			// enable AuxInt
  47   1      	// Setup serial port interrupt
  48   1      	rx_hdptr=RX_BEG; rx_tailptr=RX_BEG;	tx_hdptr=TX_BEG; tx_tailptr=T
            -X_BEG;
  49   1      	txmt=1; rxmt=1; txfull=0; rxfull=0; TI=0; RI=0; 
  50   1      	EA=1; ES0=1;
  51   1      }
  52          
  53          void nvnew(void)
  54          {
  55   1      //		putstr("NV Clear\n");
  56   1      		beep(700,100);
  57   1      		EA=0; EAI=0; nvcp=&ping; nvnp=&pong;
  58   1      		page_erase(nvcp,0xff,FDM); EAI=1; EAI=0;

WARNING C207 IN LINE 58 OF mvp.c : suspicious pointer conversion
  59   1      		page_erase(nvnp,0xff,FDM);EAI=1; EAI=0;

WARNING C207 IN LINE 59 OF mvp.c : suspicious pointer conversion
  60   1      		write_flash_chk(&(nvcp->valid), Yes,FDM);

WARNING C207 IN LINE 60 OF mvp.c : suspicious pointer conversion
  61   1      		write_flash_chk(&(nvcp->cpu), CPUA,FDM);

WARNING C207 IN LINE 61 OF mvp.c : suspicious pointer conversion
  62   1      		write_flash_chk(&(nvcp->hexdlto), Master,FDM);

WARNING C207 IN LINE 62 OF mvp.c : suspicious pointer conversion
  63   1      		write_flash_chk(&(nvcp->speaker), On,FDM);

WARNING C207 IN LINE 63 OF mvp.c : suspicious pointer conversion
  64   1      		write_flash_chk(&(nvcp->mem),Target,FDM);

WARNING C207 IN LINE 64 OF mvp.c : suspicious pointer conversion
  65   1      		write_flash_chk(&(nvcp->memaddrl),0,FDM);

WARNING C207 IN LINE 65 OF mvp.c : suspicious pointer conversion
  66   1      		write_flash_chk(&(nvcp->memaddrh),0,FDM);

WARNING C207 IN LINE 66 OF mvp.c : suspicious pointer conversion
  67   1      		write_flash_chk(&(nvcp->forcesecure),None,FDM);

WARNING C207 IN LINE 67 OF mvp.c : suspicious pointer conversion
  68   1      		write_flash_chk(&(nvcp->mode),Program,FDM);

WARNING C207 IN LINE 68 OF mvp.c : suspicious pointer conversion
  69   1      		EAI=1; EA=1;
  70   1      		beep(300,100); 
  71   1      }
  72          void nvinit(void)
  73          {
  74   1      	if (ping.valid==Yes && pong.valid!=Yes) {nvcp=&ping; nvnp=&pong;}
            -
  75   1      	else if (pong.valid==Yes && ping.valid!=Yes) {nvcp=&pong; nvnp=&p
            -ing;}
  76   1      	else nvnew();
  77   1      }
  78          
  79          void updatenv(void)
  80          {
  81   1      	NV xdata * data nvtp; // temp pointer
  82   1      	EAI=0; EA=0;
  83   1      	write_flash_chk(&(nvnp->valid), Yes,FDM);	

WARNING C207 IN LINE 83 OF mvp.c : suspicious pointer conversion
  84   1      	if (nvnp->cpu == 0xff) 			write_flash_chk(&(nvnp->cpu),				(nvcp-
            ->cpu),FDM);	

WARNING C207 IN LINE 84 OF mvp.c : suspicious pointer conversion
  85   1      	if (nvnp->hexdlto == 0xff) 	write_flash_chk(&(nvnp->hexdlto),		(n
            -vcp->hexdlto),FDM);	

WARNING C207 IN LINE 85 OF mvp.c : suspicious pointer conversion
  86   1      	if (nvnp->speaker == 0xff) 	write_flash_chk(&(nvnp->speaker),		(n
            -vcp->speaker),FDM);	

WARNING C207 IN LINE 86 OF mvp.c : suspicious pointer conversion
  87   1      	if (nvnp->mem == 0xff) 			write_flash_chk(&(nvnp->mem),				(nvcp-
            ->mem),FDM);	

WARNING C207 IN LINE 87 OF mvp.c : suspicious pointer conversion
  88   1      	if (nvnp->memaddrl == 0xff) 	write_flash_chk(&(nvnp->memaddrl),		
            -(nvcp->memaddrl),FDM);

WARNING C207 IN LINE 88 OF mvp.c : suspicious pointer conversion
  89   1      	if (nvnp->memaddrh == 0xff) 	write_flash_chk(&(nvnp->memaddrh),		
            -(nvcp->memaddrh),FDM);

WARNING C207 IN LINE 89 OF mvp.c : suspicious pointer conversion
  90   1      	if (nvnp->forcesecure == 0xff)write_flash_chk(&(nvnp->forcesecure
            -),	(nvcp->forcesecure),FDM);

WARNING C207 IN LINE 90 OF mvp.c : suspicious pointer conversion
  91   1      	if (nvnp->mode == 0xff) 		write_flash_chk(&(nvnp->mode),			(nvcp-
            ->mode),FDM);		

WARNING C207 IN LINE 91 OF mvp.c : suspicious pointer conversion
  92   1      	EAI=1; EAI=0; page_erase(nvcp,0xff,FDM);	EAI=1; EA=1;

WARNING C207 IN LINE 92 OF mvp.c : suspicious pointer conversion
  93   1      	nvtp=nvcp;	nvcp=nvnp;	nvnp=nvtp; // pingpong swap, nvcp <-> nvnp	
            -
  94   1      }
  95          
  96          void modeswitch(void)
  97          {
  98   1      	if (high(k1) && !high(k2) && !high(k3)) {
  99   2      		EAI=0; EA=0; write_flash_chk(&(nvnp->mode),Bake,FDM);EAI=1; EA=1
            -;

WARNING C207 IN LINE 99 OF mvp.c : suspicious pointer conversion
 100   2      		updatenv();
 101   2      		beep(500,200); 
 102   2      	} 
 103   1      	if (!high(k1) && high(k2) && !high(k3)) {
 104   2      		EAI=0; EA=0; write_flash_chk(&(nvnp->mode),Program,FDM);EAI=1; E
            -A=1;

WARNING C207 IN LINE 104 OF mvp.c : suspicious pointer conversion
 105   2      		updatenv();
 106   2      		beep(500,200); 
 107   2      	} 
 108   1      	if (nvcp->mode==Bake){ led(GREEN,ON);  led(RED,OFF);}
 109   1      	if (nvcp->mode==Program)  { led(GREEN,ON); led(RED,ON);}
 110   1      	nokey();
 111   1      } 
 112          
 113          void main(void)
 114          {
 115   1      	char sfrinit=START, sfradr, sfrdata;
 116   1      	unsigned char c;
 117   1      	initsfr();	
 118   1      	while(sfrinit!=END){ // 
 119   2      		sfradr=faddr_data_read(sfrinit++);
 120   2      		sfrdata=faddr_data_read(sfrinit++);
 121   2      		if (sfradr!=0xff) {//host initialized 
 122   3      			sfr_wr(sfradr|0x80,sfrdata);
 123   3      		} else
 124   2      			sfrinit=END; // host never init sfr, or END reached
 125   2      	}
 126   1      	if (faddr_data_read(2)==0) { // (8002H)==0 => autobaud
 127   2      		SCON=0;
 128   2          	TR2 = 0;
 129   2      		T2CON=0;
 130   2      		THL2=0;
 131   2      		autobaud();

WARNING C090 IN LINE 131 OF mvp.c : Call to function 'autobaud' without prototy
            -pe
 132   2      	}
 133   1      	if (faddr_data_read(3)==0) { // (8003H)==0 => Toggle Test
 134   2      		while(1) {
 135   3      				al=c; CP=0; CP=1; id=c;
 136   3      				CMD0=(c&1)?1:0; CMD1=(c&2)?1:0; CMD2=(c&4)?1:0;
 137   3      				REQA=(c&1)?1:0; REQS=(c&2)?1:0;
 138   3      				c++;
 139   3      		}
 140   2      	}	
 141   1      	version(); 
 142   1      	putstr("H)help\n");
 143   1      	nvinit();
 144   1      	c=resetpfpm();

WARNING C090 IN LINE 144 OF mvp.c : Call to function 'resetpfpm' without protot
            -ype
 145   1      	if(c==0){
 146   2      		modeswitch();
 147   2      		cmd_parser(); 

WARNING C090 IN LINE 147 OF mvp.c : Call to function 'cmd_parser' without proto
            -type
 148   2      	} else {putstr("Err="); tx_hex(c); cmd_parser();}
 149   1      }
 150          
RC51 COMPILER V03.03.29,  MVP                     06/03/03  11:10:06  PAGE  2

ASSEMBLY LISTING OF GENERATED OBJECT CODE

            ; FUNCTION version (BEGIN)
                                           ; SOURCE LINE # 17 
0000 7E00    R      MOV    R6,#HIGH(?STR?MVP?BASE)
0002 7F00    R      MOV    R7,#LOW(?STR?MVP?BASE)
0004 120000  R      LCALL  _putstr
                                           ; SOURCE LINE # 18 
0007 7E00    R      MOV    R6,#HIGH(?STR?MVP?BASE + 00FH)
0009 7F00    R      MOV    R7,#LOW(?STR?MVP?BASE + 00FH)
000B 120000  R      LCALL  _putstr
                                           ; SOURCE LINE # 19 
000E AFEA           MOV    R7,HWPC1
0010 120000  R      LCALL  _tx_hex
0013 AFE9           MOV    R7,HWPC0
0015 120000  R      LCALL  _tx_hex
0018 AFEB           MOV    R7,HWID
001A 120000  R      LCALL  _tx_hex
001D 7F46           MOV    R7,#046H
001F 120000  R      LCALL  _tx_byte
                                           ; SOURCE LINE # 20 
0022 7F11           MOV    R7,#011H
0024 120000  R      LCALL  _tx_hex
0027 120000  R      LCALL  putcr
002A 22             RET    

            ; FUNCTION version (END)

            ; FUNCTION initsfr (BEGIN)
                                           ; SOURCE LINE # 24 
0000 75F210         MOV    PASEL,#010H
                                           ; SOURCE LINE # 25 
0003 538EF8         ANL    CKCON,#0F8H
                                           ; SOURCE LINE # 26 
0006 75F105         MOV    PDCON,#005H
                                           ; SOURCE LINE # 28 
0009 75F607         MOV    ACLK,#007H
                                           ; SOURCE LINE # 29 
000C E4             CLR    A
000D F5DF           MOV    DECIMATION+01H,A
000F 75DE1B         MOV    DECIMATION,#01BH
                                           ; SOURCE LINE # 30 
0012 F5DC           MOV    ADCON0,A
                                           ; SOURCE LINE # 31 
0014 75DD41         MOV    ADCON1,#041H
                                           ; SOURCE LINE # 32 
0017 75D708         MOV    ADMUX,#008H
                                           ; SOURCE LINE # 34 
001A 74FF           MOV    A,#0FFH
001C F5CD           MOV    THL2+01H,A
001E F5CC           MOV    THL2,A
                                           ; SOURCE LINE # 35 
0020 F5CB           MOV    RCAP2+01H,A
0022 75CAF3         MOV    RCAP2,#0F3H
                                           ; SOURCE LINE # 36 
0025 75C834         MOV    T2CON,#034H
                                           ; SOURCE LINE # 37 
0028 759852         MOV    SCON,#052H
                                           ; SOURCE LINE # 39 
002B 75FB17         MOV    USEC,#017H
                                           ; SOURCE LINE # 40 
002E 75FD5D         MOV    MSEC+01H,#05DH
0031 75FCBF         MOV    MSEC,#0BFH
                                           ; SOURCE LINE # 42 
0034 75F202         MOV    PASEL,#002H
                                           ; SOURCE LINE # 44 
0037 75FA81         MOV    MSINT,#081H
                                           ; SOURCE LINE # 45 
003A 75A630         MOV    AIE,#030H
                                           ; SOURCE LINE # 46 
003D D2DD           SETB   EAI
                                           ; SOURCE LINE # 48 
003F E4             CLR    A
0040 F500    R      MOV    rx_hdptr,A
0042 F500    R      MOV    rx_hdptr+01H,A
0044 F500    R      MOV    rx_tailptr,A
0046 F500    R      MOV    rx_tailptr+01H,A
0048 F500    R      MOV    tx_hdptr,A
004A 750010  R      MOV    tx_hdptr+01H,#010H
004D F500    R      MOV    tx_tailptr,A
004F 750010  R      MOV    tx_tailptr+01H,#010H
                                           ; SOURCE LINE # 49 
0052 D200    R      SETB   txmt
0054 D200    R      SETB   rxmt
0056 C200    R      CLR    txfull
0058 C200    R      CLR    rxfull
005A C299           CLR    TI
005C C298           CLR    RI
                                           ; SOURCE LINE # 50 
005E D2AF           SETB   EA
0060 D2AC           SETB   ES0
0062 22             RET    

            ; FUNCTION initsfr (END)

            ; FUNCTION nvnew (BEGIN)
                                           ; SOURCE LINE # 56 
0000 7E02           MOV    R6,#002H
0002 7FBC           MOV    R7,#0BCH
0004 E4             CLR    A
0005 FC             MOV    R4,A
0006 7D64           MOV    R5,#064H
0008 120000  R      LCALL  _beep
                                           ; SOURCE LINE # 57 
000B C2AF           CLR    EA
000D C2DD           CLR    EAI
000F 750004  R      MOV    nvcp,#HIGH (ping) 
0012 750000  R      MOV    nvcp+01H,#LOW (ping) 
0015 750004  R      MOV    nvnp,#HIGH (pong) 
0018 750080  R      MOV    nvnp+01H,#LOW (pong) 
                                           ; SOURCE LINE # 58 
001B AE00    R      MOV    R6,nvcp
001D AF00    R      MOV    R7,nvcp+01H
001F 7DFF           MOV    R5,#0FFH
0021 7B01           MOV    R3,#001H
0023 120000  R      LCALL  _page_erase
0026 D2DD           SETB   EAI
0028 C2DD           CLR    EAI
                                           ; SOURCE LINE # 59 
002A AE00    R      MOV    R6,nvnp
002C AF00    R      MOV    R7,nvnp+01H
002E 7DFF           MOV    R5,#0FFH
0030 7B01           MOV    R3,#001H
0032 120000  R      LCALL  _page_erase
0035 D2DD           SETB   EAI
0037 C2DD           CLR    EAI
                                           ; SOURCE LINE # 60 
0039 E500    R      MOV    A,nvcp+01H
003B 2401           ADD    A,#001H
003D FF             MOV    R7,A
003E E4             CLR    A
003F 3500    R      ADDC   A,nvcp
0041 FE             MOV    R6,A
0042 E4             CLR    A
0043 FD             MOV    R5,A
0044 7B01           MOV    R3,#001H
0046 120000  R      LCALL  _write_flash_chk
                                           ; SOURCE LINE # 61 
0049 AE00    R      MOV    R6,nvcp
004B AF00    R      MOV    R7,nvcp+01H
004D 7D80           MOV    R5,#080H

⌨️ 快捷键说明

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