static void iSetupSt710xPorting() { BOOL bRe = FALSE; CSHDI_Error_t ErrorCode = CSHDI_SUCCESS; CSSYSInfo stSysInfo; CSSYSAdvancedParam tmp; CSPanelPinCfg_t panelCfg; CSQAM_Error_t QamInitErrorCode = CSQAM_FAILURE; CSSYSMemoryRange memProfile[4]; int nDDR = 0; DWORD dwSH4_CODE_MEMORY_SIZE=0; DWORD dwPARTITION0_START=0; DWORD dwPARTITION0_STOP =0; DWORD dwPARTITION1_START=0; DWORD dwPARTITION1_STOP =0; //**********start: BasicInfraStructure_Init**************************** #ifdef STB_TYPE_IS_CDVBC9750 nDDR = 2; #else #ifdef STB_TYPE_IS_CDVBC8750 nDDR = 1;/*DDR=128M ,FLASH=8M */ #else nDDR = 2;/*1;成都兴网的硬件是128M+64M字节的内存*/ #endif #endif dwSH4_CODE_MEMORY_SIZE = CODE_MEMORY_SIZE; dwPARTITION0_START = LMI_SYS_BASE + MEM_OFFSET_FOR_AV_FW + 0x10000 + dwSH4_CODE_MEMORY_SIZE; if ((LMI_SYS_SIZE == 0x8000000) && (nDDR == 1)) { if(dwSH4_CODE_MEMORY_SIZE < 0x04000000) { /*av memory partition的分配最好不要跨两个64M字节的边界,否则视频会花屏*/ dwPARTITION0_STOP = LMI_SYS_BASE + 0x04000000 - 4; dwPARTITION1_START= LMI_SYS_BASE + 0x04000000; dwPARTITION1_STOP = LMI_SYS_BASE + 0x08000000; } else { /*CODE_MEMORY_SIZE如果大于64M,则av memory只需要分配一个partition就ok可*/ dwPARTITION0_STOP = LMI_SYS_BASE + LMI_SYS_SIZE; } } else { dwPARTITION0_STOP = LMI_SYS_BASE + LMI_SYS_SIZE; if ( nDDR == 2) { dwPARTITION1_START= LMI_VID_BASE; dwPARTITION1_STOP = LMI_VID_BASE+LMI_VID_SIZE; } } memProfile[0].m_pStartAddr = (void *)s_ucAPPlicationHeap; memProfile[0].m_dwSize = SYSTEM_SIZE; memProfile[0].m_eMemoryType = CSSYS_MEM_TYPE_SYSPART; memProfile[1].m_pStartAddr = (void *)s_ucNCacheHeap; memProfile[1].m_dwSize = NCACHE_SIZE; memProfile[1].m_eMemoryType = CSSYS_MEM_TYPE_NONCACHE; memProfile[2].m_pStartAddr = (void *)dwPARTITION0_START; memProfile[2].m_dwSize = dwPARTITION0_STOP - dwPARTITION0_START; memProfile[2].m_eMemoryType = CSSYS_MEM_TYPE_AVMEM; memProfile[3].m_pStartAddr = (void *)dwPARTITION1_START; memProfile[3].m_dwSize = dwPARTITION1_STOP - dwPARTITION1_START; memProfile[3].m_eMemoryType = CSSYS_MEM_TYPE_AVMEM; CSSYSSetCfg(CSCFG_CSOS_USEPOSIX, CSDEVICE_IGNORE, 0, 0); CSSYSSetCfg(CSCFG_HD_TIMING_MODE,0,CSVID_TIMING_MODE_1080I_50HZ,0); CSSYSSetCfg(CSCFG_SD_TIMING_MODE,0,CSVID_TIMING_MODE_PAL,0); if (dwPARTITION1_START == dwPARTITION1_STOP) { CSSYSSetCfg(CSCFG_MEM_PROFILE,0,(DWORD)&memProfile[0],3); } else { CSSYSSetCfg(CSCFG_MEM_PROFILE,0,(DWORD)&memProfile[0],4); } //boot system g_dwTimeStart = CSGetTickCount(); bRe = CSSYSChipBoot(0); g_dwTimeStop = CSGetTickCount(); g_dwTimeCost = g_dwTimeStop - g_dwTimeStart; //**********start: application init********************************** CSOSGRect Region; CSOSGPixelFormat_S g_stGlobalPixelFormat = { 3,3,3,7,10,5,0,15,0x00007C00,0x000003E0,0x0000001F,0x0008000,0,32,2 }; CSOSGSetGlobalPixelFormat(CSLAYER_GFX1,g_stGlobalPixelFormat); stSysInfo.OutputAUDInfo.OutputDevice=CSAUD_OUTPUT_RCA | CSAUD_OUTPUT_SPDIF | CSAUD_OUTPUT_HDMI; stSysInfo.OuputTVInfo.OutputDevice = CSVID_OUTPUT_CVBS | CSVID_OUTPUT_HDMI | CSVID_OUTPUT_YUV; memset(&tmp,0,sizeof(CSSYSAdvancedParam)); tmp.m_bDualOSDBuffer = TRUE; tmp.m_bSupportHDDecoder = TRUE; //MPEG 2 高清 tmp.m_bSupportHDDecoder_H264 = TRUE; // .264 高清 tmp.m_dwMemoryStartAddr = LMI_SYS_BASE; tmp.m_dwMemoryTotalSize = LMI_SYS_SIZE; /*init chip*/ g_dwTimeStart = CSGetTickCount(); CSSYSChipInit(&stSysInfo, (HCSHANDLE)&tmp); g_dwTimeStop = CSGetTickCount(); g_dwTimeCost += (g_dwTimeStop - g_dwTimeStart); g_asTimeCost[ModuleIndex].pModuleName = "ChipBoot + ChipInit"; g_asTimeCost[ModuleIndex++].dwTimeCost = g_dwTimeCost; //I2C_0 and I2C_1 init ErrorCode = CSI2CInitialize(I2C_0, CSI2C_SPEED_NORMAL); CSASSERT(ErrorCode == CSI2C_SUCCESS); ErrorCode = CSI2CInitialize(I2C_1, CSI2C_SPEED_NORMAL); CSASSERT(ErrorCode == CSI2C_SUCCESS); /* init uart */ { #ifndef MCU_PANEL T_ST_Custom_Param param; param.dwCommClock = 96000000; CSHDIUartSetCustomParam(¶m); #endif g_dwTimeStart = CSGetTickCount(); ErrorCode = CSHDIUartInitial(2, 115200); CSASSERT(ErrorCode == CSHDI_SUCCESS); if (ErrorCode == CSHDI_SUCCESS) { g_dwTimeStop = CSGetTickCount(); g_dwTimeCost = g_dwTimeStop - g_dwTimeStart; g_asTimeCost[ModuleIndex].pModuleName = "UART"; g_asTimeCost[ModuleIndex++].dwTimeCost = g_dwTimeCost; } ErrorCode = CSHDIUartSetDefault(2); CSASSERT(ErrorCode == 2); } Region.left = 0; Region.top = 0; Region.Width = 1280; Region.Height = 720; /*init osd*/ ErrorCode = CSOSGOpen(CSLAYER_GFX1, 0, &Region, TRUE); CSASSERT(ErrorCode == CSHDI_SUCCESS); //open GPIO CSGPIOOpen(18,CS_GPIO_OUPUT); //**********end:application init************************************* //*****start: Equipment_Init***************************************** //QAM init QamInitErrorCode = CSQAMSetDVBMCNSMode(0, DVBMCNS_DVB); g_dwTimeStart = CSGetTickCount(); QamInitErrorCode =CSQAMInitialize(0, 9*17, TS_PARALLEL,0xff); CSASSERT(QamInitErrorCode == CSQAM_SUCCESS); if(QamInitErrorCode == CSQAM_SUCCESS) { USPPrint(0xff,"%s %d[ Equipment_Init ] QamInitErrorCode == CSQAM_SUCCESS\n",__FILE__,__LINE__); g_dwTimeStop = CSGetTickCount(); g_dwTimeCost = g_dwTimeStop - g_dwTimeStart; g_asTimeCost[ModuleIndex].pModuleName = "QAM"; g_asTimeCost[ModuleIndex++].dwTimeCost = g_dwTimeCost; } // IR init g_dwTimeStart = CSGetTickCount(); UI_IRInitialize(5*17); g_dwTimeStop = CSGetTickCount(); g_dwTimeCost = g_dwTimeStop - g_dwTimeStart; g_asTimeCost[ModuleIndex].pModuleName = "IR"; g_asTimeCost[ModuleIndex++].dwTimeCost = g_dwTimeCost; //Initialize panel g_dwTimeStart = CSGetTickCount(); #ifdef MCU_PANEL CSPanelSetType(CSPANEL_CNT_MCU); panelCfg.m_ucKeyScanPin = 1; /*在真待机时,将panelCfg.m_ucKeyScanPin 作为主芯片与单片机通信用的串口索引*/ //panelCfg.m_pucComPinGroup[0] = 'N'; #else CSPanelSetType(CSPANEL_CNT_164_LED); panelCfg.m_ucKeyScanPin = 19; //K11 panelCfg.m_pucComPinGroup[0] = 20; //Com0 panelCfg.m_pucComPinGroup[1] = 21; //Com1 panelCfg.m_pucComPinGroup[2] = 40; //Com2 panelCfg.m_pucComPinGroup[3] = 22; //Com3 panelCfg.m_pucComPinGroup[4] = 41; //Com4 panelCfg.m_pucComPinGroup[5] = 0xff; //Com5 panelCfg.m_pucSegPinGroup[0] = 23; //PData panelCfg.m_pucSegPinGroup[1] = 42; //PClk #endif ErrorCode = CSPanelInitialize(5*17-1, &panelCfg); CSASSERT(ErrorCode == CSHDI_SUCCESS); if (ErrorCode == CSHDI_SUCCESS) { g_dwTimeStop = CSGetTickCount(); g_dwTimeCost = g_dwTimeStop - g_dwTimeStart; g_asTimeCost[ModuleIndex].pModuleName = "PANEL"; g_asTimeCost[ModuleIndex++].dwTimeCost = g_dwTimeCost; } //display "good" ErrorCode = CSPanelDisplayText("good", 4); CSASSERT(ErrorCode == CSHDI_SUCCESS); //Initalize flash g_dwTimeStart = CSGetTickCount(); ErrorCode = CSFLSSetFLSCount(1); ErrorCode = CSFLSSetSpace( 0, ROM_BASE, 0x800000); ErrorCode = CSFLSInitialize(43);//43?? CSASSERT(ErrorCode == CSHDI_SUCCESS); if (ErrorCode == CSHDI_SUCCESS) { g_dwTimeStop = CSGetTickCount(); g_dwTimeCost = g_dwTimeStop - g_dwTimeStart; g_asTimeCost[ModuleIndex].pModuleName = "FLASH"; g_asTimeCost[ModuleIndex++].dwTimeCost = g_dwTimeCost; } //**** end: Equipment_Init ************************************* TimePrint(); //打印初始化时间 return; }
static void iSetupSt710xPorting() { int ErrorCode = 0; CSPanelPinCfg_t sPanelPinCfg; BOOL bRe = FALSE; CSSYSInfo stSysInfo; CSSYSAdvancedParam tmp; CSSYSAdvancedParamEx sSysEx; CSSYSMemoryRange memProfile[4]; int nDDR = 1; DWORD dwSH4_CODE_MEMORY_SIZE=0; DWORD dwPARTITION0_START=0; DWORD dwPARTITION0_STOP =0; DWORD dwPARTITION1_START=0; DWORD dwPARTITION1_STOP =0; #ifdef MEM_DDR_NUMBER nDDR = MEM_DDR_NUMBER; #else nDDR = 1; #endif #ifdef MEM_CODE_DATA_RAMSIZE dwSH4_CODE_MEMORY_SIZE = MEM_CODE_DATA_RAMSIZE; #else dwSH4_CODE_MEMORY_SIZE = 0xC00000; #endif #ifdef MEM_OFFSET_FOR_AV_FW dwPARTITION0_START = (0xA4000000 + MEM_OFFSET_FOR_AV_FW + dwSH4_CODE_MEMORY_SIZE); #else dwPARTITION0_START = (0xA4000000 + 0x00400000 + dwSH4_CODE_MEMORY_SIZE); #endif //这里配置为2*64M的情况,无VID Memory ////这里配置为2*64M的情况,无VID Memory if ((LMI_SYS_SIZE == 0x8000000) && (nDDR == 1)) { dwPARTITION0_STOP = (0xA4000000 + 0x04000000 - 4); dwPARTITION1_START= dwPARTITION0_STOP + 4; dwPARTITION1_STOP = ((0xA4000000 + 0x04000000)); } else { dwPARTITION0_STOP = (0xA4000000 + 0x08000000); if ( nDDR == 2) { dwPARTITION1_START= 0xB0000000; dwPARTITION1_STOP = 0xB0000000+LMI_VID_SIZE; } } memProfile[0].m_pStartAddr = (void *)s_ucAPPlicationHeap; memProfile[0].m_dwSize = SYSTEM_SIZE; memProfile[0].m_eMemoryType = CSSYS_MEM_TYPE_SYSPART; memProfile[1].m_pStartAddr = (void *)s_ucNCacheHeap; memProfile[1].m_dwSize = NCACHE_SIZE; memProfile[1].m_eMemoryType = CSSYS_MEM_TYPE_NONCACHE; memProfile[2].m_pStartAddr = (void *)dwPARTITION0_START; memProfile[2].m_dwSize = dwPARTITION0_STOP - dwPARTITION0_START; memProfile[2].m_eMemoryType = CSSYS_MEM_TYPE_AVMEM; memProfile[3].m_pStartAddr = (void *)dwPARTITION1_START; memProfile[3].m_dwSize = dwPARTITION1_STOP - dwPARTITION1_START; memProfile[3].m_eMemoryType = CSSYS_MEM_TYPE_AVMEM; CSSYSSetCfg(CSCFG_CSOS_USEPOSIX, CSDEVICE_IGNORE, 0, 0); CSSYSSetCfg(CSCFG_HD_TIMING_MODE,0,CSVID_TIMING_MODE_1080I_50HZ,0); CSSYSSetCfg(CSCFG_SD_TIMING_MODE,0,CSVID_TIMING_MODE_PAL,0); if (dwPARTITION1_START == dwPARTITION1_STOP) { CSSYSSetCfg(CSCFG_MEM_PROFILE,0,(DWORD)&memProfile[0],3); } else { CSSYSSetCfg(CSCFG_MEM_PROFILE,0,(DWORD)&memProfile[0],4); } //boot system g_dwTimeStart = CSGetTickCount(); bRe = CSSYSChipBoot(0); g_dwTimeStop = CSGetTickCount(); g_dwTimeCost = g_dwTimeStop - g_dwTimeStart; memset(&stSysInfo, 0, sizeof(CSSYSInfo)); stSysInfo.OuputTVInfo.OutputDevice = CSVID_OUTPUT_CVBS | CSVID_OUTPUT_YUV; stSysInfo.OutputAUDInfo.OutputDevice=CSAUD_OUTPUT_RCA | CSAUD_OUTPUT_HDMI; memset(&tmp,0,sizeof(tmp)); tmp.m_bDualOSDBuffer = TRUE; tmp.m_bSupportHDDecoder = FALSE; /*MPEG-2 HD;*/ tmp.m_bSupportHDDecoder_H264 = FALSE; /*H.264 HD;*/ tmp.m_dwMemoryStartAddr = LMI_SYS_BASE; tmp.m_dwMemoryTotalSize = LMI_SYS_SIZE;/*64M bytes*/ //CSSYSChipInit(&stSysInfo, (HCSHANDLE)&tmp); memset(&sSysEx,0,sizeof(sSysEx)); sSysEx.m_stSysAdvancedParam = tmp; sSysEx.m_ucPtiNumber = 3; sSysEx.m_bPvrSupport = TRUE; g_dwTimeStart = CSGetTickCount(); CSSYSChipInitEx(&stSysInfo, (HCSHANDLE)&sSysEx); g_dwTimeStop = CSGetTickCount(); g_dwTimeCost += (g_dwTimeStop - g_dwTimeStart); g_asTimeCost[ModuleIndex].pModuleName = "ChipBoot + ChipInit"; g_asTimeCost[ModuleIndex++].dwTimeCost = g_dwTimeCost; /* init gpio & i2c */ ErrorCode = CSGPIOInitialize(); CSASSERT(ErrorCode == CSHDI_SUCCESS); ErrorCode |= CSI2CInitialize(I2C_0,CSI2C_SPEED_NORMAL); ErrorCode |= CSI2CInitialize(I2C_1,CSI2C_SPEED_NORMAL); CSASSERT(ErrorCode == CSHDI_SUCCESS); /*init tuner*/ g_dwTimeStart = CSGetTickCount(); ErrorCode = CSCOFDMInitialize(Tuner_0, 9*17, TS_PARALLEL, 38); CSASSERT(ErrorCode == CSHDI_SUCCESS); if (ErrorCode == CSHDI_SUCCESS) { g_dwTimeStop = CSGetTickCount(); g_dwTimeCost = g_dwTimeStop - g_dwTimeStart; g_asTimeCost[ModuleIndex].pModuleName = "COFDM"; g_asTimeCost[ModuleIndex++].dwTimeCost = g_dwTimeCost; } /* init uart */ g_dwTimeStart = CSGetTickCount(); ErrorCode = CSHDIUartSetDefault(0); ErrorCode |= CSHDIUartInitial( 1, 115200); CSASSERT(ErrorCode == CSHDI_SUCCESS); if (ErrorCode == CSHDI_SUCCESS) { g_dwTimeStop = CSGetTickCount(); g_dwTimeCost = g_dwTimeStop - g_dwTimeStart; g_asTimeCost[ModuleIndex].pModuleName = "UART"; g_asTimeCost[ModuleIndex++].dwTimeCost = g_dwTimeCost; } //Initialize panel g_dwTimeStart = CSGetTickCount(); sPanelPinCfg.m_ucKeyScanPin = 19; //K11 sPanelPinCfg.m_pucComPinGroup[0] = 20; //Com0 sPanelPinCfg.m_pucComPinGroup[1] = 21; //Com1 sPanelPinCfg.m_pucComPinGroup[2] = 40; //Com2 sPanelPinCfg.m_pucComPinGroup[3] = 22; //Com3 sPanelPinCfg.m_pucComPinGroup[4] = 41; //Com4 sPanelPinCfg.m_pucComPinGroup[5] = 0xff; //Com5 sPanelPinCfg.m_pucSegPinGroup[0] = 23; //PData sPanelPinCfg.m_pucSegPinGroup[1] = 42; //PClk ErrorCode = CSPanelInitialize(159, &sPanelPinCfg); if (ErrorCode == CSHDI_SUCCESS) { g_dwTimeStop = CSGetTickCount(); g_dwTimeCost = g_dwTimeStop - g_dwTimeStart; g_asTimeCost[ModuleIndex].pModuleName = "PANEL"; g_asTimeCost[ModuleIndex++].dwTimeCost = g_dwTimeCost; } CSPanelConfigDisplayTimeDiv(520); CSASSERT(ErrorCode == CSHDI_SUCCESS); { CSRMTunerConfig_S sTunerInfo; CSRMDemuxConfig_S sDemuxInfo; sTunerInfo.m_emTunerType = EM_TUNER_TER; CSRMSetTunerConfig(0,&sTunerInfo); sDemuxInfo.m_nSupportType = DEMUX_SUPPORT_LIVE|DEMUX_SUPPORT_REC| DEMUX_SUPPORT_PLAYBACK; sDemuxInfo.m_emLiveChannel = EM_DEMUX_CHANNELCOUNT_1; sDemuxInfo.m_emRecordChannel = EM_DEMUX_CHANNELCOUNT_1; sDemuxInfo.m_emPlaybackChannel = EM_DEMUX_CHANNELCOUNT_1; sDemuxInfo.m_nTunerLinkMark = 3; CSRMSetDemuxConfig(0,&sDemuxInfo); CSSYSSetPvrSupport(TRUE); InitUSPSectionDemux(0); InitUSPSectionDemux(1); InitUSPSectionDemux(3); CSTRACE(0xff,"[%s:%d]\n",__FUNCTION__,__LINE__); CSSTRGInit(); CSTRACE(0xff,"[%s:%d]\n",__FUNCTION__,__LINE__); } //CSPanelRegisterKeySendCallback((CSHDICallback)UI_PanelControlUserProc); ErrorCode = CSPanelDisplayText("good", 4); CSASSERT(ErrorCode == CSHDI_SUCCESS); // IR init g_dwTimeStart = CSGetTickCount(); UI_IRInitialize(5*17); g_dwTimeStop = CSGetTickCount(); g_dwTimeCost = g_dwTimeStop - g_dwTimeStart; g_asTimeCost[ModuleIndex].pModuleName = "IR"; g_asTimeCost[ModuleIndex++].dwTimeCost = g_dwTimeCost; /* init EEPROM & FLASH */ //ErrorCode = CSEPRInitialize(I2C_3, 0xa0, AT24C64); //CSASSERT(ErrorCode == CSHDI_SUCCESS); ErrorCode = CSFLSSetFLSCount(1); ErrorCode = CSFLSSetSpace( 0, ROM_BASE, 0x800000); g_dwTimeStart = CSGetTickCount(); ErrorCode = CSFLSInitialize(43);//43?? CSASSERT(ErrorCode == CSHDI_SUCCESS); if (ErrorCode == CSHDI_SUCCESS) { g_dwTimeStop = CSGetTickCount(); g_dwTimeCost = g_dwTimeStop - g_dwTimeStart; g_asTimeCost[ModuleIndex].pModuleName = "FLASH"; g_asTimeCost[ModuleIndex].dwTimeCost = g_dwTimeCost; } TimePrint(); //打印初始化时间 return; }
/*udi_init is used to init porting,and different hardware config has defferent version of udi_int*/ void udi_init() { HCSHANDLE hChipHandle = 0; CSHDI_Error_t ErrorCode; CSPanelPinCfg_t sPanelPinCfg; CSRMDemuxConfig_S sDemuxInfo; /* init demux*/ CSRMSetRMSupport(TRUE); sDemuxInfo.m_nSupportType = DEMUX_SUPPORT_PLAYBACK; sDemuxInfo.m_emLiveChannel = EM_DEMUX_CHANNELCOUNT_0; sDemuxInfo.m_emRecordChannel = EM_DEMUX_CHANNELCOUNT_0; sDemuxInfo.m_emPlaybackChannel = EM_DEMUX_CHANNELCOUNT_1; sDemuxInfo.m_nTunerLinkMark = 0x00; if(!CSRMSetDemuxConfig(CSDMX_0,&sDemuxInfo)) { CSDebug("PlatformInit.c", ERROR_LEVEL, "[%s]CSRMSetDemuxConfig demux(%d) fail !\n", __FUNCTION__, CSDMX_0); return; } sDemuxInfo.m_nSupportType = DEMUX_SUPPORT_PLAYBACK; sDemuxInfo.m_emLiveChannel = EM_DEMUX_CHANNELCOUNT_0; sDemuxInfo.m_emRecordChannel = EM_DEMUX_CHANNELCOUNT_0; sDemuxInfo.m_emPlaybackChannel = EM_DEMUX_CHANNELCOUNT_1; sDemuxInfo.m_nTunerLinkMark = 0x00; if(!CSRMSetDemuxConfig(CSDMX_1,&sDemuxInfo)) { CSDebug("PlatformInit.c", ERROR_LEVEL, "[%s]CSRMSetDemuxConfig demux(%d) fail !\n", __FUNCTION__, CSDMX_1); return; } if(!CSSYSSetCfg(CSCFG_TSIN_DMX, CSTSIN_5, CSDMX_0, 0)) { CSDebug("PlatformInit.c", ERROR_LEVEL, "[%s]CSSYSSetCfg tsin(%d)-demux(%d) fail !\n", __FUNCTION__, CSTSIN_5, CSDMX_0); return; } if(!CSSYSSetCfg(CSCFG_TSIN_DMX, CSTSIN_6, CSDMX_1, 0)) { CSDebug("PlatformInit.c", ERROR_LEVEL, "[%s]CSSYSSetCfg tsin(%d)-demux(%d) fail !\n", __FUNCTION__, CSTSIN_6, CSDMX_1); return; } g_dwTimeStart = CSGetTickCount(); if (!CSSYSChipBoot((HCSHANDLE)NULL)) { CSDebug("PlatformInit.c", ERROR_LEVEL, "[%s]CSSYSChipBoot fail !\n", __FUNCTION__); return; } hChipHandle = CSSYSChipInit(NULL, (HCSHANDLE)NULL); if (hChipHandle == (HCSHANDLE)NULL) { CSDebug("PlatformInit.c", ERROR_LEVEL, "[%s]CSSYSChipInit fail !\n", __FUNCTION__); CSSYSChipHalt((HCSHANDLE)NULL); return; } g_dwTimeStop = CSGetTickCount(); // CSTTPrint("\n^^^^^^^^^^^^^^^^start:%d\r\n", g_dwTimeStart); // CSTTPrint("\n^^^^^^^^^^^^^^^^stop:%d\r\n", g_dwTimeStop); g_dwTimeCost = g_dwTimeStop - g_dwTimeStart; g_asTimeCost[ModuleIndex].pModuleName = "ChipBoot + ChipInit"; g_asTimeCost[ModuleIndex++].dwTimeCost = g_dwTimeCost; /* init panel */ g_dwTimeStart = CSGetTickCount(); sPanelPinCfg.m_pucSegPinGroup[0] = 20; sPanelPinCfg.m_pucSegPinGroup[1] = 19; sPanelPinCfg.m_pucComPinGroup[0] = 21; sPanelPinCfg.m_ucKeyScanPin = 24; ErrorCode = CSPanelInitialize(220, &sPanelPinCfg); g_dwTimeStop = CSGetTickCount(); CSASSERT(ErrorCode == CSHDI_SUCCESS); if(ErrorCode == CSHDI_SUCCESS) { g_dwTimeCost = g_dwTimeStop - g_dwTimeStart; g_asTimeCost[ModuleIndex].pModuleName = "Panel"; g_asTimeCost[ModuleIndex++].dwTimeCost = g_dwTimeCost; } //CSPanelRegisterKeySendCallback((CSHDICallback)UI_PanelControlUserProc); // IR init g_dwTimeStart = CSGetTickCount(); UI_IRInitialize(5*17); g_dwTimeStop = CSGetTickCount(); g_dwTimeCost = g_dwTimeStop - g_dwTimeStart; g_asTimeCost[ModuleIndex].pModuleName = "IR"; g_asTimeCost[ModuleIndex++].dwTimeCost = g_dwTimeCost; /* init EEPROM & FLASH */ g_dwTimeStart = CSGetTickCount(); ErrorCode = CSFLSSetFLSCount(1); ErrorCode |= CSFLSSetSpace( 0, 0X11000000, 0x7000000); ErrorCode |= CSFLSInitialize(13); g_dwTimeStop = CSGetTickCount(); CSASSERT(ErrorCode == CSHDI_SUCCESS); if(ErrorCode == CSHDI_SUCCESS) { g_dwTimeCost = g_dwTimeStop - g_dwTimeStart; g_asTimeCost[ModuleIndex].pModuleName = "FLASH"; g_asTimeCost[ModuleIndex].dwTimeCost = g_dwTimeCost; } TimePrint();//打印初始化时间 }
/*udi_init is used to init porting,and different hardware config has defferent version of udi_int*/ void udi_init() { CSSYSAdvancedParamEx ParamEx; HCSHANDLE hChipHandle = 0; CSHDI_Error_t ErrorCode; CSPanelPinCfg_t sPanelPinCfg; CSOSGPixelFormat_S stPixelFormat = {0,0,0,0,16,8,0,24,0x00ff0000,0x0000ff00,0x000000ff,0xff000000,0,32,4}; CSOSGRect Region = {0,0,720,576}; /* init tuner & demux*/ //closed by wansuanlin at 20090508 start #if defined (TKMODULE_ca) { CSDebugSetDefaultLevel(DEBUG_LEVEL);//CSSetDebugLevel(0xff); } #else { CSRMTunerConfig_S sTunerInfo; CSRMDemuxConfig_S sDemuxInfo; //CSSYSAdvancedParamEx ParamEx; CSRMSetRMSupport(TRUE); sTunerInfo.m_emTunerType = EM_TUNER_CAB; CSRMSetTunerConfig(0, &sTunerInfo); sDemuxInfo.m_nSupportType = DEMUX_SUPPORT_LIVE | DEMUX_SUPPORT_REC ; sDemuxInfo.m_emLiveChannel = EM_DEMUX_CHANNELCOUNT_1; sDemuxInfo.m_emRecordChannel = EM_DEMUX_CHANNELCOUNT_1; sDemuxInfo.m_emPlaybackChannel = EM_DEMUX_CHANNELCOUNT_1; sDemuxInfo.m_nTunerLinkMark = 3; CSRMSetDemuxConfig(0, &sDemuxInfo); sDemuxInfo.m_nSupportType = DEMUX_SUPPORT_PLAYBACK; sDemuxInfo.m_emLiveChannel = EM_DEMUX_CHANNELCOUNT_0; sDemuxInfo.m_emRecordChannel = EM_DEMUX_CHANNELCOUNT_0; sDemuxInfo.m_emPlaybackChannel = EM_DEMUX_CHANNELCOUNT_1; sDemuxInfo.m_nTunerLinkMark = 0x00; CSRMSetDemuxConfig(CSDMX_1, &sDemuxInfo); } #endif //closed by wansuanlin at 20090508 end /* init chip driver */ #ifdef _COSHIP_PVR_ CSSYSSetPvrSupport(TRUE); #else CSSYSSetPvrSupport(FALSE); #endif //modify by wansuanlin at 20090519 start #if defined (TKMODULE_ca) { CSSYSSetCfg(CSCFG_TSIN_DMX, CSTSIN_6, CSDMX_0, 0); } #else { CSSYSSetCfg(CSCFG_TUNER_TSIN, CSTUNER_0, CSTSIN_0, 0); // CSSYSSetCfg(CSCFG_TUNER_TSIN, CSTUNER_1, CSTSIN_1, 0); CSSYSSetCfg(CSCFG_TSIN_DMX, CSTSIN_0, CSDMX_0, 0); // CSSYSSetCfg(CSCFG_TSIN_DMX, CSTSIN_1, CSDMX_1, 0); CSSYSSetCfg(CSCFG_TUNER_MODE, CSTUNER_0, CSSYS_TS_SERIAL, 0); //CSSYSSetCfg(CSCFG_TUNER_MODE, CSTUNER_1, CSSYS_TS_SERIAL, 0); CSSYSSetCfg(CSCFG_TSIN_DMX, CSTSIN_6, CSDMX_1, 0); #if 0 CSSYSSetCfg(CSCFG_TUNER_TSIN, CSTUNER_0, CSTSIN_0, 0); CSSYSSetCfg(CSCFG_TUNER_TSIN, CSTUNER_1, CSTSIN_1, 0); CSSYSSetCfg(CSCFG_TSIN_DMX, CSTSIN_0, CSDMX_0, 0); CSSYSSetCfg(CSCFG_TSIN_DMX, CSTSIN_1, CSDMX_1, 0); CSSYSSetCfg(CSCFG_TUNER_MODE, CSTUNER_0, CSSYS_TS_SERIAL, 0); CSSYSSetCfg(CSCFG_TUNER_MODE, CSTUNER_1, CSSYS_TS_SERIAL, 0); CSSYSSetCfg(CSCFG_TSIN_DMX, CSTSIN_7, CSDMX_2, 0); #endif } #endif //modify by wansuanlin at 20090519 end g_dwTimeStart = CSGetTickCount(); if (!CSSYSChipBoot(0) ) { CSDebug("TestMain",FATAL_LEVEL, "[%s.%d]: Fail at CSSYSChipBoot\n", __FILE__, __LINE__); return ; } ParamEx.m_dwReserve = 0;//m_dwReserve=0表示不支持nds ca, 为1支持nds ca,仅适用于7403平台 hChipHandle = CSSYSChipInitEx(NULL, (HCSHANDLE) &ParamEx); if ( 0 == hChipHandle ) { CSDebug("TestMain",FATAL_LEVEL, "[%s.%d]: Fail at CSSYSChipInit\n", __FILE__, __LINE__); CSSYSChipHalt(0); return ; } g_dwTimeStop = CSGetTickCount(); // CSTTPrint("\n^^^^^^^^^^^^^^^^start:%d\r\n", g_dwTimeStart); // CSTTPrint("\n^^^^^^^^^^^^^^^^stop:%d\r\n", g_dwTimeStop); g_dwTimeCost = g_dwTimeStop - g_dwTimeStart; g_asTimeCost[ModuleIndex].pModuleName = "ChipBoot + ChipInit"; g_asTimeCost[ModuleIndex++].dwTimeCost = g_dwTimeCost; { int i; int cnt = CSRMGetDeviceCounts(EM_RESOURCE_DEMUX); for(i=0;i<cnt;i++) { InitUSPSectionDemux(i); } } /* init gpio & i2c */ ErrorCode = CSGPIOInitialize(); CSASSERT(ErrorCode == CSHDI_SUCCESS); ErrorCode |= CSI2CInitialize(I2C_0,CSI2C_SPEED_NORMAL); ErrorCode |= CSI2CInitialize(I2C_1,CSI2C_SPEED_NORMAL); ErrorCode |= CSI2CInitialize(I2C_2,CSI2C_SPEED_NORMAL); ErrorCode |= CSI2CInitialize(I2C_3,CSI2C_SPEED_NORMAL); CSASSERT(ErrorCode == CSHDI_SUCCESS); /* init uart */ g_dwTimeStart = CSGetTickCount(); ErrorCode = CSHDIUartSetDefault(0); ErrorCode |= CSHDIUartInitial( 2, 9600); g_dwTimeStop = CSGetTickCount(); CSASSERT(ErrorCode == CSHDI_SUCCESS); if(ErrorCode == CSHDI_SUCCESS) { g_dwTimeCost = g_dwTimeStop - g_dwTimeStart; g_asTimeCost[ModuleIndex].pModuleName = "UART"; g_asTimeCost[ModuleIndex++].dwTimeCost = g_dwTimeCost; } /* init tuner */ g_dwTimeStart = CSGetTickCount(); ErrorCode = CSQAMInitializeEx(CSTUNER_0, I2C_2, 159, TS_SERIAL, 0xff); g_dwTimeStop = CSGetTickCount(); CSASSERT(ErrorCode == CSHDI_SUCCESS); if(ErrorCode == CSHDI_SUCCESS) { g_dwTimeCost = g_dwTimeStop - g_dwTimeStart; g_asTimeCost[ModuleIndex].pModuleName = "QAM"; g_asTimeCost[ModuleIndex++].dwTimeCost = g_dwTimeCost; } /* init panel */ g_dwTimeStart = CSGetTickCount(); sPanelPinCfg.m_ucKeyScanPin = 18; //K11 sPanelPinCfg.m_pucComPinGroup[0] = 21; //Com0 sPanelPinCfg.m_pucComPinGroup[1] = 24; //Com1 sPanelPinCfg.m_pucComPinGroup[2] = 20; //Com2 sPanelPinCfg.m_pucComPinGroup[3] = 23; //Com3 sPanelPinCfg.m_pucComPinGroup[4] = 19; //Com4 sPanelPinCfg.m_pucComPinGroup[5] = 0xff; //Com5 sPanelPinCfg.m_pucSegPinGroup[0] = 37; //PData sPanelPinCfg.m_pucSegPinGroup[1] = 25; //PClk ErrorCode = CSPanelInitialize(220, &sPanelPinCfg); g_dwTimeStop = CSGetTickCount(); CSASSERT(ErrorCode == CSHDI_SUCCESS); if(ErrorCode == CSHDI_SUCCESS) { g_dwTimeCost = g_dwTimeStop - g_dwTimeStart; g_asTimeCost[ModuleIndex].pModuleName = "Panel"; g_asTimeCost[ModuleIndex++].dwTimeCost = g_dwTimeCost; } //CSPanelRegisterKeySendCallback((CSHDICallback)UI_PanelControlUserProc); ErrorCode = CSPanelDisplayText("good", 4); CSASSERT(ErrorCode == CSHDI_SUCCESS); // IR init g_dwTimeStart = CSGetTickCount(); UI_IRInitialize(5*17); g_dwTimeStop = CSGetTickCount(); g_dwTimeCost = g_dwTimeStop - g_dwTimeStart; g_asTimeCost[ModuleIndex].pModuleName = "IR"; g_asTimeCost[ModuleIndex++].dwTimeCost = g_dwTimeCost; /* init EEPROM & FLASH */ ErrorCode = CSEPRInitialize(I2C_3, 0xa0, AT24C64); CSASSERT(ErrorCode == CSHDI_SUCCESS); g_dwTimeStart = CSGetTickCount(); ErrorCode = CSFLSSetFLSCount(1); ErrorCode |= CSFLSSetSpace( 0, 0X1E000000, 0x2000000); ErrorCode |= CSFLSInitialize(13); g_dwTimeStop = CSGetTickCount(); CSASSERT(ErrorCode == CSHDI_SUCCESS); if(ErrorCode == CSHDI_SUCCESS) { g_dwTimeCost = g_dwTimeStop - g_dwTimeStart; g_asTimeCost[ModuleIndex].pModuleName = "FLASH"; g_asTimeCost[ModuleIndex].dwTimeCost = g_dwTimeCost; } CSOSGInit(0); CSOSGSetGlobalPixelFormat(CSLAYER_GFX1, stPixelFormat); CSOSGOpen(0,0,&Region,TRUE); TimePrint();//打印初始化时间 }
static void PrintQuotaEntry(struct sam_dquot *dq, char *arg, int type, int index) { int kfactor = kflag ? 2 : 1; #ifdef DEBUG if (dflag) { fprintf(stderr, "command_print('%s', dq=%lx, arg='%s', type=%d, idx=%d)\n", Program, (long)dq, arg, type, index); } #endif /* DEBUG */ PrintQuotaHdr(); if (eflag) { if (tflag) { printf("%s -%c %d %s\\\n", Program, "zAGUxQ"[type+1], index, kflag ? "-k" : ""); printf(" -f %8lld:s:o -f %8lld:h:o " "-f %8lld:s:t -f %8lld:h:t \\\n", dq->dq_folsoft, dq->dq_folhard, dq->dq_ftotsoft, dq->dq_ftothard); printf(" -b %8lld:s:o -b %8lld:h:o " "-b %8lld:s:t -b %8lld:h:t \\\n", dq->dq_bolsoft/kfactor, dq->dq_bolhard/kfactor, dq->dq_btotsoft/kfactor, dq->dq_btothard/kfactor); printf(" -t "); TimePrint(dq->dq_ol_grace); printf(":o -t "); TimePrint(dq->dq_tot_grace); printf(":t"); if (dq->dq_ol_enforce || dq->dq_tot_enforce) { printf(" \\\n -x "); if (dq->dq_ol_enforce) { if (dq->dq_ol_enforce > Now) { TimePrint( dq->dq_ol_enforce-Now); printf(":o "); } else { printf("expire:o "); } } else { printf("clear "); } printf(" -x "); if (dq->dq_tot_enforce) { if (dq->dq_tot_enforce > Now) { TimePrint( dq->dq_tot_enforce-Now); printf(":t "); } else { printf("expire:t "); } } else { printf("clear "); } } printf(" %s\n", arg); } else { printf("%s -%c %d %s\\\n", Program, "zAGUxQ"[type+1], index, kflag ? "-k" : ""); printf(" -f %8lld:s -f %8lld:h \\\n", dq->dq_folsoft, dq->dq_folhard); printf(" -b %8lld:s -b %8lld:h \\\n", dq->dq_bolsoft/kfactor, dq->dq_bolhard/kfactor); printf(" -t "); TimePrint(dq->dq_ol_grace); if (dq->dq_ol_enforce) { printf(" \\\n -x "); if (dq->dq_ol_enforce) { if (dq->dq_ol_enforce > Now) { TimePrint( dq->dq_ol_enforce-Now); } else { printf("expire "); } } else { printf("clear "); } } printf(" %s\n", arg); } } else { if (tflag) { char c1, c2; printf("%s\n", arg); c1 = c2 = ' '; if (!QUOTA_SANE(dq)) { c1 = c2 = '!'; } else if (!QUOTA_INF(dq)) { if (dq->dq_folused > dq->dq_folhard) { c1 = '!'; } else if (dq->dq_folused > dq->dq_folsoft) { c1 = '+'; if (dq->dq_ol_enforce && Now > dq->dq_ol_enforce) c1 = '*'; } if (dq->dq_ftotused > dq->dq_ftothard) { c2 = '!'; } else if (dq->dq_ftotused > dq->dq_ftotsoft) { c2 = '+'; if (dq->dq_ol_enforce && Now > dq->dq_ol_enforce) c2 = '*'; } } printf("Files %5s %5d %8lld%c%8lld %8lld " "%8lld%c%8lld %8lld", type == SAM_QUOTA_MAX ? " - " : quota_types[type], index, dq->dq_folused, c1, dq->dq_folsoft, dq->dq_folhard, dq->dq_ftotused, c2, dq->dq_ftotsoft, dq->dq_ftothard); printf("\n"); c1 = c2 = ' '; if (!QUOTA_SANE(dq)) { c1 = c2 = '!'; } else if (!QUOTA_INF(dq)) { if (dq->dq_bolused > dq->dq_bolhard) { c1 = '!'; } else if (dq->dq_bolused > dq->dq_bolsoft) { c1 = '+'; if (dq->dq_ol_enforce && Now > dq->dq_ol_enforce) c1 = '*'; } if (dq->dq_btotused > dq->dq_btothard) { c2 = '!'; } else if (dq->dq_btotused > dq->dq_btotsoft) { c2 = '+'; if (dq->dq_tot_enforce && Now > dq->dq_tot_enforce) c2 = '*'; } } printf("Blocks %5s %5d %8lld%c%8lld %8lld " "%8lld%c%8lld %8lld", type == SAM_QUOTA_MAX ? " - " : quota_types[type], index, dq->dq_bolused/kfactor, c1, dq->dq_bolsoft/kfactor, dq->dq_bolhard/kfactor, dq->dq_btotused/kfactor, c2, dq->dq_btotsoft/kfactor, dq->dq_btothard/kfactor); printf("\nGrace period "); TimePrint(dq->dq_ol_grace); printf(" "); TimePrint(dq->dq_tot_grace); printf("\n"); if (index && dq->dq_ol_enforce) { if (dq->dq_ol_enforce > Now) { printf("---> Warning: online soft " "limits to be enforced in "); TimePrint(dq->dq_ol_enforce-Now); printf("\n"); } else { printf("---> Online soft limits " "under enforcement (since "); TimePrint(Now-dq->dq_ol_enforce); printf(" ago)\n"); } } if (index && dq->dq_tot_enforce) { if (dq->dq_tot_enforce > Now) { printf("---> Warning: total soft " "limits to be enforced in "); TimePrint(dq->dq_tot_enforce-Now); printf("\n"); } else { printf("---> Total soft limits under " "enforcement (since "); TimePrint(Now-dq->dq_tot_enforce); printf(" ago)\n"); } } if (!QUOTA_SANE(dq)) { printf("---> Quota values inconsistent; " "zero quotas in effect.\n"); } else if (index == 0 || QUOTA_INF(dq)) { printf("---> Infinite quotas in effect.\n"); } } else { char c1; printf("%s\n", arg); c1 = ' '; if (!QUOTA_SANE(dq)) { c1 = '!'; } else if (!QUOTA_INF(dq)) { if (dq->dq_folused > dq->dq_folhard) { c1 = '!'; } else if (dq->dq_folused > dq->dq_folsoft) { c1 = '+'; if (dq->dq_ol_enforce && Now > dq->dq_ol_enforce) c1 = '*'; } } printf("Files %5s %5d %8lld%c%8lld %8lld", type == SAM_QUOTA_MAX ? " - " : quota_types[type], index, dq->dq_folused, c1, dq->dq_folsoft, dq->dq_folhard); printf("\n"); c1 = ' '; if (!QUOTA_SANE(dq)) { c1 = '!'; } else if (!QUOTA_INF(dq)) { if (dq->dq_bolused > dq->dq_bolhard) { c1 = '!'; } else if (dq->dq_bolused > dq->dq_bolsoft) { c1 = '+'; if (dq->dq_ol_enforce && Now > dq->dq_ol_enforce) c1 = '*'; } } printf("Blocks %5s %5d %8lld%c%8lld %8lld", type == SAM_QUOTA_MAX ? " - " : quota_types[type], index, dq->dq_bolused/kfactor, c1, dq->dq_bolsoft/kfactor, dq->dq_bolhard/kfactor); printf("\nGrace period "); TimePrint(dq->dq_ol_grace); printf("\n"); if (index && dq->dq_ol_enforce) { if (dq->dq_ol_enforce > Now) { printf("---> Warning: online soft " "limits to be enforced in "); TimePrint(dq->dq_ol_enforce-Now); printf("\n"); } else { printf("---> Online soft limits " "under enforcement (since "); TimePrint(Now-dq->dq_ol_enforce); printf(" ago)\n"); } } if (!QUOTA_SANE(dq)) { printf("---> Quota values inconsistent; " "zero quotas in effect.\n"); } else if (index == 0 || QUOTA_INF(dq)) { printf("---> Infinite quotas in effect.\n"); } } } }
static void iSetupSt5197Porting() { CSHDI_Error_t ErrorCode = CSHDI_SUCCESS; CSSYSInfo stSysInfo; CSSYSAdvancedParamEx stAdvaceParamEX; CSOSGRect RegionSD; CSQAM_Error_t QamInitErrorCode; CSSPIPinIndex stSpiPinIndex= {0}; CSSYSMemoryRange memProfile[] = { {CSSYS_MEM_TYPE_SYSPART, (void*)SYSTEM_PARTITIOAN_START_ADDR, SYSTEM_PARTITIOAN_SIZE, },/* user heap */ {CSSYS_MEM_TYPE_NONCACHE, (void*)NCACHE_PARTITIOAN_START_ADDR, NCACHE_PARTITIOAN_SIZE, },/* non-cached */ {CSSYS_MEM_TYPE_OS, (void*)OS_PARTITIOAN_START_ADDR, OS_PARTITIOAN_SIZE, },/* os */ {CSSYS_MEM_TYPE_DRIVER, (void*)DRIVER_PARTITIOAN_START_ADDR, DRIVER_PARTITIOAN_SIZE, },/* driver */ {CSSYS_MEM_TYPE_AVMEM_USER, (void*)AVMEM_USER_START_ADDR, AVMEM_USER_SIZE, }, /* user osd avmem */ {CSSYS_MEM_TYPE_AVMEM, (void*)AVMEM_SYS_START_ADDR, AVMEM_SYS_SIZE, }, /* avmem sys */ } ; int nMemRangeCount = sizeof(memProfile)/sizeof(CSSYSMemoryRange); CSDebugSetDefaultLevel(DEBUG_LEVEL);//CSSetDebugLevel(0); /* 配内存 */ CSSYSSetCfg(CSCFG_MEM_PROFILE,0,(DWORD)&memProfile[0], nMemRangeCount); //chip boot if (!CSSYSChipBoot(0) ) { CSASSERT(0); //return; } /* 配置初始化时的制式 */ CSSYSSetCfg(CSCFG_SD_TIMING_MODE, 0, CSVID_TIMING_MODE_PAL, 0); memset(&stSysInfo, 0, sizeof(CSSYSInfo)); stSysInfo.OutputAUDInfo.OutputDevice=CSAUD_OUTPUT_RCA | CSAUD_OUTPUT_SPDIF ; stSysInfo.OuputTVInfo.OutputDevice = CSVID_OUTPUT_CVBS | CSVID_OUTPUT_YUV; memset(&stAdvaceParamEX, 0, sizeof(CSSYSAdvancedParamEx)); stAdvaceParamEX.m_stSysAdvancedParam.m_bDualOSDBuffer = HD_DISPLAY_SUPPORT; stAdvaceParamEX.m_stSysAdvancedParam.m_bSupportHDDecoder = HD_DECODER_SUPPORT; stAdvaceParamEX.m_stSysAdvancedParam.m_bSupportHDDecoder_H264 = HD_H264_SUPPORT; stAdvaceParamEX.m_stSysAdvancedParam.m_dwMemoryStartAddr = LMI_SYS_BASE; stAdvaceParamEX.m_stSysAdvancedParam.m_dwMemoryTotalSize = LMI_SYS_SIZE; stAdvaceParamEX.m_bPvrSupport = PVR_SUPPORT; stAdvaceParamEX.m_bPipSupport = PIP_SUPPORT; stAdvaceParamEX.m_ucPtiNumber = 3; /*init chip*/ if (0 == CSSYSChipInitEx(&stSysInfo, (HCSHANDLE)(&stAdvaceParamEX))) { CSASSERT(0); //return; } /*init osd*/ RegionSD.left = 0; RegionSD.top = 0; RegionSD.Width = 720; RegionSD.Height = 576; ErrorCode = CSOSGOpen(CSLAYER_GFX1, 0, &RegionSD, TRUE); CSASSERT(ErrorCode == CSHDI_SUCCESS); //GPIO init ,actually init in Plat,here for UT;Gary ErrorCode = CSGPIOInitialize(); CSASSERT(ErrorCode == CS_GPIO_SUCCESS); //SPIinit ErrorCode = CSSPIInitialize(SPI_0, stSpiPinIndex, CSSPI_SPEED_HIGHT); CSASSERT(ErrorCode == 0); //Initalize flash ErrorCode = CSFLSSetFLSCount(1); ErrorCode = CSFLSSetSpace( 0, 0, 0x400000); ErrorCode = CSFLSInitialize(0xff); CSASSERT(ErrorCode == CSHDI_SUCCESS); //I2C_0 ErrorCode = CSI2CInitialize(I2C_0, CSI2C_SPEED_NORMAL);//used for tuner CSASSERT(ErrorCode == CSI2C_SUCCESS); // tuner init //QamInitErrorCode = CSQAMSetDVBMCNSMode(0, DVBMCNS_DVB); //CSASSERT(QamInitErrorCode == CSQAM_SUCCESS); QamInitErrorCode =CSQAMInitializeEx(0, 0, 9*17, TS_PARALLEL,0xff); CSASSERT(QamInitErrorCode == CSQAM_SUCCESS); // IR init UI_IRInitialize(5*17); //USB Power Enable ErrorCode = CSGPIOOpen(33, CS_GPIO_OUPUT); CSASSERT(ErrorCode == CS_GPIO_SUCCESS); ErrorCode = CSGPIOWrite(33, 1); CSASSERT(ErrorCode == CS_GPIO_SUCCESS); ErrorCode = CSGPIOOpen(34, CS_GPIO_OUPUT); CSASSERT(ErrorCode == CS_GPIO_SUCCESS); ErrorCode = CSGPIOWrite(34, 1); CSASSERT(ErrorCode == CS_GPIO_SUCCESS); //USB PHY Reset ErrorCode = CSGPIOOpen(20, CS_GPIO_OUPUT); CSASSERT(ErrorCode == CS_GPIO_SUCCESS); ErrorCode = CSGPIOWrite(20, 0); CSASSERT(ErrorCode == CS_GPIO_SUCCESS); CSSleep(1000); ErrorCode = CSGPIOWrite(20, 1); CSASSERT(ErrorCode == CS_GPIO_SUCCESS); g_dwTimeStop = CSGetTickCount(); g_dwTimeCost = g_dwTimeStop - g_dwTimeStart; TimePrint(); //打印初始化时间 }