📄 appstest.c
字号:
msgx("245 Get IrKey",0);
msgx("250 SDDS Tracking",0);
msgx("251 Auto Geometry, <AutoMode> <OutputMode>",0);
msgx("252 Pixel_Jitter X, Y, Color (0=r)",0);
msgx("253 Pixel_Scan X, Y, Color (0=r)",0);
msgx("254 Pixel_Noise X, Y, Color (0=r)",0);
msgx("255 Pixel_Grab X, Y, Color (0=r)",0);
msgx(MYBUILD_NUMBER, 0);
break;
case Func1:
{
msg("*** Memory Test - Increasing Address ***",0);
TestMem = MEMORY_START;
TestMemLength = MEMORY_LENGTH;
if ( doApps_MemTest( 0 ) != 0)
msg("*** Memory Test Failed at %x ***", (WORD)FailedMem);
else
{
msg("*** Memory Test - Decreasing Address ***",0);
TestMem = MEMORY_END;
TestMemLength = MEMORY_LENGTH;
if ( doApps_MemTest( 1 ) != 0)
msg("*** Memory Test Failed at %x ***", (WORD)FailedMem);
else
{
msg("*** Memory Test Passed *** ",0);
}
}
break;
}
case Func2:
msg("*** Register Read/Write Test ***",0);
regReadWriteTest(0);
break;
case Func3:
msg("*** Register Read/Write Test (skip OSD registers) ***",0);
regReadWriteTest(1);
break;
case Func4:
msg("Test OSD windows",0);
if ( DebugParam[0] || DebugParam[1] )
{
TestOsdHwFeatures((BYTE)DebugParam[0], (BYTE)DebugParam[1]);
}
else
{
TestOsdHwFeatures(16, 16);
}
break;
case Func5:
msg("AutoADCInit",0);
gm_AutoADCInitMain();
break;
case Func6:
msg("AutoColorBalance",0);
gm_AutoColorBalanceMain();
break;
case Func7 :
msg("Channel offset2_adj",0);
ADC_testing();
break;
case Func8 :
#if defined(DEBUG_APPTEST) && !defined(TUCSON)
msg("gm_WriteRegTriBytes test",0);
{
DWORD reg;
#ifndef PADDRIVE
reg = gm_ReadRegTriBytes(FLICKER_SCORE_MIN);
msg(" reg = gm_ReadRegTriByte(FLICKER_SCORE_MIN)",0);
#else
reg = gm_ReadRegTriBytes(PADDRIVE);
msg(" reg = gm_ReadRegTriByte(PADDRIVE)",0);
#endif
msg(" reg hi 0x%x",(WORD)(reg >> 16));
msg(" reg lo 0x%x",(WORD)reg);
#ifndef PADDRIVE
gm_WriteRegTriBytes(FLICKER_SCORE_MIN,0x775522UL);
msg(" gm_WriteRegTriByte(FLICKER_SCORE_MIN,0x775522)",0);
msg(" reg = gm_ReadRegTriByte(FLICKER_SCORE_MIN)",0);
reg = gm_ReadRegTriBytes(FLICKER_SCORE_MIN);
#else
gm_WriteRegTriBytes(PADDRIVE,0x775522UL);
msg(" gm_WriteRegTriByte(PADDRIVE,0x775522)",0);
msg(" reg = gm_ReadRegTriByte(PADDRIVE)",0);
reg = gm_ReadRegTriBytes(PADDRIVE);
#endif
msg(" reg hi 0x%x",(WORD)(reg >> 16));
msg(" reg lo 0x%x",(WORD)reg);
}
msg("Done.",0);
#endif
break;
case Func9 :
msg("gm_WriteRegBlock (WriteTriBytes), regblock test",0);
gm_WriteRegBlock(WriteRegBlockTest);
msg("Done.",0);
break;
case Func11:
msg("AutoPosition",0);
// PHEG = DebugParam[0];
// EGPRO = DebugParam[1];
DoAutoGeometry();
// gm_AutoPositionMain();
break;
case Func12 :
#if 0
//hifSpeedTest();
if (DebugParam[0] == 0xFF)
{
BYTE i;
for (i = 0; i < 5; i++)
{
UserPrefACMMode = i;
AdjustACCACM();
gm_Delay100ms(30);
}
UserPrefACMMode = 0;
AdjustACCACM();
}
else
{
UserPrefACMMode = (BYTE)DebugParam[0] ;
AdjustACCACM();
}
#endif
break;
case Func13:
RegWriteReadTest();
break;
#ifdef I2C_MST_CTRL
case Func14:
I2cMaster_Test();
break;
case Func16:
I2cMasterWrite((BYTE)DebugParam[0],(BYTE)DebugParam[1],(BYTE)DebugParam[2] );
break;
case Func17:
I2cMasterRead((BYTE)DebugParam[0],(BYTE)DebugParam[1],(BYTE)DebugParam[2] );
break;
#endif // I2C_MST_CTRL
case Func15:
#ifdef PHOENIX
NativeModeTestPhoenix();
#else
NativeModeTest52xx();
#endif //PHOENIX
break;
case Func18:
LBADC_Read( (BYTE)DebugParam[0], (BYTE)DebugParam[1] );
break;
case Func25:
// Source Free Run
gm_SetSrcFreeRunMode();
break;
#if USE_TEST_PATTERN
case Func26: // to Activate Aging Mode
InternalTestPatterns();
break;
#endif
case Func27:
{
BYTE i, Num, Pattern;
WORD StartReg = (WORD)DebugParam[0];
Pattern = (BYTE)DebugParam[2];
Num = (BYTE)DebugParam[1];
for (i=0; i < Num; i++)
{
gm_WriteRegByte((StartReg+i), Pattern);
}
}
break;
case Func28:
{
BYTE n, m;
WORD fdiv;
n = ((BYTE)DebugParam[0] & 0x1F);
m = ((BYTE)DebugParam[1] & 0x03);
gm_WriteRegByte( RCLK_FREQUENCY, (n + (m << 5)));
fdiv = (WORD)((((100UL * 65536UL)/(n+1)) * 1000UL * (m+1))/ 14318UL);
gm_WriteRegWord(FCLK_FREQ_0, fdiv);
}
break;
case Func29:
SpiRead( DebugParam[0], (WORD)DebugParam[1]);
break;
case Func30:
{
BYTE row = (BYTE)DebugParam[0];
BYTE col = (BYTE)DebugParam[1];
BYTE bpp = (BYTE)DebugParam[2];
TestOsdHwFeatures1(row, col, bpp);
break;
}
case Func32 :
msg("gmvw_InputFlagsMain %x",gmvw_InputFlagsMain);
break;
case Func33 :
ListNvramMappingDirectory();
break;
case Func34 :
InitializePresetModeFlag();
InitModeDependentDescr();
break;
case Func35 :
#if NVRAM_USE_FLASH
prune();
#endif
break;
case Func36 : // read memory, 32bit address.
{
BYTE count;
DWORD bptr;
bptr = (WORD)DebugParam[0];
bptr <<= 16;
bptr += (WORD)DebugParam[1];
count = (BYTE)DebugParam[2];
while(count--)
{
msg("%x", *(BYTE far *)bptr);
bptr++;
}
}
break;
case Func37:
AdjustAspectRatio((WORD)DebugParam[0]);
break;
case Func38:
gm_ClearRegBitsByte(ADC_CONTROL, CLAMP_EN);
gm_Delay1ms(5);
gm_SetRegBitsByte(ADC_CONTROL, CLAMP_EN);
gm_Delay1ms(30);
gm_WriteRegByte(IFM_STATUS,0xff);
gm_Delay1ms(30);
msg("ifm %x",(WORD)gm_ReadRegByte(IFM_STATUS));
break;
case Func39: //read word register values in specified count
ReadWordValueFromRegister((WORD)DebugParam[0], (WORD)DebugParam[1]);
break;
// add test for spi data caching
case Func40 :
msg("Reset NVRAM",0);
#ifdef NVRAM_BLOCK_ColorTemp_WB_Used
InitColorTempSettings(gmd_FALSE);
#endif
InitModeIndependentSettings(gmd_FALSE);
AdjustAllModeIndependentSettings();
RestoreSystemInfoFromNVRAM(gmd_FALSE);
// InitializePresetModes(gmd_FALSE);
FactoryReset();
break;
#ifdef PHOENIX_U
case Func41 :
#endif
// printSyncStateType();
gmp_FindBestPhase_Check();
break;
case Func42 :
break;
case Func43 :
break;
case Func44 :
{
gm_WriteRegByte(0x855e,0xdf);
gm_WriteRegByte(0x855f,0x84); //0x44 //0x84 (without lose too much contrast if two adjacent pixel value is closed)
gm_WriteRegByte(0x8560,0x42);
gm_WriteRegByte(0x8061,0x00);
//AOC
gm_WriteRegByte(0x8120,0x09); // (average 128 samples) change to 0x9
gm_WriteRegByte(0x8121,0x21);
gm_WriteRegByte(0x8122,0x80); //(take 128 samples)
gm_WriteRegByte(0x8123,0x04); //0x6 //change to 0x4
gm_WriteRegByte(0x8272,0xCC); //0x6 //change to 0x4
gm_WriteRegByte(0x8000,0x18);
}
break;
case Func53 :// change port
ChangeToPort((BYTE)DebugParam[0]);
break;
#ifdef PHOENIX
case Func54 : // initialize vedid handler
#if USE_VEDID
gmi_SetVEDIDHandler();
#endif
break;
case Func55 : // OCMBP test
msg("OCM Breakpoints test",0);
{
BYTE B_NumberOfBreakpoint;
BYTE B_NumberOfBits;
BYTE far* Bp_SubAddr;
BYTE ROM* Bp_OcmAddr;
msg("Substitute mode test",0);
Bp_SubAddr = MK_FP(0x0000, 0x0400); // Set substitute address
Bp_OcmAddr = MK_FP(0xf800, 0x0000); // Set ocm address
for(B_NumberOfBreakpoint = 0; B_NumberOfBreakpoint < 4; B_NumberOfBreakpoint++)
{
gm_Print("Test breakpoint %d", B_NumberOfBreakpoint);
for(B_NumberOfBits = 1; B_NumberOfBits <= 5; B_NumberOfBits++)
{
BYTE cnt;
BYTE result = 0;
gm_WriteRegWord(BP0_OCM_ADDR_0 + B_NumberOfBreakpoint * 6,
(FP_SEG(Bp_OcmAddr) << 4) + FP_OFF(Bp_OcmAddr)); // IROM 2BppMenu address
gm_WriteRegWord(BP0_SUB_ADDR_0 + B_NumberOfBreakpoint * 6,
(FP_SEG(Bp_SubAddr) << 4) + FP_OFF(Bp_SubAddr)); // RAM address
gm_WriteRegByte(BP0_CTRL + B_NumberOfBreakpoint * 6, 0x08 | B_NumberOfBits);
for(cnt = 0; cnt < (1 << B_NumberOfBits); cnt++)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -