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

📄 monitor.c

📁 ct952 source code use for Digital Frame Photo
💻 C
📖 第 1 页 / 共 5 页
字号:
                HAL_Reset(HAL_RESET_AUDIO);                              HAL_WriteAM(HAL_AM_PLAY_COMMAND, 1);                HAL_Reset(HAL_RESET_VIDEO);                HAL_PlayCommand(COMMAND_PLAY,0);                CHIPS_OpenAudio(TRUE);                HAL_ReadAM(HAL_AM_BIT_RATE, &_dwMONTemp1);                // LLY2.35, give start and end time for UTL_PlayFromTime() since the API is updated                UTL_PlayFromTime(__dwTimeNow+(75*5*(_dwMONJumpCnt+1)), __dwTimeEnd);            }            _MONITOR_CheckStageInitVars(6);            _dwMONJumpCnt++;            if (_dwMONJumpCnt > 5)                _dwMONNextStage = RECOVER_STAGE_HW_RESET;            else                _dwMONNextStage = RECOVER_STAGE_JUMP_SECTOR;            break;        case    RECOVER_STAGE_HW_RESET:            PRINTF("\nR_S H/W Reset!");            _MONITOR_CheckStageInitVars(6);            _dwMONNextStage = RECOVER_STAGE_RESET_SERVO;            break;        case    RECOVER_STAGE_RESET_SERVO:            PRINTF("\nR_S Reset Servo!");            _MONITOR_CheckStageInitVars(6);            SrcFilter_Reset(TRUE);            HAL_ControlParser(HAL_PARSER_STOP, 0);            PARSER_Command(0, PARSER_CMD_START, 0);            _dwMONNextStage = RECOVER_STAGE_NEXT_ITEM;            break;        case    RECOVER_STAGE_NEXT_ITEM:            PRINTF("\nR_S Next Item!");            // when Next don't allow, just enter menu#ifndef NO_DISC_MODE //CoCo2.37p            if (__wDiscType & BOOK_DVD)            {                if ( !NV_Action ( ACTION_NEXT, (WORD)NULL) )    // don't allow next                {                    // ** 2.76-TCHM; begin...                    // DVD-Title, 1/16(PBC) KEY_NEXT inhibit. Just go MENU_ROOT. If can't, do STOP.                    if ( __bNVPlayMode )                                            {                        if ( ! NV_MenuCall ( MENU_ROOT ) )                        {                            // LLY2.37p, assign KEY_STOP from F/W                             // To avoid IR and F/W key conflict issue                            //__bISRKey= KEY_STOP;                            __bFWKey=KEY_STOP;                        }                    }                    else                        {   // Non-NV mode, just jump to TT/CC= 1/1                        NV_TitlePlay ( 1, 1 );                    }                    // ** 2.76-TCHM; end...                 }            }            else#endif //#ifndef NO_DVD //CoCo2.37p            {                // ** TCH1.61-1; begin... If VCD 2.0 and PBC mode. Check the valid of LIST_NEXT                // If invalid, let's to LINEAR mode#ifndef NO_DISC_MODE //++CoCo2.37p                if ( __wDiscType & VCD_2_0 )                {                    if ( __btPBC )                    {                        if ( ! VCD20_IsValid_Command ( LIST_NEXT ) )                        {                            __bFWKey=KEY_PBC;                            break;                        }                    }                }#endif //#ifndef NO_VCD20 //++CoCo2.37p                __bFWKey=KEY_NEXT;            }            break;    }#endif //#endif //}void    MONITOR_InitialValue(void){    __dwMONRecoverStage = 0;    // wyc1.02-909, initial it here.    __bResetRecover = 0;    _bMaxNextTimes = 0;}void    MONITOR_Debug(void){    // ** TCH1.07; begin...     DBG_Printf(DBG_THREAD_MONITOR, DBG_INFO_PRINTF, "\nCC PlayMode=%hx, PlayCmd=%hx; Playing %hx, %hx, %hx;", __bModePlay, __bModeCmd, __btPlaying, __btPause, __btPlayEnd );#ifndef NO_DISC_MODE //CoCo2.37p    DBG_Printf(DBG_THREAD_MONITOR, DBG_INFO_PRINTF, "\nCC PBC %hx, NV %hx,", __btPBC, __bNVPlayMode );#endif //#ifndef NO_DVD //CoCo2.37p    // ** TCH1.07; end...     // wyc1.02a-909, re-arrange the printf message.    DBG_Printf(DBG_THREAD_MONITOR, DBG_INFO_PRINTF,"\nR_S:%lx,play mode:%hx,A/V Rem:%lx, %lx",__dwMONRecoverStage,__btPlaying,_dwMONPreARemain,_dwMONPreVRemain);    DBG_Printf(DBG_THREAD_MONITOR, DBG_INFO_PRINTF,"\nSE_Code:%lx, PPCnt:%lx, PTCnt:%lx",__dwSeqEndCode,_dwMONParPlayCnt,_dwMONParTotCnt);}// Micky2.17c#ifdef ENABLE_READ_AUDIO_REMvoid    _MONITOR_ReadAudioRem(DWORD* pdata){    /*    if (_bHALABuf2Def)    {        *pdata = ( (REG_MCU_A1REM+1) & 0xffffff ) *2; //DW    }                else    {                *pdata = 0;    }                *pdata += ( (REG_MCU_A0REM+1) & 0xffffff ) *2; //DW    */    if (_bHALABuf2Def)    {        *pdata = MCU_A1_BS_BUF_REMAINDER;    }                else    {                *pdata = 0;    }                *pdata += MCU_A0_BS_BUF_REMAINDER;    *pdata /= 4;    // Unit DW}#endif  //#ifdef ERROR_CONCEALvoid    MONITOR_AlarmInit(void){    //Micky_PORTING_OSWRAP        ALARM_INFO  AlarmInfo;    AlarmInfo.fpAlarmFunction = MONITOR_INTERRUPT;        AlarmInfo.wEntryData = 0;    AlarmInfo.dwInterval = SLICE_TICK;             OS_InitialAlarm(&AlarmInfo);/*    cyg_alarm_create(__ClockHandle, MONITOR_INTERRUPT,             (cyg_addrword_t) NULL,             &__AlarmHandle, &__AlarmObj);    cyg_alarm_initialize(__AlarmHandle, cyg_current_time()+1, 2);*/    }//VOID    MONITOR_INTERRUPT(cyg_handle_t alarmH, cyg_addrword_t data)// Micky2.17c, can't use data as parameterVOID    MONITOR_INTERRUPT(HANDLE_T alarmH, WORD data1){    DBG_INT();// elmer2.37, move the watchdog mechanism to from CC to alarm#ifdef  SUPPORT_WATCH_DOG    if ((REG_PLAT_SYSTEM_CONFIGURATION1 & WATCHDOG_SINGAL_ENABLE))    {        REG_PLAT_WATCHDOG = WATCHDOG_DOWN_COUNT_VALUE;    }#endif    if (!(OS_GetSysTimer() % COUNT_200_MSEC))    {#ifdef STACK_OVERFLOW_DETECTION                _MONITOR_StackStatus();#endif#ifdef ERROR_CONCEAL#ifdef SUPPORT_STB        if( __bChooseMedia == MEDIA_SELECT_STB)        {            MONITOR_CheckDVBHang();        }        else#endif //SUPPORT_STB                    {            MONITOR_CheckHang();        }#endif#ifdef SUPPORT_WATCH_DOG        // elmer2.37, move the watchdog mechanism to from CC to alarm        if (REG_SRAM_WATCHDOG != _dwWatchdogPrevCounter)        {            _dwWatchdogFailCount = 0;        }        else        {            _dwWatchdogFailCount++;            if (_dwWatchdogFailCount >= (WATCHDOG_TIME_TO_ENABLE / COUNT_200_MSEC))            {#ifndef NO_DISC_MODE#ifdef SUPPORT_WATCHDOG_BURNIN                // elmer2.78, support burn-in testing                _bWatchdogData = 0x78;                HAL_WriteStorage(SETUP_ADDR_WATCHDOG, &_bWatchdogData, EPROM_WATCHDOG_BYTE);                HAL_WriteStorage(SETUP_ADDR_NVPLAYMODE, &__bNVPlayMode, EPROM_NVPLAYMODE_BYTE);                HAL_WriteStorage(SETUP_ADDR_REPEATMODE, &__bRepeat, EPROM_REPEATMODE_BYTE);#endif#endif                HAL_REORDER_BARRIER();                _dwWatchdogFailCount = 0;                REG_PLAT_WATCHDOG = 0x000000;            }        }        _dwWatchdogPrevCounter =  REG_SRAM_WATCHDOG;#endif    }}// elmer2.32#ifdef SUPPORT_NO_AUDIO_IO_MUTEvoid    MONITOR_CheckMute(void){    DWORD dwTemp;    if ( __btPlaying )    {        _MONITOR_ReadAudioRem(&dwTemp);        if (dwTemp < 0x100)            return;        if ( _MONITOR_CheckMuteStatus( ))        {            if (_bIOMuteMode == FALSE)            {                _bMuteCount++;                //printf("Count = %lx\n", _bMuteCount);                if (_bMuteCount == MUTE_THRESHOLD)                {                    HAL_IOMute(TRUE);                    _bIOMuteMode = TRUE;                    _bMuteCount = 0;                }            }        }        else        {            if (_bIOMuteMode == TRUE)            {                HAL_IOMute(FALSE);                _bIOMuteMode = FALSE;                _bMuteCount = 0;            }        }    }    else    {        if (_bIOMuteMode == TRUE)        {            HAL_IOMute(FALSE);            _bIOMuteMode = FALSE;            _bMuteCount = 0;        }    }}BYTE    _MONITOR_CheckMuteStatus(void){    int ignor_bits,left,right;         ignor_bits=3+16;  //total 32 bits for serial port output         left=((int)REG_AIU_TXLMIX)>>ignor_bits;    right=((int)REG_AIU_TXRMIX)>>ignor_bits;         if(left<0)            left=~left;     if(right<0)            right=~right;         if( left | right )        return FALSE;    else        return TRUE;}#endif#ifdef STACK_OVERFLOW_DETECTIONWORD    _MONITOR_StackStatus(VOID){    WORD wRet = MONITOR_STACK_ERROR_NONE;    if (__cCTKDVDStack[0] != STACK_MAGIC_NUMBER)    {        wRet |= MONITOR_STACK_ERROR_CTKDVD;    }            if (__cDecStack[0] != STACK_MAGIC_NUMBER)    {        wRet |= MONITOR_STACK_ERROR_DECODER;    }    if (__cPARSERStack[0] != STACK_MAGIC_NUMBER)    {        wRet |= MONITOR_STACK_ERROR_PARSER;    }    if (__cInfoFilterStack[0] != STACK_MAGIC_NUMBER)    {        wRet |= MONITOR_STACK_ERROR_INFO;    }#ifdef  SUPPORT_ATAPI_SOURCE    if (__cATAPIStack[0] != STACK_MAGIC_NUMBER)    {        wRet |= MONITOR_STACK_ERROR_ATAPI;    }#endif#ifdef  SUPPORT_USB_SOURCE    if (__cUSBSRCStack[0] != STACK_MAGIC_NUMBER)    {        wRet |= MONITOR_STACK_ERROR_USBSRC;    }#endif        #ifdef SUPPORT_SERVO_SOURCE     {        extern char stack[2][4096];        if (stack[0][0] != STACK_MAGIC_NUMBER)        {            wRet |= MONITOR_STACK_ERROR_SERVO;        }        if (stack[1][0] != STACK_MAGIC_NUMBER)        {            wRet |= MONITOR_STACK_ERROR_SRV_BM;        }    }#endif    if (wRet != MONITOR_STACK_ERROR_NONE)    {        DBG_Printf(DBG_THREAD_MONITOR, DBG_INFO_PRINTF,"Stack Overflow: %hx", wRet);    }    return wRet;}#endif//////////////////////////////////////////////////////////////////////// Protected function begin ...////////////////////////////////////////////////////////////////////////----------------------------------------------------------------------------------------

⌨️ 快捷键说明

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