📄 debug.lst
字号:
276 1 }
277
278 ///////////////////////////////////////
279 // Decode Uart command
280 ///////////////////////////////////////
281 void uartDecodeNormalCommand(void)
282 {
283 1 #if (_DEBUG_RW_REG_EN_)
284 1 XDATA WORD uwEEADDR;
285 1 #endif
286 1
287 1 switch (UART_CMD)
288 1 {
289 2 case kEnter_ISP:
290 2 {
291 3 // new check ISP command
292 3 if (UART_CMD_LENGTH != 3)
293 3 break;
294 3 if (g_UartCommand.Buffer[_UART_CMD_INDEX1_] != 0x55 || g_UartCommand.Buffer[_UART_CMD_INDE
-X2_] != 0xaa)
295 3 break;
296 3
297 3 #ifdef MCU_MTV412M
C51 COMPILER V7.50 DEBUG 07/03/2006 14:17:06 PAGE 6
298 3 //pwPowerOffSystem();
299 3 Enter_MTV412_ISP();
300 3 #endif
301 3
302 3 #ifdef MCU_W78E65
pwPowerOffSystem();
CHPENR = 0x87; // CHPENR = 0x59, enable CHPCON register write attribute
CHPENR = 0x59; // CHPENR = 0x59, enable CHPCON register write attribute
CHPCON = 0x03; // CHPCON = 0x03, enter in-system programming mode
CHPENR = 0x00; // CHPENR = 0x00, disable CHPCON write attribute
TR0 = 0; // Timer0 stop
IP = 0x00; // Set interrupt priority
EA = 1; // Set single interrupt
ET0 = 1; // Enable TIMER0 iterrrupt
// Timer0 interrupt enable for wake-up from INDLE mode
// Set time for enter ISP mode about 1.676 us
TL0 = 0xf0; // TL0 = 0xf0
TH0 = 0xff; // TH0 = 0xff
TMOD |= 0x01; // Set Timer0 mode 1 (16-bit timer)
TR0 = 1; // Start Timer0
PCON = 0x01; // Enter IDLE mode for launching the in-system programmability
#endif
324 3
325 3 #ifdef MCU_W77E532
//P4 = 0x00;
pwPowerOffSystem();
IE = 0;
TCON = 0;
TA = 0xAA;
TA = 0x55;
TURBO_CHPCON = 0x03; // CHPCON = 0x03, enter in-system programming mode
TA = 0x00;
TR0 = 0; // Timer0 stop
IP = 0x00; // Set interrupt priority
EA = 1; // Set single interrupt
ET0 = 1; // Enable TIMER0 iterrrupt
// Timer0 interrupt enable for wake-up from INDLE mode
// Set time for enter ISP mode about 1.676 us
TL0 = 0xf0; // TL0 = 0xf0
TH0 = 0xff; // TH0 = 0xff
TMOD |= 0x01; // Set Timer0 mode 1 (16-bit timer)
TR0 = 1; // Start Timer0
PCON = 0x01; // Enter IDLE mode for launching the in-system programmability
#endif
351 3
352 3 break;
353 3 }
354 2 #if (_DEBUG_EXTDEV_EN_)
355 2 case kWrite_MCU:
356 2 #ifndef MCU_MTV412M
{
switch (UART_CMD_MS_REG)
{
C51 COMPILER V7.50 DEBUG 07/03/2006 14:17:06 PAGE 7
case MCU_P0:
P0 = UART_CMD_MS_DAT;
break;
case MCU_P1:
P1 = UART_CMD_MS_DAT;;
break;
case MCU_P2:
P2 = UART_CMD_MS_DAT;;
break;
case MCU_P3:
P3 = UART_CMD_MS_DAT;;
break;
case MCU_P4:
P4 = UART_CMD_MS_DAT;;
break;
case MCU_TCON:
TCON = UART_CMD_MS_DAT;;
break;
case MCU_TMOD:
TMOD = UART_CMD_MS_DAT;;
break;
case MCU_PCON:
PCON = UART_CMD_MS_DAT;;
break;
case MCU_IE:
IE = UART_CMD_MS_DAT;;
break;
case MCU_IP:
IP = UART_CMD_MS_DAT;;
break;
case MCU_SCON:
SCON = UART_CMD_MS_DAT;;
break;
}
if (!g_bDebugASCIICommandFlag)
putchar(0xF1);
break;
}
#endif
399 2 case kRead_MCU:
400 2 #ifndef MCU_MTV412M
{
switch (UART_CMD_MS_REG)
{
case MCU_P0:
UART_CMD_MS_DAT = P0;
break;
case MCU_P1:
UART_CMD_MS_DAT = P1;
break;
case MCU_P2:
UART_CMD_MS_DAT = P2;
break;
case MCU_P3:
UART_CMD_MS_DAT = P3;
break;
case MCU_P4:
UART_CMD_MS_DAT = P4;
break;
case MCU_TCON:
UART_CMD_MS_DAT = TCON;
break;
C51 COMPILER V7.50 DEBUG 07/03/2006 14:17:06 PAGE 8
case MCU_TMOD:
UART_CMD_MS_DAT = TMOD;
break;
case MCU_PCON:
UART_CMD_MS_DAT = PCON;
break;
case MCU_IE:
UART_CMD_MS_DAT = IE;
break;
case MCU_IP:
UART_CMD_MS_DAT = IP;
break;
case MCU_SCON:
UART_CMD_MS_DAT = SCON;
break;
}
putchar(0xF2);
putchar(UART_CMD_MS_DAT);
if (g_bDebugASCIICommandFlag)
{
printf("0x%x\r\n", UART_CMD_MS_DAT);
}
break;
}
#endif
447 2 #endif
448 2 #if (_DEBUG_RW_REG_EN_)
449 2 case kWrite_EEPROM:
450 2 {
451 3 uwEEADDR = MAKEWORD(g_UartCommand.Buffer[_UART_CMD_INDEX1_], g_UartCommand.Buffer[_UART_CM
-D_INDEX2_]);
452 3 //uwEEADDR = g_UartCommand.Buffer[_UART_CMD_INDEX1_] & 0x0E;
453 3 //uwEEADDR = (uwEEADDR << 7) + g_UartCommand.Buffer[_UART_CMD_INDEX2_];
454 3 rmWriteByte(uwEEADDR, g_UartCommand.Buffer[_UART_CMD_INDEX3_]);
455 3 if (!g_bDebugASCIICommandFlag)
456 3 putchar(0xF1);
457 3 break;
458 3 }
459 2 case kRead_EEPROM:
460 2 {
461 3 uwEEADDR = MAKEWORD(g_UartCommand.Buffer[_UART_CMD_INDEX1_], g_UartCommand.Buffer[_UART_CM
-D_INDEX2_]);
462 3 //uwEEADDR = g_UartCommand.Buffer[_UART_CMD_INDEX1_] & 0x0E;
463 3 //uwEEADDR = (uwEEADDR << 7) + g_UartCommand.Buffer[_UART_CMD_INDEX2_];
464 3 g_UartCommand.Buffer[_UART_CMD_INDEX3_] = rmReadByte(uwEEADDR);
465 3 putchar(0xF2);
466 3 putchar(g_UartCommand.Buffer[_UART_CMD_INDEX3_]);
467 3 if (g_bDebugASCIICommandFlag)
468 3 {
469 4 printf("EEPROM[0x%x]=", uwEEADDR);
470 4 printf("0x%x\r\n", g_UartCommand.Buffer[_UART_CMD_INDEX3_]);
471 4 }
472 3 break;
473 3 }
474 2 #endif
475 2 #if (_DEBUG_EXTDEV_EN_)
476 2 case kRead_Device_B8:
477 2 {
478 3 g_UartCommand.Buffer[_UART_CMD_INDEX3_] = i2cReadByte(g_UartCommand.Buffer[_UART_CMD_INDEX
-1_], g_UartCommand.Buffer[_UART_CMD_INDEX2_]);
479 3 putchar(0xF2);
480 3 putchar(g_UartCommand.Buffer[_UART_CMD_INDEX3_]);
C51 COMPILER V7.50 DEBUG 07/03/2006 14:17:06 PAGE 9
481 3 if (g_bDebugASCIICommandFlag)
482 3 {
483 4 printf("I2C 0x%x ", g_UartCommand.Buffer[_UART_CMD_INDEX1_]);
484 4 printf("[0x%x]=", g_UartCommand.Buffer[_UART_CMD_INDEX2_]);
485 4 printf("0x%x\r\n", g_UartCommand.Buffer[_UART_CMD_INDEX3_]);
486 4 }
487 3 break;
488 3 }
489 2 case kRead_Device_B16:
490 2 {
491 3 WORD wData;
492 3 #if (VIDEO_DECODER_SELECT == VIDEO_DECODER_VPC323X)
putchar(0xF3);
vdVpcAccessRead(g_UartCommand.Buffer[_UART_CMD_INDEX1_], g_UartCommand.Buffer[_UART_CMD_IN
-DEX2_], (BYTE *) &wData, sizeof(wData));
#endif
497 3 putchar(HIBYTE(wData));
498 3 putchar(LOBYTE(wData));
499 3 if (g_bDebugASCIICommandFlag)
500 3 {
501 4 printf("I2C 0x%x ", g_UartCommand.Buffer[_UART_CMD_INDEX1_]);
502 4 printf("[0x%x]=", g_UartCommand.Buffer[_UART_CMD_INDEX2_]);
503 4 printf("0x%x\r\n", g_UartCommand.Buffer[_UART_CMD_INDEX3_]);
504 4 }
505 3
506 3 break;
507 3 }
508 2 case kWrite_Device:
509 2 {
510 3 if (UART_CMD_LENGTH == 5)
511 3 {
512 4 WORD wData;
513 4
514 4 wData = ((WORD) (g_UartCommand.Buffer[_UART_CMD_INDEX3_])) << 8;
515 4 wData = wData + (WORD) (g_UartCommand.Buffer[_UART_CMD_INDEX4_]);
516 4 #if (VIDEO_DECODER_SELECT == VIDEO_DECODER_VPC323X)
vdVpcAccessWrite(g_UartCommand.Buffer[_UART_CMD_INDEX1_], g_UartCommand.Buffer[_UART_C
-MD_INDEX2_], (BYTE *) &wData, sizeof(wData));
#endif
519 4 if (!g_bDebugASCIICommandFlag)
520 4 putchar(0xF1);
521 4 }
522 3 else
523 3 {
524 4 i2cWriteByte(g_UartCommand.Buffer[_UART_CMD_INDEX1_], g_UartCommand.Buffer[_UART_CMD_I
-NDEX2_], g_UartCommand.Buffer[_UART_CMD_INDEX3_]);
525 4 if (!g_bDebugASCIICommandFlag)
526 4 putchar(0xF1);
527 4 }
528 3 break;
529 3 }
530 2 case kWrite_VPC32xx_FP:
531 2 {
532 3 #if (VIDEO_DECODER_SELECT == VIDEO_DECODER_VPC323X)
WORD wData, wAddress;
wAddress = MAKEWORD(g_UartCommand.Buffer[_UART_CMD_INDEX2_], g_UartCommand.Buffer[_UART_CM
-D_INDEX3_]);
wData = MAKEWORD(g_UartCommand.Buffer[_UART_CMD_INDEX4_], g_UartCommand.Buffer[_UART_CMD_I
-NDEX5_]);
vdVpcAccessWrite_FP(g_UartCommand.Buffer[_UART_CMD_INDEX1_], wAddress, wData);
C51 COMPILER V7.50 DEBUG 07/03/2006 14:17:06 PAGE 10
#endif
539 3 if (!g_bDebugASCIICommandFlag)
540 3 putchar(0xF1);
541 3 }
542 2 break;
543 2
544 2 case kRead_VPC32xx_FP:
545 2 {
546 3 WORD wAddress;
547 3 #if (VIDEO_DECODER_SELECT == VIDEO_DECODER_VPC323X)
wAddress = MAKEWORD(g_UartCommand.Buffer[_UART_CMD_INDEX2_], g_UartCommand.Buffer[_UART_CM
-D_INDEX3_]);
wAddress = vdVpcAccessRead_FP(g_UartCommand.Buffer[_UART_CMD_INDEX1_], wAddress);
#endif
551 3 putchar(0xF3);
552 3 putchar(HIBYTE(wAddress));
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -