📄 misc.c
字号:
#if(_DEBUG_TOOL == _ISP_FOR_EMBEDDED)
//--------------------------------------------------
// Description : ISP for RTD Embeded MCU Initial
// Input Value : None
// Output Value : None
//--------------------------------------------------
void CDdcciInitial(void)
{
#if(_DDCCI_SUPPORT == _ON)
if(GET_FACTORY_MODE())
MCU_I2C_SET_SLAVE_FF23 = 0x7C;
else
MCU_I2C_SET_SLAVE_FF23 = 0x6E;
#else
MCU_I2C_SET_SLAVE_FF23 = 0x6A;
#endif
MCU_I2C_STATUS_FF27 = 0x00;
MCU_I2C_IRQ_CTRL_FF28 = 0x0D;
MCU_IRQ_PRIORITY_FF01 = 0x01; //assign int1 (IRQ2)
MCU_ADC_DDC_ENA_FF1B = 0x02;
MCU_DVI_DDC_ENA_FF1E = 0x02;
MCU_HDMI_DDC_ENA_FF2C = 0x02;
MCU_I2C_CHANNEL_CTRL_FF2B = 0x00; // ADC DDC channel
MCU_I2C_IRQ_CTRL2_FF2A = 0xC0;//0x40; // Rst_Data_buf //ak
MCU_CTRL_FFED |= 0x80;
// MCU_CTRL_FFED = 0x8c;
EA = 1;
EX0 = 1;
IE = 0x8e;
// MCU_CTRL_FFED = 0x8e;
//Anderson 080213 for Debug Message Support Start
#if(_DEBUG_MESSAGE_SUPPORT == _ON)
CMiscDebugMessage("###### F/W START ######", _NO_VALUE);//Anderson 080512 for Debug Message Support
#endif
//Anderson 080213 for Debug Message Support End
}
#endif // End of #if(_DEBUG_TOOL == _ISP_FOR_EMBEDDED)
//--------------------------------------------------
// Description : Debug tool process
// Input Value : None
// Output Value : None
//--------------------------------------------------
//Anderson 080512 for Debug Message Support Start
void CMiscIspDebugProc(void)
{
CMiscIspack();
#if(_DEBUG_TOOL == _RS232)
CUartHandler();
#endif
#if((_EDID_PRO == _ON) && ((_MCU_TYPE == _REALTEK_RTD2120) || (_MCU_TYPE == _REALTEK_RTD2122))) //Anderson 080107 for RTD2122
CMiscEdidPoc();
#endif
#if((_DEBUG_MESSAGE_SUPPORT == _ON) && ((_DEBUG_TOOL == _ISP_FOR_RTD2120) || (_DEBUG_TOOL == _ISP_FOR_EMBEDDED)))
CMiscDebugMessage("", _NO_VALUE);
#endif
//Anderson 080512 for Debug Message Support End
}
#if((_EDID_PRO == _ON) && ((_MCU_TYPE == _REALTEK_RTD2120) || (_MCU_TYPE == _REALTEK_RTD2122))) //Anderson 080107 for RTD2122
//--------------------------------------------------
// Description : EDID process
// (F/W will update EDID in Eeprom or Flash
// if DDCRAM of MCU has been modified.)
// Input Value : None
// Output Value : None
//--------------------------------------------------
void CMiscEdidPoc(void)
{
BYTE cnt;
pData[0] = MCU_I2C_STATUS_FF2B;
if(pData[0] & 0xc0) //ADC DDC Change bit
{
MCU_I2C_STATUS_FF2B = pData[0] & 0x3f;
do
{
MCU_I2C_STATUS_FF2B &= 0x3f;
CTimerDelayXms(100);
}
while(MCU_I2C_STATUS_FF2B & 0xc0);
pData[1] = 0;
for(cnt = 0;cnt < 128;cnt++)
{
if(pData[0] & 0x80)
pData[1] = (BYTE)(MCU_DDCRAM_VGA[cnt] + pData[1]);
else if(pData[0] & 0x40)
pData[1] = (BYTE)(MCU_DDCRAM_DVI[cnt] + pData[1]);
}
if(pData[1] == 0) //updata
{
/*
#if((_EDID_PRO == _ON) && (_MEMORY_LOCATION == _EEPROM))
CEepromSaveEDIDData();
#elif((_EDID_PRO == _ON) && (_MEMORY_LOCATION == _FLASH))
CEepromSaveEDIDToFlash();
#endif*/
}
}
}
#endif // End of #if((_EDID_PRO == _ON) && ((_MCU_TYPE == _REALTEK_RTD2120) || (_MCU_TYPE == _REALTEK_RTD2122)))
//Anderson 080107 for RTD2122
//Anderson 080512 for Debug Message Support Start
#if(_DEBUG_MESSAGE_SUPPORT == _ON)
//--------------------------------------------------
// Description : Debug Message process
// Input Value : None
// Output Value : None
//--------------------------------------------------
void CMiscDebugMessage(BYTE *pArray1, DWORD pArray2)
{
bit halt = 0;
BYTE index, length, checksum;
if(ucDdcciData[0] == 0x55)
{
bDebugMessageEven = _TRUE;
}
if(bDebugMessageEven == _FALSE)
{
return;
}
if(*pArray1 == 0)
{
TxBUF = 0xFC;
TxTemp = 0xFC;
return;
}
halt = 1; // FW stop
if(bDebugMessageStart == 0)
{
TxBUF = 0xF1;
TxTemp = 0xF1;
}
for(index=0; index<4; index++)
{
pDebugMessageBUF[index] = 0;
}
do
{
if(bRunCommand)
{
switch(ucDdcciData[0])
{
case 0x20: //Handshake Setting
TxBUF = TxTemp;
break;
case 0x25: //Debug Message Start
if(bDebugMessageStart == _FALSE)
{
if(*pArray1 != 0)
{
index = 0; //Sending Index
length = 0; //Total Length
checksum = 0;
do
{
checksum ^= pArray1[length];
}while((pArray1[length++] != 0) && (length < 240)); //To count the length of pArray1 and checksum
pDebugMessageBUF[0] = (BYTE)(pArray2 >> 24);
pDebugMessageBUF[1] = (BYTE)(pArray2 >> 16);
pDebugMessageBUF[2] = (BYTE)(pArray2 >> 8);
pDebugMessageBUF[3] = (BYTE)(pArray2);
checksum = checksum ^ pDebugMessageBUF[0] ^ pDebugMessageBUF[1] ^ pDebugMessageBUF[2] ^ pDebugMessageBUF[3];
length = (length - 1 + 4) + 4; //Total Length = length of {Sending Data + Start Code(2) + Length Code(1) + CheckSum(1)}
bDebugMessageStart = 1; //Debug Message Start
#if(_DEBUG_TOOL == _ISP_FOR_RTD2120)
MCU_I2C_DATA_OUT_FF2A = 0xFA;
#elif(_DEBUG_TOOL == _ISP_FOR_EMBEDDED)
MCU_I2C_DATA_OUT_FF26 = 0xFA;
#endif
}
else
{
//initial setting
bDebugMessageStart = 0;
bDataOutEnd = 0;
index = 0;
length = 0;
TxBUF = 0;
}
}
else
{
if((bDataOutEnd == 0) && (length != 0xff))
{
if(index == 0)
{
TxBUF = 0xFA; //Start of Check Code 1
}
else if(index == 1)
{
TxBUF = 0xF5; //Start of Check Code 2
}
else if(index == 2)
{
TxBUF = length - 4; //Length Code
}
else if(index == length - 1)
{
TxBUF = checksum; //CheckSum Code
}
else
{
if(index < length - 5) //Sending Data
TxBUF = pArray1[index - 3];
else
TxBUF = pDebugMessageBUF[index - (length - 5)];
}
if(index < length)
{
index++;
}
else
{
index = 0;
TxBUF = 0xFA;
}
bDataOutEnd = 1; //End of Data Output
}
}
break;
case 0x2A: //Debug Message End
if(bDebugMessageStart)
{
bDebugMessageStart = 0; //Debug Message End
bDataOutEnd = 0;
halt = 0; // FW run
TxBUF = 0xF7;
}
break;
case 0x2F: //Debug Message Event finsih
TxBUF = 0xF5;
#if(_DEBUG_TOOL == _ISP_FOR_RTD2120)
MCU_I2C_DATA_OUT_FF2A = 0xF5;
#elif(_DEBUG_TOOL == _ISP_FOR_EMBEDDED)
MCU_I2C_DATA_OUT_FF26 = 0xF5;
#endif
bDebugMessageStart = 0;
bDataOutEnd = 0;
bDebugMessageEven = 0;
halt = 0;
break;
default:
break;
}
bRunCommand = 0;
ucDdcciCommandNumber = 0;
}
}
while(halt != 0);
bDebugMessageStart = 0;
bDataOutEnd = 0;
}
#endif // End of #if((_DEBUG_MESSAGE_SUPPORT == _ON) && (_DEBUG_TOOL == _ISP_FOR_RTD2120))
//Anderson 080512 for Debug Message Support End
#endif // End of #if(_SCALER_SERIES_TYPE == _RTD2472D_SERIES)
//Anderson 071219 for 2545LR, 248xRD, 248xRD
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -