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

📄 cc1.c

📁 车载电子影音系统dvd播放系统原程序代码
💻 C
📖 第 1 页 / 共 3 页
字号:
                            {
                                printf("Right ,Addr,O->value,D->value,%lx,%lx,%lx\n", ((_dwStart_Address+dwTemp1)+CATCH_DRAM_RANGE*dwTemp2), dwTemp0, __dwBuff[dwTemp1]);
                            }
//                           
                        }

                    } //for(dwTemp1=0; dwTemp1<CATCH_DRAM_RANGE; dwTemp1++)                
                }

            } // for(j=0;j<CATCH_LOOP_TIME;j++)            
                            
END:
			printf("\nRead ok and  finish at  %lx  times\n",dwTemp3);     
    }//    for (k=0;k<1;k++)

}

//  *********************************************************************
//  Function    :   _CC_Test_Single_Muti_RW_All
//  Description :   
//  Arguments   :   DWORD dwTestByte1 First Bank  Test Bytes 
//              :   DWORD dwTestByte2 Second Bank Test Bytes
//  Return      :
//  *********************************************************************
void _CC_Test_Single_Muti_RW_All( DWORD dwTestByte1,DWORD dwTestByte2)
{
    BYTE bTemp;
    for (bTemp=1;bTemp<=4;bTemp++)
    {
         _CC_Test_Single_Muti_RW(0x41E00,bTemp,0x87654321,dwTestByte1);
    }
    for (bTemp=1;bTemp<=4;bTemp++)
        {
         _CC_Test_Single_Muti_RW(0x100000,bTemp,0x87654321,dwTestByte2);
    }

}
#endif //#ifdef (SUPPORT_TEST_SINGLE_MUTI_RW_FOR_BANK) 
#if defined (SUPPORT_TEST_SINGLE_MUTI_RW_FOR_BANK) || defined (SUPPORT_DRAM_SCAN_POWERON)  ////alex908
//  *********************************************************************
//  Function    :   CC_ScnbDramPowerOn
//  Description :   Scan Dram with risc ,bank0 , bank2
//              :   use single /muti , read / write  test bank0 , bank2 
//  Arguments   :   None_dwStart_Address, 
//  Return      :
//  *********************************************************************
            
void  CC_ScanDramPowerOn (void)
{
    if ( __btDramScan==TRUE) 
    {
        BYTE bTemp;
        BYTE bTemp1;
//alex1.26-2,Initial Osd and set fg/bg Color
        OSD_Initial();
        GDI_SetTextColor(TEXT_FG_COLOR, GDI_ENTRY_4B_COLOR_WHITE);
        GDI_SetTextColor(TEXT_BG_COLOR, GDI_ENTRY_4B_COLOR_BLACK);

#ifdef SUPPORT_DRAM_SORT
        _CC_DrawString( "BANK0",150,380);  
        _CC_DrawString( "BANK1",250,380);  
        _CC_DrawString( "BANK2",350,380);  
        _CC_DrawString( "BANK3",450,380);  
        _CC_DrawString( "SPEED120",0,410);         
#else //#ifdef SUPPORT_DRAM_SORT
        _CC_DrawString( "BANK0",150,320);  
        _CC_DrawString( "BANK1",250,320);          
        _CC_DrawString( "SPEED133",0,350);                            
        _CC_DrawString( "SPEED100",0,380);                            
        _CC_DrawString( "SPEED120",0,410); 
#endif //#ifdef SUPPORT_DRAM_SORT
            
        for (bTemp=0;bTemp<SPEED_NUM ;bTemp++)
            {
#ifdef SUPPORT_DRAM_SORT
            if (bTemp!= 2 ) continue;            
#endif //#ifdef SUPPORT_DRAM_SORT
            for (bTemp1=0;bTemp1<BANK_NUM ;bTemp1++)
            {
#ifndef SUPPORT_DRAM_SORT            
             if (bTemp1 > 1 ) continue; 
#endif //#ifdef SUPPORT_DRAM_SORT   
            _CC_DrawString( ( (__bRiscTestResult[bTemp][bTemp1]==TRUE)?"OK":"FAIL"),
                           (    150+(bTemp1) * 100 ),
                                350+(bTemp) * 30  );
            }
        }
        
    
#ifdef  SUPPORT_TEST_SINGLE_MUTI_RW_FOR_BANK    

        W99AV_WriteRegDW(MCCR,0x6c00, 0x1010); // 133mode 
#ifdef SERIAL_DEBUG
        RCAP2L=0xF7;
#endif
        _CC_DrawString( "SPEED",550,000);        
        _CC_DrawString( "133"  ,550,030);        
        _CC_Test_Single_Muti_RW_All( 1000,1000);        


        W99AV_WriteRegDW(MCCR,0x6d00, 0x1010); // 100mode 
#ifdef SERIAL_DEBUG
        RCAP2L=0xF7;
#endif
        _CC_DrawString( "SPEED",550,000);        
        _CC_DrawString( "100"  ,550,030);        
        _CC_Test_Single_Muti_RW_All(1000,1000);
        W99AV_WriteRegDW(MCCR,0xcc00, 0x100e); // 120mode 
#ifdef SERIAL_DEBUG
        RCAP2L=0xF8;
#endif
        _CC_DrawString( "SPEED",550,000);        
        _CC_DrawString( "120"  ,550,030);        
        _CC_Test_Single_Muti_RW_All(1000,1000);        
#endif //#ifdef  SUPPORT_TEST_SINGLE_MUTI_RW_FOR_BANK        
        __btDramScan=FALSE;
        RCAP2L=R2LV;//alex2.34 restore the default value 
        
        //alex1.26-2,let wrong bank dram stop and wait.
        // LLY2.37p, assign KEY_OPEN_CLOSE from F/W 
        // To avoid IR and F/W key conflict issue
        //__bISRKey = KEY_OPEN_CLOSE; 
        __bFWKey = KEY_OPEN_CLOSE;

    }
}



