📄 appstest.c
字号:
{
if(Bp_OcmAddr[cnt] != Bp_SubAddr[cnt])
result = 1;
}
if(result)
{
gm_Print("%d bits is ERROR",B_NumberOfBits);
}
else
{
gm_Print("%d bits is OK",B_NumberOfBits);
}
gm_WriteRegByte(BP0_CTRL + B_NumberOfBreakpoint * 6, 0);
}
}
}
break;
case Func56 : // print current version of firmware
PrintVersion();
break;
#endif //PHOENIX
#ifdef ENABLE_CACHE_APPSTEST
case Func58: // spi test
spiTest((WORD) DebugParam[0]);
break;
#endif //ENABLE_CACHE_APPSTEST
#if NVRAM_USE_FLASH
case Func60:
SpiFlashReadWriteStatusRegister((BYTE)DebugParam[0], (BYTE)DebugParam[1]);
break;
#endif
#if (WB_MAJOR >= 4)
case 245:
{
// BYTE ROM* Bp_Data;
// InitIRDriver(Bp_Data);
WORD W_IrKey;
BYTE count;
count=0;
while (1)
{
W_IrKey = gm_GetIrKey();
if (W_IrKey)
{
gm_Print("GetIRKey= 0x%x", W_IrKey);
count++;
}
gm_Delay10ms(10);
if (count==5)
break;
}
}
break;
#endif
case 198:
{
BYTE flag,scan_flag;
WORD W_Offset,W_Ori_Offset;
WORD i,count,x;
W_Ori_Offset=W_Offset=gm_ReadRegWord(VF_START_OFFSET);
gm_Print("-----Orignial_VF_START_OFFSET=0x%x",W_Offset);
// while()
// {
count=0;
scan_flag=gmd_FALSE;
x=10;
for(i=1;i<=(1<<13);i++)
{
gm_WriteRegByte(DISPLAY_STATUS, BUFFER_OVERRUN);
gm_WaitInputVSyncMain(2);
flag=gm_ReadRegByte(DISPLAY_STATUS)& BUFFER_OVERRUN;
if(flag)
{
if(scan_flag)
x--;
if(!x)
break;
// gm_Print("-----------------LineBufferOverFlag is Set---------------",0);
if (W_Ori_Offset>=i)
W_Offset=W_Ori_Offset-i;
else
W_Offset=(1<<13)-i+ W_Ori_Offset;
gm_Print("0x%x", W_Offset);
gm_WriteRegWord(VF_START_OFFSET, W_Offset);
}
else
{
scan_flag=gmd_TRUE;
gm_Print("******Good VF_START_OFFSET=0x%x", W_Offset);
count++;
if (W_Ori_Offset>=i)
W_Offset=W_Ori_Offset-i;
else
W_Offset=(1<<13)-i+ W_Ori_Offset;
gm_Print("0x%x", W_Offset);
gm_WriteRegWord(VF_START_OFFSET, W_Offset);
// break;
}
}
gm_Print("######End of Scan#######",0);
gm_Print(" Good Range=%d",count);
break;
}
#if (USE_VPORT && USE_GSEL_DRVR_MODEL)
case 199:
gm_I2cInit_SW(0, DEV_GPIO_SCL, DEV_GPIO_SDA);
gm_AddDriver(DEV_VID_FUNC_ENTRY,DEV_VIDEO_DECODER);
gm_CallDriver(DEV_VIDEO_DECODER,gmd_VID_PWR_UP,NULL_PTR,NULL_PTR);
gm_CallDriver(DEV_VIDEO_DECODER,gmd_VID_SET_MODE,VDD_MODE_INIT, NULL_PTR);
break;
case 200:
AckHandler = gmd_FALSE;
gm_CommsSendReply( (gmt_MsgStruct *)&AckPkt, comm_use);
msgx("199 VideoDecoder CallDriver add and initialize",0);
msgx("200 Display Video Decoder related funtions",0);
msgx("201 I2C Read Byte: <Addr>",0);
msgx("202 I2C Write Byte: <Addr> <Byte data> <0>",0);
msgx("203 Power UP and Reset VID",0);
msgx("204 Power Down VID",0);
msgx("205 Wirte I2C Initial Table",0);
msgx("206 Setup Input Port <Value 0:CVBS 1:SVIDEO>",0);
msgx("207 VideoDecoder : Get Video Status",0);
// msgx("209 VideoDecoder : Setup input port <Value 0:CVBS 1:SVIDEO> and then Get Status",0);
// msgx("210 SAA7119 : Dump All Registers",0);
break;
case 201:
msg("0x%x",(WORD)gm_CallDriver(DEV_VIDEO_DECODER,gmd_VID_RAW_READ,(WORD)DebugParam[0],NULL_PTR));
break;
case 202:
gm_CallDriver(DEV_VIDEO_DECODER,gmd_VID_RAW_WRITE,(WORD)DebugParam[0],(WORD)DebugParam[1]);
break;
case 203:
gm_CallDriver(DEV_VIDEO_DECODER,gmd_VID_PWR_UP,NULL_PTR,NULL_PTR);
break;
case 204:
gm_CallDriver(DEV_VIDEO_DECODER,gmd_VID_PWR_DOWN,NULL_PTR,NULL_PTR);
break;
case 205:
gm_CallDriver(DEV_VIDEO_DECODER,gmd_VID_SET_MODE,VDD_MODE_INIT, NULL_PTR);
break;
case 206:
gm_CallDriver(DEV_VIDEO_DECODER,gmd_VID_SET_INPUT,(WORD)DebugParam[0],NULL_PTR);
break;
case 207:
msg("Return =%x <0=Sync Lock, 3=No Sync>",(WORD)gm_CallDriver(DEV_VIDEO_DECODER,gmd_VID_GET_STATUS,NULL_PTR,NULL_PTR));
break;
/*
case 209:
{
WORD i;
gm_CallDriver(DEV_VIDEO_DECODER,gmd_VID_SET_INPUT,(WORD)DebugParam[0],NULL_PTR);
do
{
i=(WORD)gm_CallDriver(DEV_VIDEO_DECODER,gmd_VID_GET_STATUS,NULL_PTR,NULL_PTR);
msg("Return =%x <0=Sync Lock, 3=No Sync>",i);
} while(i!=0);
}
break;
*/
case 210:
{
BYTE regaddr;
msg("Dump Video Decoder All Registers",0);
for (regaddr=0;regaddr<255;regaddr++)
msg("0x%x",(WORD)gm_CallDriver(DEV_VIDEO_DECODER,gmd_VID_RAW_READ,(WORD)regaddr,NULL_PTR));
break;
}
#endif //(USE_VPORT && USE_GSEL_DRVR_MODEL)
#if USE_AUDIO && USE_GSEL_DRVR_MODEL
case 215:
AckHandler = gmd_FALSE;
gm_CommsSendReply( (gmt_MsgStruct *)&AckPkt, comm_use);
msgx("215 Display Audio Decoder related funtions",0);
msgx("216 Add Audio Gsel Driver and Initialize Audio Decoder",0);
msgx("217 Audio Set Standby <Value 0:Standy off 1:Standby On>",0);
msgx("218 Audio Set OutputMute <Value 0:UnMute 1:Mute>",0);
msgx("219 Get Audio Mute Status: Ret<Value 0:UnMute 1:Mute>",0);
msgx("220 Set Audio Volume <Value>",0);
msgx("221 Get Audio Volume: Ret <Value>",0);
break;
case 216:
gm_AddDriver(DEV_AUD_FUNC_ENTRY,DEV_AUDIO_DECODER);
gm_CallDriver(DEV_AUDIO_DECODER,gmd_AUD_SET_CONFIG,AUDIO_INIT,NULL_PTR);
break;
case 217:
gm_CallDriver(DEV_AUDIO_DECODER,gmd_AUD_SET_STANDBY_ON,(WORD)DebugParam[0],NULL_PTR);
break;
case 218:
gm_CallDriver(DEV_AUDIO_DECODER,gmd_AUD_SET_OUTPUT_MUTE,(WORD)DebugParam[0],NULL_PTR);
break;
case 219:
{
WORD ret;
ret=(WORD)gm_CallDriver(DEV_AUDIO_DECODER,gmd_AUD_GET_OUTPUT_MUTE,NULL_PTR,NULL_PTR);
if (ret)
msg("Ret Status: Audio is Mute now",0);
else
msg("Ret Status: Audio is UnMute now",0);
}
break;
case 220:
gm_CallDriver(DEV_AUDIO_DECODER,gmd_AUD_SET_OUTPUT_VOLUME,(WORD)DebugParam[0],NULL_PTR);
break;
case 221:
msg("0x%x",(WORD)gm_CallDriver(DEV_AUDIO_DECODER,gmd_AUD_GET_OUTPUT_VOLUME,NULL_PTR,NULL_PTR));
break;
#endif
#ifdef USE_PIXCR_DEMO
case 230: // 32 bucket luminance histogram
PixCrLumHist32x32((DWORD *)DebugParam[0]); // Param1=buffer
break;
case 231: // 32x30 regions of 32 bucket histograms, with analysis
PixCrLumHist32x4x8((BYTE)DebugParam[0], (BYTE*)DebugParam[1]); // Param2=threshold set, param3=buffer
break;
case 232: // 32x30 regions of 4 bucket histograms
PixCrLumHist4x8x32((BYTE *)DebugParam[0]); // param1=buffer
break;
case 233: // 32x30 regions of 32 bit luminance sums
PixCrLumSum32x32((WORD *)DebugParam[0], (BYTE)DebugParam[1], (BYTE)DebugParam[2]); // param1=buffer, param2=simthresh, param3=xtrascore
break;
case 234: // edge enhancer
PixCrEdgeEnhance();
break;
case 235: // detect flesh
PixCrFleshDetect();
break;
case 236:
{
DWORD Store; // sum diff
Store = PixCrSumDiff((BYTE)DebugParam[0]);
gm_Print("%x", (WORD)(Store >> 16));
gm_Print("%x", (WORD)(Store & 0xffff));
break;
}
#endif
#ifdef USE_LINEAR_LIGHTNESS
case Func240:
msg("Change Output Gamma",0);
ChangeGamma((BYTE)DebugParam[0]);
break;
#endif
case Func250: // Do not remove these !!!
msg("Track SDDS",0);
if(AckHandler)
gm_CommsSendReply( (gmt_MsgStruct *)&AckPkt, comm_use);
gmp_TrackSDDS();
break;
case Func251: // Do not remove these !!!
msg("AutoGeometry",0);
gmvb_IA_Debug = (WORD)DebugParam[1];
gmvb_AutoAdjMode = (WORD)DebugParam[0];
gm_AutoGeometryMain((WORD)DebugParam[0]);
break;
case Func252:
msg("Pixel Jitter",0);
Pixel_Jitter(); // position
break;
case Func253:
msg("Scanning Pixel",0);
Pixel_Scan(); // position
break;
case Func254:
msg("Measuring Pixel Noise",0);
Pixel_Noise(); // position
break;
case Func255:
msg("Grabbing Pixel",0);
Pixel_Grab(); // position
break;
default:
break;
}
break;
#endif // !REMOVE_APPSTEST
default :
AckHandler = gmd_FALSE;
gm_CommsSendReply( (gmt_MsgStruct *)&NackPkt, comm_use);
break;
}
if(AckHandler)
gm_CommsSendReply( (gmt_MsgStruct *)&AckPkt, comm_use);
gm_Ddc2biHandler();
gm_SerialHandler();
}
}
//******************************************************************
// FUNCTION : NvramRd
// USAGE : Read an NVRAM byte
// DESCRIPTION : This function reads an NVRAM byte.
// INPUT : None
// OUTPUT : None
// GLOBALS : None
// USED_REGS : None
//******************************************************************
static void NvramRd(RdNvramCmd_t *CmdPtr, BYTE comm_use)
{
gmt_MsgStruct *RdCmd;
WORD NvramAddr;
BYTE Length,Cmd;
gmt_BLOCKINFO bi;
RdCmd = (gmt_MsgStruct *)CmdPtr;
Cmd = CmdPtr->cmd;
NvramAddr = GetWordFromBuffer(&CmdPtr->NvramAddr);
if(NVRAM_Unlock == sizeof(UnlockSeq))
{
bi = gm_GetNVRAMBlockInfo((BYTE)NvramAddr,0x00);
Length = bi.length;
NvramAddr = bi.address;
RdCmd->cmd = Cmd;
RdCmd->len = Length + 3;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -