📄 debug.lst
字号:
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 + -