/**************************************************************************** * NAME: App_Main.c *---------------------------------------------------------------------------- * Copyright (c) DIGITAL STREAM Technology Inc. *---------------------------------------------------------------------------- * CREATED_BY: Do Gon Lee * CREATION_DATE: 2009/08/24 * $Author: foxhunt $ * $Revision: 1.0 $ * $Date: 2009/08/24 10:39:43 $ *---------------------------------------------------------------------------- * PURPOSE: * - Entry point of Main application. *****************************************************************************/ /*_____ I N C L U D E __________________________________________*/ #include "App_Main.h" #include "App_Version.h" #include "DMW_Main.h" #include "DMW_ChannelAPI.h" #include "DMW_EpgInterface.h" #include "App_Fnc_NvRam.h" #include "App_Fnc_Audio.h" #include "App_Fnc_Video.h" #include "App_Fnc_ChTune.h" #include "App_Fnc_DigitKeyProc.h" #include "App_Fnc_EPG.h" #include "App_Fnc_Power.h" #include "App_Fnc_Rating.h" #include "App_Fnc_RRT.h" #include "App_Fnc_RfUpdate.h" #include "App_Fnc_Time.h" #include "App_Fnc_Ucm.h" #include "App_Fnc_AutoScan.h" #include "App_Fnc_SignalMonitor.h" #include "App_Fnc_CC.h" #include "App_Fnc_Pod.h" #include "App_Fnc_Sdds.h" #include "App_Fnc_EA2.h" #include "App_Fnc_Comm.h" #include "App_Res_Resources.h" #include "App_Proc.h" /*_____ D E F I N I T I O N ____________________________________*/ #if COMMENT _____DbgPrint_____(){} #endif #if COMMENT ____Config____(){} #endif #if COMMENT ____Types____(){} #endif #if COMMENT ____Variables____(){} #endif static BOOL g_bInitialized; /* system init flag */ /*_____ F U N C T I O N ________________________________________*/ #if COMMENT ____Function____(){} #endif /******************************************************************************** FUNCTION: - App_PrintLogo Purpose: - print application logo.(include sw version, project name, etc..) *********************************************************************************/ void App_PrintLogo(void) { #if APP_PORTING UINT32 board_ver; DHL_BOARD_TYPE board_type; DHL_SYS_GetBoardVersion(&board_ver, &board_type); DHL_OS_Printf("\n"); DHL_OS_Printf("/////////////////////////////////////////////////////////////\n"); DHL_OS_Printf("\n"); DHL_OS_Printf("\t ------- Project %s ------- \n", App_GetPrjName()); DHL_OS_Printf("\n"); DHL_OS_Printf("\t\t\t - Build : %s %s\n", App_GetBuildDateString(), App_GetBuildTimeString()); DHL_OS_Printf("\t\t\t - BOARD : %s (%u), ver %u\n", DHL_BOARD_TYPE_STR(board_type), board_type, board_ver); DHL_OS_Printf("\n"); DHL_OS_Printf("\t # Channel MW\t: %d\n", DMW_GetChannelMWVersion()); DHL_OS_Printf("\t # EPG MW\t: %d\n", DMW_EpgGetVersion()); DHL_OS_Printf("\t # Caption MW\t: %d\n", 0); DHL_OS_Printf("\n"); DHL_OS_Printf("\t # Application\t: %s\n", App_GetSwVersion()); DHL_OS_Printf("\t # Svn Revision\t: rev %s\n", App_GetRevision()); DHL_OS_Printf("\n"); DHL_OS_Printf("//////////////////////////////////////////////////////////////\n"); DHL_OS_Printf("\n"); #endif } /******************************************************************************** FUNCTION: - App_InitVariable Purpose: - Àоî¾ß ÇÒ ÀÎÀÚµéÀ» EEPROM¿¡¼­ Àоî¿À°Å³ª ÃʱâÈ­ ÇÏ´Â ÇÔ¼ö. *********************************************************************************/ void App_InitVariable(void) { BOOL bFormatRequired = FALSE; BOOL bNvramMismatch = FALSE; /* seting foramt func of each module */ App_AudioParamInit(); App_CCParamInit(); App_ChTuneParamInit(); App_TimeParamInit(); App_VideoParamInit(); #if SUPPORT_SDDS //App_SddsParamInit(); #endif App_RatingParamInit(); AppF_EAParamInit(); DMW_CDB_InitNvRam(); /* EEPROM Check and load NvRam data */ /* EPROMÀÌ Æ÷¸Ë µÇ¾îÀÖ´ÂÁö üũÇÏ°í ¾ÈµÇ¾îÀÖÀ¸¸é Æ÷¸Ë. */ if (DMW_CDB_CheckNvRam() != statusOK) { printf("!! MW: NvRam not valid\n"); bFormatRequired = TRUE; } if (!bFormatRequired && (App_NVM_LoadNvParam() == statusNvRamNotFormatted)) { printf("!! App: NvRam not valid\n"); bFormatRequired = TRUE; bNvramMismatch = TRUE; } if (bFormatRequired) { /* FormatÀÌ ¾ÈµÇ¾îÀÖ´Â °æ¿ì */ printf("Format NvRam now!!!\n"); App_NVM_FormatNvParam(FALSE); /* cafrii 060529, add argument channel map clean-up may not be synchronized. pass 'FALSE' for speed up. */ #if 1 if(bNvramMismatch) { App_NVM_SetBootingScan(TRUE); } #endif } } /******************************************************************************** FUNCTION: - App_InitializeTask Purpose: - *********************************************************************************/ void App_PreInitialize() { DHL_SYS_PlatformInit(); Dmc_Init(); App_NVM_Init(); //nvm init±îÁö.. App_Fnc_CommInit(); //comm init App_Menu_Init(); } void App_InitializeTask() { printf("App_Initialize Task..\n"); { extern void App_SWVer(void); App_SWVer(); } if (g_bInitialized) return; // °¢Á¾ debug level ¼³Á¤ÀÌ ÇÊ¿äÇϸé enable //App_SetDebugLevel(1); DMW_SYS_TimerInit(); /* init variable ¿¡¼­ ÀϺΠº¯¼ö eeprom ÀúÀå --> flash sync timer ¼³Á¤. ±×·¯³ª app timer °ü·Ã timer Ç÷¡±×¸¦ eeprom¿¡¼­ Àоî¿Í¾ß ÇÒ ¼öµµ ÀÖÀ½. */ APP_POD_Init(); APP_POD_Start(); // ¾Æ·¡ si´Â card detect µÈ ÈÄ¿¡ µ¿ÀÛ½ÃŲ´Ù. // card°¡ plug out µÇ¸é stopÀ» ÇØ¾ß ÇϹǷΠcard ÀåÂø »óÅ¿¡ µû¶ó µ¿ÀÛÇÏ´Â °ÍÀÌ ´õ ¹Ù¶÷Á÷ÇÔ. //APP_ScteSiStart(); App_PrintLogo(); App_InitVariable(); App_Pwr_Init(); App_ChTuneInit(); App_VideoInit(); App_AutoScanInit(); App_UcmInit(); App_AudioInit(); App_InitDebug(); App_TimeInit(); /* cafrii 081121, do all time related init, including daylight savings. */ App_EpgInit(); /* Epg module Init */ AppF_EAInit(); AppRrt_Init(); /* cafrii 060609, add rrt & rating init */ AppRating_InitBlock(); App_SMInit(); /* Signal Monitor Init */ //App_RfUpdateInit(); /* Not used file 2009.08.25 foxhunt */ App_CC_Init(); #if SUPPORT_SDDS App_SddsInit(); #endif #if 0 App_Pwr_Ready(); #else // ¸¹Àº ÀÛ¾÷µéÀÌ menu task¿¡¼­ ¼öÇàÇÏ´Â °¢Á¾ ÀÛ¾÷µé°ú °æÀï °ü°è¿¡ Àֱ⠶§¹®¿¡ // init task¿¡¼­ Á÷Á¢ È£ÃâÇÏÁö ¾Êµµ·Ï ÇÑ´Ù. // menu task·Î ÀÛ¾÷À» deferÇÏ¿© ½ÇÇàÀ» serialize ÇÑ´Ù. //DMG_SetUserDefined(UD_ID_POWER_ON, 0, 0); #endif //App_ChTuneRecoverLastChannel(); g_bInitialized = TRUE; DHL_OS_Printf("*** %s is completed\n", __FUNCTION__); } /******************************************************************************** FUNCTION: - App_Main Purpose: - application main function. *********************************************************************************/ void App_Main() { App_PreInitialize(); App_InitializeTask(); if(0) { DMG_MenuStart(MID_IDLE); } else { DMG_SetMenuParam1(MID_STANDBY, 0); DMG_MenuStart(MID_STANDBY); } #if APP_BREAK_MAP { void MapMeaninglessCode(int count); MapMeaninglessCode(100); } #endif // while(1) { // DHL_OS_Delay(1000); // } } #if 1 void ram_start() { //printf(">> App_Main: ram_start\n"); App_Main(); while(1) { DHL_OS_Delay(100); } } #endif /* end of file */