⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 appstest.c

📁 GM5621原代码
💻 C
📖 第 1 页 / 共 5 页
字号:

            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 + -