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

📄 debug.lst

📁 MST720-DEMO程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
 287   4                              }
 288   3                              sysWriteUartOneByte(ucDat);
 289   3                      }
 290   2              }
 291   1        
 292   1              if (ucFz==0) 
 293   1                      sysWriteUartOneByte('0');
 294   1      }
 295          
 296          
 297          #if (RS232DBG&MSG_CMDRECEIVE)
 298          
 299          void sysRxUartOneByte(void)
 300          {
 301   1              BYTE ucDat;
 302   1        
C51 COMPILER V7.50   DEBUG                                                                 03/18/2008 22:29:05 PAGE 6   

 303   1              RI=0;
 304   1              ucDat=SBUF;
 305   1      
 306   1              g_ucRcvCmd[g_uwRcvIndex]=ucDat;
 307   1              g_uwRcvIndex++;
 308   1      
 309   1              switch (g_ucRcvCmd[0])
 310   1              {
 311   2                      case 'E' :
 312   2                      case 'R' :
 313   2                      case 'X' :
 314   2                      case 'K' :
 315   2                      case 'D' :
 316   2                              if (g_uwRcvIndex==RCV_232_CMD_L2)
 317   2                              {
 318   3                                      g_uwRcvIndex=0;
 319   3                                      g_ucRV232cmdFlag=1;
 320   3                              }
 321   2                              break;
 322   2              
 323   2                      case 'W' :
 324   2                      case 'x' :
 325   2                      case 'd' :
 326   2                              if (g_uwRcvIndex==RCV_232_CMD_L3)
 327   2                              {
 328   3                                      g_uwRcvIndex=0;
 329   3                                      g_ucRV232cmdFlag=1;
 330   3                              }
 331   2                              break;
 332   2      
 333   2      
 334   2                      case 0x53:
 335   2                              if (g_uwRcvIndex==RCV_232_CMD_L5)
 336   2                              {
 337   3                                      g_uwRcvIndex=0;
 338   3                                      g_ucRV232cmdFlag=1;
 339   3                              }
 340   2                              break;
 341   2      
 342   2                      default:
 343   2                              g_uwRcvIndex=0;
 344   2              }
 345   1        
 346   1      }
 347          
 348          void sysRxCmdProcess(void)
 349          {
 350   1              BYTE ucAddress;
 351   1              BYTE ucRegData;
 352   1              
 353   1              switch(g_ucRcvCmd[0])
 354   1              {
 355   2                      case 0x53:
 356   2                              // link password
 357   2                              if ((g_ucRcvCmd[1]==0x45)&&(g_ucRcvCmd[2]==0x52)&&
 358   2                                      (g_ucRcvCmd[3]==0x44)&&(g_ucRcvCmd[4]==0x42))
 359   2                              {
 360   3                                      sysWriteUartOneByte(0xb2);
 361   3                                      g_bDebugMode=1;
 362   3                              }
 363   2                              // exit link password
 364   2                              if ((g_ucRcvCmd[1]==0x44)&&(g_ucRcvCmd[2]==0x45)&&
C51 COMPILER V7.50   DEBUG                                                                 03/18/2008 22:29:05 PAGE 7   

 365   2                                      (g_ucRcvCmd[3]==0x46)&&(g_ucRcvCmd[4]==0x47))
 366   2                              {
 367   3                                      sysWriteUartOneByte(0x45);
 368   3                                      g_bDebugMode=0;
 369   3                              }
 370   2                              if ((g_ucRcvCmd[1]==0x44)&&(g_ucRcvCmd[2]==0x45)&&
 371   2                                      (g_ucRcvCmd[3]==0x47)&&(g_ucRcvCmd[4]==0x46))
 372   2                              {
 373   3                                      sysWriteUartOneByte(0x45);
 374   3                                      Display.ucVCOMdc=mstReadByte(BK1_43_BVOM_DC);
 375   3                                      Display.ucVCOMac=mstReadByte(BK1_44_BVOM_OUT);
 376   3                                      mstSaveDisplayData();
 377   3                              }
 378   2                              break;  
 379   2                      //-------------------------------------------------------------
 380   2                      //              Echo command
 381   2                      //-------------------------------------------------------------
 382   2                      case 'E':
 383   2                              sysWriteUartOneByte(g_ucRcvCmd[1]);
 384   2                              break;
 385   2                      //-------------------------------------------------------------
 386   2                      //              Read/Write
 387   2                      //-------------------------------------------------------------
 388   2                      case 'W':
 389   2                      case 'x':
 390   2                              //Write Register Command
 391   2                              ucAddress = g_ucRcvCmd[1];
 392   2                              ucRegData = g_ucRcvCmd[2];
 393   2                              mstWriteByte(ucAddress, ucRegData);
 394   2                              break;
 395   2                              
 396   2                      case 'R':
 397   2                      case 'X':
 398   2                              //Read Register Command
 399   2                              ucAddress = g_ucRcvCmd[1];
 400   2                              ucRegData = mstReadByte(ucAddress);
 401   2                              sysWriteUartOneByte(ucRegData);
 402   2                              break;
 403   2                                      
 404   2                      //-------------------------------------------------------------
 405   2                      //              ask peripheral
 406   2                      //-------------------------------------------------------------
 407   2                      //-------- tell diag.exe what peripheral is ...
 408   2                      case 'K':
 409   2                              //CPU_ColorBar(100,10);
 410   2                              ucAddress = g_ucRcvCmd[1];
 411   2                              switch (ucAddress)
 412   2                              {
 413   3                                      case 'P':
 414   3      
 415   3                                              break;
 416   3                                      default:
 417   3                                              ucRegData = 'X';
 418   3                                              break;
 419   3                              }
 420   2                              sysWriteUartOneByte(ucRegData);
 421   2                              break;
 422   2      
 423   2      
 424   2      #if I2C_ENABLE
              
                              //-------------------------------------------------------------
C51 COMPILER V7.50   DEBUG                                                                 03/18/2008 22:29:05 PAGE 8   

                              //              EEPROM    Read/Write
                              //-------------------------------------------------------------
                              case 'd':
                                      //-------- write EEPROM register -------
                                      ucAddress = g_ucRcvCmd[1];
                                      ucRegData = g_ucRcvCmd[2];
                                      sysI2CWriteByte(EEPROMID, ucAddress, ucRegData);
                                      break;
              
                              case 'D':
                                       //-------- read  EEPROM register -------
                                      ucAddress = g_ucRcvCmd[1];
                                      ucRegData = sysI2CReadByte(EEPROMID, ucAddress);
                                      sysWriteUartOneByte(ucRegData);
                                      break;
              
              #endif  // I2C_ENABLE
 444   2              } // Switch
 445   1      }
 446          
 447          void sysCheckUartCmd(void)
 448          {
 449   1              do
 450   1              {
 451   2                      if(g_ucUartRxFlag)
 452   2                      {
 453   3                              if(g_ucRV232cmdFlag)
 454   3                              {
 455   4                                      g_ucRV232cmdFlag=0;
 456   4                                      sysRxCmdProcess();
 457   4                              }
 458   3                      }
 459   2              }while(g_bDebugMode);
 460   1      }
 461          
 462          #endif  //(RS232DBG&MSG_CMDRECEIVE)
 463          
 464          #if 0
              void sysUartIntrrupt(void) interrupt 4
              {
                      if(g_ucUartRxFlag)
                      {
                              if(TI)
                              {
                                      TI=0;
              #if USEXDATABUFF
                              sysTxUartOneByte();
              #endif 
                              }
              
                              if(RI)
                              {
                                      RI=0;
              #if (RS232DBG&MSG_CMDRECEIVE)
                      sysRxUartOneByte();
              #endif
                              }
                      }
                      else
                      {
                              TI=RI=0;
                      }
C51 COMPILER V7.50   DEBUG                                                                 03/18/2008 22:29:05 PAGE 9   

              }
              #endif  
 491          
 492          void sysUartDebugInit(void)
 493          {
 494   1      
 495   1              SCON = 0x50;                    // mode 1, 8-bit UART, enable receive
 496   1      
 497   1              if (_SMOD) 
 498   1                      PCON |= 0x80;
 499   1      
 500   1              TMOD = (TMOD & 0x0f) | 0x20;    // timer1, mode 2, 8-bit reload
 501   1              TH1 = TIMER1_MODE2_TH1;         // set timer1(buad rate)
 502   1              TR1 = 1;                                // timer1 run
 503   1      
 504   1              TI = 0;                                 // clear transmit flag
 505   1              RI = 0;                                 // clear received flag
 506   1              PS = 0;                                 // set uart priority low
 507   1              ES = 1;                                 // enable uart interrupt
 508   1              
 509   1              g_bDebugMode=0;
 510   1              g_uwUartTxPtr=g_uwUartWritePtr=0;
 511   1              g_ucUartRxFlag=1;
 512   1      
 513   1      }
 514          void printf(BYTE code *pFmt, WORD wVal)
 515          {
 516   1          BYTE ucBff, ucDisp;
 517   1          BOOL bNotZero=FALSE, bHex=FALSE;
 518   1          WORD wDivider=10000;
 519   1      
 520   1          while( ucBff = *(pFmt++) )
 521   1          {
 522   2              if(ucBff == '%') // check special case
 523   2              {
 524   3                  switch( *(pFmt++) ) // check next character
 525   3                  {
 526   4                      case 'x': // hexadecimal number
 527   4                      case 'X':
 528   4                          wDivider = 0x1000;
 529   4                          bHex = TRUE;
 530   4                      case 'd': // decimal number
 531   4                      case 'i':
 532   4                          if(wVal)
 533   4                          {
 534   5                              while(wDivider)
 535   5                              {
 536   6                                  ucDisp = wVal/wDivider;
 537   6                                  wVal -= ucDisp*wDivider;
 538   6                                  if(ucDisp)
 539   6                                          bNotZero=TRUE;
 540   6      
 541   6                                  if(bNotZero)
 542   6                                      {
 543   7                                          if (ucDisp>9)
 544   7                                          sysWriteUartOneByte(ucDisp+55);
 545   7                                      else
 546   7                                          sysWriteUartOneByte(ucDisp+0x30);
 547   7                                  }
 548   6      
 549   6                                  if(bHex)
 550   6                                          wDivider /= 0x10;
C51 COMPILER V7.50   DEBUG                                                                 03/18/2008 22:29:05 PAGE 10  

 551   6                                  else
 552   6                                          wDivider /= 10;
 553   6                              }
 554   5                          }
 555   4                          else
 556   4                              sysWriteUartOneByte('0');
 557   4                          break;
 558   4                  } // switch
 559   3              }
 560   2              else // general
 561   2                  sysWriteUartOneByte(ucBff); // put a character
 562   2          } // while
 563   1      }
 564          #endif //RS232DBG **********************************************************************


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1490    ----
   CONSTANT SIZE    =      3    ----
   XDATA SIZE       =    367    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      37
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      1       2
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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