📄 dbgprc.c
字号:
current_micro_command = MC_RELOCK_PLL; break; case MC_CLV_2X: set_speed(CLV | CLV_2X); micro_command_result = IN_PROGRESS; current_micro_command = MC_RELOCK_PLL; break; case MC_SCP_CLV_1X: set_speed(SCP_CLV | CLV_1X); micro_command_result = IN_PROGRESS; current_micro_command = MC_RELOCK_PLL; break; case MC_SCP_CLV_2X: set_speed(SCP_CLV | CLV_2X); micro_command_result = IN_PROGRESS; current_micro_command = MC_RELOCK_PLL; break; case MC_CLV_OFF: set_speed(CDV | CDV_1X_IN_DISC); micro_command_result = IN_PROGRESS; current_micro_command = MC_RELOCK_PLL; break; case MC_AUDIO_ON: audio_on(); micro_command_result = OK; break; case MC_AUDIO_OFF: audio_off(); micro_command_result = OK; break; case MC_SHORT_JUMP_FWD: delta_trk = 0x0100; micro_command_result = short_jump(); break; case MC_SHORT_JUMP_BWD: delta_trk = -0x0100; micro_command_result = short_jump(); break; case MC_LONG_JUMP_FWD: delta_trk = 0x1000; micro_command_result = long_jump(); break; case MC_LONG_JUMP_BWD: delta_trk = -0x1000; micro_command_result = long_jump(); break; case MC_SLEDGE_HOME: micro_command_result = sledge_home(); break; case MC_SLEDGE_FWD: sledge_param = (sint16) (T100ms); micro_command_result = sledge_move(); break; case MC_SLEDGE_BACK: sledge_param = (sint16) (-T100ms); micro_command_result = sledge_move(); break;#if (DEBUG_DSP != 0) case MC_PDM_OUT1: if (E_ADD == output_signal) { DFCR.field.df_te_mux = 0; } else if (TE_ADD == output_signal) { DFCR.field.df_te_mux = 1; } dsp_write_xmem(PDM_OUT1_ADD, output_signal); micro_command_result = OK; break; case MC_PDM_OUT2: if (E_ADD == output_signal) { DFCR.field.df_te_mux = 0; } else if (TE_ADD == output_signal) { DFCR.field.df_te_mux = 1; } dsp_write_xmem(PDM_OUT2_ADD, output_signal); micro_command_result = OK; break;#endif case MC_IDLE: debug_error_reason = NO_ERROR_REASON; break; case MC_RAM_PROFILE: EnableRamProfile(); micro_command_result = OK; break; case MC_ROM_PROFILE: InitProfile(); micro_command_result = OK; break; default: break; } if (micro_command_result != IN_PROGRESS) { if (debug_error_reason != NO_ERROR_REASON) { micro_command_result = debug_error_reason; } current_micro_command = MC_IDLE; }#endif if (RS232_Status & RS232_NEW_MSG) { switch (RS232_RxBuffer[OP_CODE]) { case WRNM_MSG_OP_CODE: /* Rx Message */ /* RS232_RxBuffer[0] -> Byte Count*/ /* RS232_RxBuffer[1] -> Op Code */ /* RS232_RxBuffer[2] -> Near Memory Address MSB */ /* RS232_RxBuffer[3] -> Near Memory Address LSB */ /* RS232_RxBuffer[4] -> Data MSB */ /* RS232_RxBuffer[5] -> Data */ /* RS232_RxBuffer[6] -> Data */ /* RS232_RxBuffer[7] -> Data LSB */ /* RS232_RxBuffer[8] -> Mode (Byte/Word/Long) */ /* RS232_RxBuffer[9] -> Checksum */ /* Tx Message */ /* RS232_TxBuffer[0] <- Byte Count */ /* RS232_TxBuffer[1] <- Error Code */ /* RS232_TxBuffer[2] <- Data MSB */ /* RS232_TxBuffer[3] <- Data */ /* RS232_TxBuffer[4] <- Data */ /* RS232_TxBuffer[5] <- Data LSB */ /* RS232_TxBuffer[6] <- Checksum */ if (RS232_RxBuffer[BYTE_COUNT] == WRNM_MSG_LEN) { if (cksum_verify(RS232_RxBuffer[BYTE_COUNT], RS232_RxBuffer)) { /* The Message Has Correct length */ RS232_TxBuffer[ERROR_CODE] = NO_ERROR; RS232_TxBuffer[2] = 0x0000; RS232_TxBuffer[3] = 0x0000; RS232_TxBuffer[4] = 0x0000; switch (RS232_RxBuffer[8]) { case LONG_WISE: /* Bild a word pointer */ addr = BaseAddrTbl[RS232_RxBuffer[2]]; addr += RS232_RxBuffer[3]; data = ((RS232_RxBuffer[4] << 0x18) & 0xFF000000); data += ((RS232_RxBuffer[5] << 0x10) & 0x00FF0000); data += ((RS232_RxBuffer[6] << 0x8) & 0x0000FF00); data += (RS232_RxBuffer[7] & 0x000000FF); *((uint32 *)addr) = data; data = *((uint32 *) addr); RS232_TxBuffer[2] = (data & 0xFF000000) >> 0x18; RS232_TxBuffer[3] = (data & 0x00FF0000) >> 0x10; RS232_TxBuffer[4] = (data & 0x0000FF00) >> 0x08; RS232_TxBuffer[5] = (data & 0x000000FF); break; default: RS232_TxBuffer[ERROR_CODE] = ILL_CMND_ERR_CODE; break; } } else { RS232_TxBuffer[ERROR_CODE] = INV_CKSUM; } RS232_TxBuffer[BYTE_COUNT] = WRNM_ACK_LEN; tx_msg(WRNM_ACK_LEN, RS232_TxBuffer, PCIF); } else { /* Error Msg: Invalid Length */ } break; case RDNM_MSG_OP_CODE: /* Rx Message */ /* RS232_RxBuffer[0] -> Byte Count*/ /* RS232_RxBuffer[1] -> Op Code */ /* RS232_RxBuffer[2] -> Near Memory Address MSB */ /* RS232_RxBuffer[3] -> Near Memory Address LSB */ /* RS232_RxBuffer[4] -> Mode (Byte/Word) */ /* RS232_RxBuffer[5] -> Checksum */ /* Tx Message */ /* RS232_TxBuffer[0] <- Byte Count */ /* RS232_TxBuffer[1] <- Error Code */ /* RS232_TxBuffer[2] <- Data MSB */ /* RS232_TxBuffer[3] <- Data */ /* RS232_TxBuffer[4] <- Data */ /* RS232_TxBuffer[5] <- Data LSB */ /* RS232_TxBuffer[6] <- Checksum */ if (RS232_RxBuffer[BYTE_COUNT] == RDNM_MSG_LEN) { if (cksum_verify(RS232_RxBuffer[BYTE_COUNT], RS232_RxBuffer)) { /* The Message Has Correct length */ RS232_TxBuffer[ERROR_CODE] = NO_ERROR; RS232_TxBuffer[2] = 0x0000; RS232_TxBuffer[3] = 0x0000; RS232_TxBuffer[4] = 0x0000; switch(RS232_RxBuffer[4]) { case LONG_WISE: /* Bild a word pointer */#if (OS20_PROFILING==1) if(RS232_RxBuffer[2] == 0x11) { // Task Activations & ticks. tmp_task_prof = (uint32 *) Get_task_address(0); idx = RS232_RxBuffer[3]; idx >>= 2; data = tmp_task_prof[idx]; } else if (RS232_RxBuffer[2] == 0x12) { tmp_task_prof = (uint32 *) Get_int_address(0); idx = RS232_RxBuffer[3]; idx >>= 2; data = tmp_task_prof[idx]; } else#endif { addr = BaseAddrTbl[RS232_RxBuffer[2]]; addr += RS232_RxBuffer[3]; data = *((uint32 *) addr); } RS232_TxBuffer[2] = (data & 0xFF000000) >> 0x18; RS232_TxBuffer[3] = (data & 0x00FF0000) >> 0x10; RS232_TxBuffer[4] = (data & 0x0000FF00) >> 0x08; RS232_TxBuffer[5] = (data & 0x000000FF); break; default: RS232_TxBuffer[ERROR_CODE] = ILL_CMND_ERR_CODE; break; } } else { RS232_TxBuffer[ERROR_CODE] = INV_CKSUM; } RS232_TxBuffer[BYTE_COUNT] = 6; //RDNM_ACK_LEN; tx_msg(RDNM_ACK_LEN, RS232_TxBuffer, PCIF); } else { /* Error Msg: Invalid Length */ } break; case WRITE_DSP_XMEM_MSG_OP_CODE: /* Rx Message */ /* RS232_RxBuffer[0] -> Byte Count*/ /* RS232_RxBuffer[1] -> Op Code */ /* RS232_RxBuffer[2] -> DSP Variable Address MSB */ /* RS232_RxBuffer[3] -> DSP Variable Address LSB */ /* RS232_RxBuffer[4] -> Data MSB */ /* RS232_RxBuffer[5] -> Data LSB */ /* RS232_RxBuffer[6] -> Checksum */ /* Tx Message */ /* RS232_TxBuffer[0] <- Byte Count */ /* RS232_TxBuffer[1] <- Error Code */ /* RS232_TxBuffer[2] <- Data MSB */ /* RS232_TxBuffer[3] <- Data LSB */ /* RS232_TxBuffer[4] <- Checksum */ if (RS232_RxBuffer[BYTE_COUNT] == WRITE_DSP_XMEM_MSG_LEN) { if (cksum_verify(RS232_RxBuffer[BYTE_COUNT], RS232_RxBuffer)) { /* The Message Has Correct length */ /* Bild a word pointer */ addr = RS232_RxBuffer[3]; data = ((RS232_RxBuffer[4] << 8) + RS232_RxBuffer[5]); dsp_write_xmem(addr, data); data = dsp_read_xmem(addr); RS232_TxBuffer[ERROR_CODE] = NO_ERROR; RS232_TxBuffer[2] = (uint8)((data & 0xFF00) >> BIT_8); RS232_TxBuffer[3] = (uint8)(data & 0x00FF); } else { RS232_TxBuffer[ERROR_CODE] = INV_CKSUM; } RS232_TxBuffer[BYTE_COUNT] = WRITE_DSP_XMEM_ACK_LEN; tx_msg(WRITE_DSP_XMEM_ACK_LEN, RS232_TxBuffer, PCIF); } else { /* Error Msg: Invalid Length */ } break; case READ_DSP_XMEM_MSG_OP_CODE: /* Rx Message */ /* RS232_RxBuffer[0] -> Byte Count*/ /* RS232_RxBuffer[1] -> Op Code */ /* RS232_RxBuffer[2] -> DSP Variable Address MSB */ /* RS232_RxBuffer[3] -> DSP Variable Address LSB */ /* RS232_RxBuffer[4] -> Checksum */ /* Tx Message */ /* RS232_TxBuffer[0] <- Byte Count */ /* RS232_TxBuffer[1] <- Error Code */ /* RS232_TxBuffer[2] <- Data MSB */ /* RS232_TxBuffer[3] <- Data LSB */ /* RS232_TxBuffer[4] <- Checksum */ if(RS232_RxBuffer[BYTE_COUNT] == READ_DSP_XMEM_MSG_LEN) { if (cksum_verify(RS232_RxBuffer[BYTE_COUNT], RS232_RxBuffer)) { addr = RS232_RxBuffer[3]; data = dsp_read_xmem(addr); RS232_TxBuffer[ERROR_CODE] = NO_ERROR; RS232_TxBuffer[2] = (uint8)((data & 0xFF00) >> BIT_8); RS232_TxBuffer[3] = (uint8)(data & 0x00FF); } else { RS232_TxBuffer[ERROR_CODE] = INV_CKSUM; } RS232_TxBuffer[BYTE_COUNT] = READ_DSP_XMEM_ACK_LEN; tx_msg(READ_DSP_XMEM_ACK_LEN, RS232_TxBuffer, PCIF); } else { /* Error Msg: Invalid Length */ } break; case WRITE_DSP_YMEM_MSG_OP_CODE: /* Rx Message */ /* RS232_RxBuffer[0] -> Byte Count*/ /* RS232_RxBuffer[1] -> Op Code */ /* RS232_RxBuffer[2] -> DSP Variable Address MSB */ /* RS232_RxBuffer[3] -> DSP Variable Address LSB */ /* RS232_RxBuffer[4] -> Data MSB */ /* RS232_RxBuffer[5] -> Data LSB */ /* RS232_RxBuffer[6] -> Checksum */ /* Tx Message */ /* RS232_TxBuffer[0] <- Byte Count */ /* RS232_TxBuffer[1] <- Error Code */ /* RS232_TxBuffer[2] <- Data MSB */ /* RS232_TxBuffer[3] <- Data LSB */ /* RS232_TxBuffer[4] <- Checksum */ if (RS232_RxBuffer[BYTE_COUNT] == WRITE_DSP_YMEM_MSG_LEN) { if (cksum_verify(RS232_RxBuffer[BYTE_COUNT], RS232_RxBuffer)) { /* The Message Has Correct length */ /* Bild a word pointer */ addr = RS232_RxBuffer[3]; data = ((RS232_RxBuffer[4] << 8) + RS232_RxBuffer[5]); dsp_write_ymem(addr, data); data = dsp_read_ymem(addr); RS232_TxBuffer[ERROR_CODE] = NO_ERROR; RS232_TxBuffer[2] = (uint8)((data & 0xFF00) >> BIT_8); RS232_TxBuffer[3] = (uint8)(data & 0x00FF); } else { RS232_TxBuffer[ERROR_CODE] = INV_CKSUM; } RS232_TxBuffer[BYTE_COUNT] = WRITE_DSP_YMEM_ACK_LEN; tx_msg(WRITE_DSP_YMEM_ACK_LEN, RS232_TxBuffer, PCIF); } else { /* Error Msg: Invalid Length */ } break; case READ_DSP_YMEM_MSG_OP_CODE: /* Rx Message */ /* RS232_RxBuffer[0] -> Byte Count*/ /* RS232_RxBuffer[1] -> Op Code */ /* RS232_RxBuffer[2] -> DSP Variable Address MSB */ /* RS232_RxBuffer[3] -> DSP Variable Address LSB */ /* RS232_RxBuffer[4] -> Checksum */ /* Tx Message */ /* RS232_TxBuffer[0] <- Byte Count */ /* RS232_TxBuffer[1] <- Error Code */ /* RS232_TxBuffer[2] <- Data MSB */ /* RS232_TxBuffer[3] <- Data LSB */ /* RS232_TxBuffer[4] <- Checksum */ if (RS232_RxBuffer[BYTE_COUNT] == READ_DSP_YMEM_MSG_LEN)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -