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

📄 xmodem.lst

📁 8051带32Mflash的源代码
💻 LST
字号:
C51 COMPILER V7.01  XMODEM                                                                 08/31/2007 14:11:36 PAGE 1   


C51 COMPILER V7.01, COMPILATION OF MODULE XMODEM
OBJECT MODULE PLACED IN .\xmodem.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ..\source\xmodem.c BROWSE DEBUG OBJECTEXTEND LISTINCLUDE PRINT(.\xmodem.lst
                    -) OBJECT(.\xmodem.obj)

stmt level    source

   1          static unsigned char xmodem_buff[128+4];
   2          static unsigned char xmodem_block_number;
   3          static int xmodem_index = -1;
   4          
   5          static int get_xmodem_frame(void)
   6          {
   7   1       TIMER timeout;
*** ERROR C202 IN LINE 7 OF ..\SOURCE\XMODEM.C: 'TIMER': undefined identifier
*** ERROR C141 IN LINE 7 OF ..\SOURCE\XMODEM.C: syntax error near 'timeout'
   8   1       int index;
*** ERROR C141 IN LINE 8 OF ..\SOURCE\XMODEM.C: syntax error near 'int'
*** ERROR C202 IN LINE 8 OF ..\SOURCE\XMODEM.C: 'index': undefined identifier
   9   1       int c;
*** ERROR C141 IN LINE 9 OF ..\SOURCE\XMODEM.C: syntax error near 'int'
*** ERROR C202 IN LINE 9 OF ..\SOURCE\XMODEM.C: 'c': undefined identifier
  10   1      
  11   1       xmodem_index = -1;
  12   1      
  13   1       set_timer(&timeout, ONE_SECOND*10 );
*** ERROR C202 IN LINE 13 OF ..\SOURCE\XMODEM.C: 'timeout': undefined identifier
  14   1      
  15   1       do {
  16   2        c = getchar();
*** ERROR C202 IN LINE 16 OF ..\SOURCE\XMODEM.C: 'c': undefined identifier
  17   2       } while(c < 0 && ! timer_expired(&timeout));
*** ERROR C202 IN LINE 17 OF ..\SOURCE\XMODEM.C: 'c': undefined identifier
  18   1      
  19   1       if(c < 0) {
  20   2        return -1;
  21   2       }
  22   1      
  23   1       if(c != XMODEM_SOH && c != XMODEM_EOT && c != XMODEM_CAN) {
*** ERROR C202 IN LINE 23 OF ..\SOURCE\XMODEM.C: 'c': undefined identifier
  24   2        set_timer(&timeout, ONE_SECOND);
*** ERROR C202 IN LINE 24 OF ..\SOURCE\XMODEM.C: 'timeout': undefined identifier
  25   2        do {
  26   3         c = getchar();
*** ERROR C202 IN LINE 26 OF ..\SOURCE\XMODEM.C: 'c': undefined identifier
  27   3         if(c >= 0) {
*** ERROR C202 IN LINE 27 OF ..\SOURCE\XMODEM.C: 'c': undefined identifier
  28   4          set_timer(&timeout, ONE_SECOND);
*** ERROR C202 IN LINE 28 OF ..\SOURCE\XMODEM.C: 'timeout': undefined identifier
  29   4         }
  30   3        } while( ! timer_expired(&timeout));
*** ERROR C202 IN LINE 30 OF ..\SOURCE\XMODEM.C: 'timeout': undefined identifier
  31   2        return -1;
  32   2       }
  33   1      
  34   1       index = 0;
*** ERROR C202 IN LINE 34 OF ..\SOURCE\XMODEM.C: 'index': undefined identifier
  35   1       xmodem_buff[index++] = c;
*** ERROR C202 IN LINE 35 OF ..\SOURCE\XMODEM.C: 'index': undefined identifier
  36   1      
  37   1       if(c == XMODEM_EOT || c == XMODEM_CAN)
C51 COMPILER V7.01  XMODEM                                                                 08/31/2007 14:11:36 PAGE 2   

*** ERROR C202 IN LINE 37 OF ..\SOURCE\XMODEM.C: 'c': undefined identifier
  38   1       {
  39   2        return 0;
  40   2       }
  41   1      
  42   1       while(index < sizeof(xmodem_buff)) {
*** ERROR C202 IN LINE 42 OF ..\SOURCE\XMODEM.C: 'index': undefined identifier
  43   2      
  44   2                set_timer(&timeout, ONE_SECOND);
*** ERROR C202 IN LINE 44 OF ..\SOURCE\XMODEM.C: 'timeout': undefined identifier
  45   2              
  46   2                do
  47   2               {
  48   3                         c = getchar();
*** ERROR C202 IN LINE 48 OF ..\SOURCE\XMODEM.C: 'c': undefined identifier
  49   3                } 
  50   2                while(c < 0 && ! timer_expired(&timeout));
*** ERROR C202 IN LINE 50 OF ..\SOURCE\XMODEM.C: 'c': undefined identifier
  51   2              
  52   2                if(c < 0) {
  53   3                 return -1;
  54   3                }
  55   2              
  56   2                xmodem_buff[index++] = c;
*** ERROR C202 IN LINE 56 OF ..\SOURCE\XMODEM.C: 'index': undefined identifier
  57   2               }
  58   1              
  59   1               xmodem_index = 0;
  60   1               return 0;
  61   1      }
  62          
  63          
  64          static int xmodem_verify_frame(void)
  65          {
  66   1       int i;
  67   1       unsigned char checksum;
  68   1      
  69   1       if(xmodem_buff[0] != XMODEM_SOH) {
*** ERROR C202 IN LINE 69 OF ..\SOURCE\XMODEM.C: 'XMODEM_SOH': undefined identifier
  70   2        return -1;
  71   2       }
  72   1       if(xmodem_buff[1] != xmodem_block_number) {
  73   2        return -1;
  74   2       }
  75   1      
  76   1       if(xmodem_buff[2] != ((~xmodem_block_number) & 0xff)) {
  77   2        return -1;
  78   2       }
  79   1      
  80   1       checksum = 0;
  81   1      
  82   1       for(i = 3; i < sizeof(xmodem_buff)-1; i++) {
  83   2        checksum += xmodem_buff[i];
  84   2       }
  85   1      
  86   1       if(checksum != xmodem_buff[sizeof(xmodem_buff)-1]) {
*** ERROR C193 IN LINE 86 OF ..\SOURCE\XMODEM.C: '!=': bad operand type
  87   2        return -1;
  88   2       }
  89   1      
  90   1       return 0;
  91   1      }
C51 COMPILER V7.01  XMODEM                                                                 08/31/2007 14:11:36 PAGE 3   

  92          
  93          static int xmodem_get_more(void)
  94          {
  95   1       int err;
  96   1       int err_retry_count;
  97   1      
  98   1       xmodem_block_number++;
  99   1       err_retry_count = 0;
 100   1      
 101   1       while(err_retry_count < XMODEM_ERR_RETRY_COUNT)
*** ERROR C202 IN LINE 101 OF ..\SOURCE\XMODEM.C: 'XMODEM_ERR_RETRY_COUNT': undefined identifier
 102   1       {
 103   2        if(xmodem_index < 0) {
 104   3         putchar(XMODEM_NAK);
*** ERROR C202 IN LINE 104 OF ..\SOURCE\XMODEM.C: 'XMODEM_NAK': undefined identifier
 105   3        }
 106   2      
 107   2        err = get_xmodem_frame();
 108   2      
 109   2        if(err == 0) {
 110   3         if(xmodem_buff[0] == XMODEM_SOH) {
*** ERROR C202 IN LINE 110 OF ..\SOURCE\XMODEM.C: 'XMODEM_SOH': undefined identifier
 111   4          if( xmodem_verify_frame() == 0) {
 112   5           putchar(XMODEM_ACK);//uart_sendchar
*** ERROR C202 IN LINE 112 OF ..\SOURCE\XMODEM.C: 'XMODEM_ACK': undefined identifier
 113   5           xmodem_index = 3;
 114   5           return 0;
 115   5          } else if(xmodem_buff[1] == xmodem_block_number -1) {
 116   5           putchar(XMODEM_ACK);//uart_sendchar
*** ERROR C202 IN LINE 116 OF ..\SOURCE\XMODEM.C: 'XMODEM_ACK': undefined identifier
 117   5          } else {
 118   5           xmodem_index = -1;
 119   5          }
 120   4          err_retry_count++;
 121   4          continue;
 122   4         } else if(xmodem_buff[0] == XMODEM_EOT) {
*** ERROR C202 IN LINE 122 OF ..\SOURCE\XMODEM.C: 'XMODEM_EOT': undefined identifier
 123   4          putchar(XMODEM_ACK);
*** ERROR C202 IN LINE 123 OF ..\SOURCE\XMODEM.C: 'XMODEM_ACK': undefined identifier
 124   4          xmodem_index = -1;
 125   4          return -1;
 126   4         }
 127   3        }
 128   2      
 129   2        xmodem_index = -1;
 130   2        err_retry_count++;
 131   2       }
 132   1      
 133   1       xmodem_index = -1;
 134   1       return -2;
 135   1      }
 136          
 137          static int xmodem_eof(void)
 138          {
 139   1       int i;
 140   1      
 141   1       if(xmodem_index < 0) {
 142   2        return 1;
 143   2       }
 144   1      
 145   1       for( i = xmodem_index; i < sizeof(xmodem_buff) -1; i++) {
 146   2        if(xmodem_buff[i] != XMODEM_EOF) {
C51 COMPILER V7.01  XMODEM                                                                 08/31/2007 14:11:36 PAGE 4   

*** ERROR C202 IN LINE 146 OF ..\SOURCE\XMODEM.C: 'XMODEM_EOF': undefined identifier
 147   3         return 0;
 148   3        }
 149   2       }
 150   1      
 151   1       if(peekchar() != XMODEM_EOT) {
 152   2        return 0;
 153   2       }
 154   1      
 155   1       return 1;
 156   1      }
 157          
 158          int xmodem_start(void)
 159          {
 160   1       xmodem_index = sizeof(xmodem_buff)-1;
 161   1       xmodem_block_number = 0;
 162   1      
 163   1       return 0;
 164   1      }
 165          
 166          int xmodem_finish(void)
 167          {
 168   1       int c;
 169   1      
 170   1       do {
 171   2        c = xmodem_getchar();
 172   2       } while(c >= 0);
 173   1      
 174   1       return 0;
 175   1      }
 176          
 177          
 178          int xmodem_abort(void)
 179          {
 180   1       int i;
 181   1      
 182   1       for(i=0; i<8; i++) {
 183   2        putchar(XMODEM_CAN);
 184   2      }
 185   1      
 186   1       xmodem_finish();
 187   1      
 188   1       return 0;
 189   1      }
 190          
 191          /****************************************************************
 192           * This is the user api call for xmodem transfers.
 193           *
 194           *
 195           */
 196          
 197          int xmodem_getchar(void)
 198          {
 199   1       int err;
 200   1       int c;
 201   1       if(xmodem_index < 0) {
 202   2        return -1;
 203   2       }
 204   1      
 205   1       if(xmodem_index >= sizeof(xmodem_buff)-1) {
 206   2        err = xmodem_get_more();
 207   2      
C51 COMPILER V7.01  XMODEM                                                                 08/31/2007 14:11:36 PAGE 5   

 208   2        if(err < 0) {
 209   3         return err;
 210   3        }
 211   2       }
 212   1      
 213   1       c = xmodem_buff[xmodem_index];
 214   1       xmodem_index++;
 215   1      
 216   1       if(c == XMODEM_EOF) {
 217   2        if( xmodem_eof() ) {
 218   3         xmodem_finish();
 219   3         xmodem_index = -1;
 220   3         return -1;
 221   3        }
 222   2       }
 223   1      
 224   1       return c;
 225   1      }
 226          

C51 COMPILATION COMPLETE.  0 WARNING(S),  33 ERROR(S)

⌨️ 快捷键说明

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