#ifdef  SUPPORT_TEST_SINGLE_MUTI_RW_FOR_BANK  
void _CC_ProcessDRAMScanKey()
{
    switch(__bKey)
    {
    case    KEY_KEYUP:
        W99AV_WriteRegDW(MCCR,0x6c00, 0x1010); // 133mode 
#ifdef SERIAL_DEBUG
        RCAP2L=0xF7;
#endif
        _CC_DrawString( "SPEED_133",450,400);
        break;
    case    KEY_KEYDOWN:    
        W99AV_WriteRegDW(MCCR,0x6d00, 0x1010); // 100mode       
#ifdef SERIAL_DEBUG
        RCAP2L=0xF7;
#endif
        _CC_DrawString( "SPEED_100",450,400);
        break;
    case    KEY_KEYNORMAL:
        W99AV_WriteRegDW(MCCR,0xcc00, 0x100e); // 120mode            
#ifdef SERIAL_DEBUG
        RCAP2L=0xF8;
#endif
        _CC_DrawString( "SPEED_120",450,400);
        break;
    case    KEY_N3:
         _CC_Test_Single_Muti_RW(0x41E00,1,0x87654321,25446);
         break;
    case    KEY_N4:
         _CC_Test_Single_Muti_RW(0x41E00,2,0x87654321,25446);
         break;
    case    KEY_N5:
         _CC_Test_Single_Muti_RW(0x41E00,3,0x87654321,25446);
         break;
    case    KEY_N6:
         _CC_Test_Single_Muti_RW(0x41E00,4,0x87654321,25446);
         break;
    case    KEY_N7:
         _CC_Test_Single_Muti_RW(0x100000,1,0x87654321,52428);
         break;
    case    KEY_N8:
        _CC_Test_Single_Muti_RW(0x100000,2,0x87654321,52428);
        break;
    case    KEY_N9:
         _CC_Test_Single_Muti_RW(0x100000,3,0x87654321,52428);
         break;
    case    KEY_N0:
        _CC_Test_Single_Muti_RW(0x100000,4,0x87654321,52428);
        break;   
    case    KEY_ZOOM:
    {
        BYTE bTemp;
        for (bTemp=0;bTemp<100;bTemp++)
        {
            _CC_Test_Single_Muti_RW_All(25446,52428);           
        }
    }       
    break;     

        default:
            break;
    }
    RCAP2L=R2LV;//alex2.34 restore the default value 
}
    
#endif //#ifdef SUPPORT_TEST_SINGLE_MUTI_RW_FOR_BANK 
#endif //#if defined (SUPPORT_TEST_SINGLE_MUTI_RW_FOR_BANK) || defined (SUPPORT_DRAM_SCAN_POWERON)  ////alex908
//=================================================================/ 
//alex_end


// LLY2.37p create for integate GoTime action ...
//  ********************************************************************************
//  Function    :   _CC_GoTimeAction
//  Description :   Issue GoTime related action: execute, calculate value
//  Argument    :   bAction, GOTIME_EXECUTE, GOTTIME_CALCULATE
//  Return      :   INVALID_KEY, the key is invalid
//                  :   TRUE, the key is valid
//  ********************************************************************************
BYTE _CC_GoTimeAction(BYTE bAction)
{    
    switch(bAction)
    {
    case    GOTIME_CALCULATE:
        // __dwGoToTime, for DVD, it's hh:mm:ss format
        // for other, it's sector format.
        // calculate __dwGoToTime value for DVD title
        if(__wDiscType & BOOK_DVD)
        {
            __dwGoToTime=MAKE_TMSF(__bTimeHour, __bTimeMin, __bTimeSec, 0x0);
        }
        else
        {
            __dwGoToTime= UTL_MStoSectors (__bTimeHour, __bTimeMin, __bTimeSec );
            // For playing mode, the time must relative to the track begin
// DVD_099bMicky, always use absolute time for GOTOTIME  when defined.
#ifndef ABSOLUTE_GOTOTIME
            if ( ( __bShowTimeType == MSG_RELTIME ) && (__btPlaying || __btPause) )
            {
                __dwGoToTime+=__dwTimeBegin;
                if (__dwGoToTime > __dwTimeEnd)     // over current track range
                    __dwGoToTime=__dwTimeDiscEnd;
            }
            else
#endif  // #ifndef ABSOLUTE_GOTITUME
            __dwGoToTime+=__dwTimeDiscBegin;
        }        
        break;

    case    GOTIME_EXECUTE:
        // Process DVD's goto time play
        if(__wDiscType & BOOK_DVD)
        {
            // Micky1.25-2, fix VCD-> gototime out of range will hang
            // as SERVO_Seek will break current read command
            UTL_PreStartServo( __dwTimeNow);
            
            //DVD_049Micky
            // remove it, as now don't disable IR
            // EX0= 1;  // ***LLY.039, forget to enable IR interrupt

            //alex1.23,20040218 combine gototime , search, so remove __btGoToTime variable
            //__btGoToTime= FALSE; // clear input mode flag for goto time
            __bSearchMode=SEARCH_MODE_OFF; //xuli0106
        	
            // DVD.039-1, check if out of range
            if( NV_TimePlay(__bTitle, __dwGoToTime) )
            {
                OSD_OUTPUT_MACRO(MSG_SETGOTOTIME, OSD_COMPLETE_TIME, 0x1);
                // Micky1.07, fix GoTOTIme-> will hear audio mute then play->after that play new A/V data.
                // must reset audio first.(Can be heard when SPDIF output)
                HAL_Reset(HAL_RESET_AUDIO);
                HAL_Reset(HAL_RESET_VIDEO); //CoCo.050
                // DVD_103Micky, fix GoToTime will hang issue
                // need restore the pla command
                UTL_TransferCommandID(__bModeCmd);
            }
            else
            {
                OSD_OUTPUT_MACRO(MSG_SETGOTOTIME, OSD_CANCEL_TIME, 0x0);
                return INVALID_KEY;
            }
            // DVD.039-1 end..
        }
        else
        {
            // Micky1.25-2, fix VCD-> gototime out of range will hang
            // as SERVO_Seek will break current read command
            // check the range first, only withn range will do pre-start servo
            if ( __dwGoToTime >= (__dwTimeDiscEnd) )
            {
        	   __bSearchMode=SEARCH_MODE_OFF;//alex1.23,20040218 combine gototime , search,bookmark                    
                OSD_OUTPUT_MACRO ( MSG_SETGOTOTIME, OSD_CANCEL_TIME, 0 );
                return INVALID_KEY;
            }
            else
            {
                UTL_PreStartServo( __dwTimeNow);
                if ( ! LINEAR_Action(KEY_GOTOTIME_PLAY, __dwGoToTime) )
                    return INVALID_KEY;
            }
        }
        break;

    default:
        return INVALID_KEY;
    }

    return TRUE;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -