dvb_appinit.c

来自「DVB软件,基于CT216软件的开发源程序.」· C语言 代码 · 共 91 行

C
91
字号
/*
 * dvb_appinit.c
 *
 * Copyright (C) 2005 Cheertek Inc, K300 all right reserved.
 *
 * Nov 28, 2005 file created by K300 (Mark Lu).
 *
 * DVB Application Initialized Function (for Nucleus).
 */

#include "ct_type.h"
#include "ct_os.h"
#include "ct_uart.h"
#include "task_cfg.h"
#include "ct_config.h"

/************************************************************************
 * Module global.
 ************************************************************************/
#ifdef CTOS_NUCLEUS
extern void main(u32 u32Argc, void* pArgv);
#endif

#ifdef CTOS_ECOS
extern void maintask(u32 u32Argc, void* pArgv);
#endif
/************************************************************************
 * Module local.
 ************************************************************************/
static bool8 b8DvbAppInit = FALSE;
static bool8 DVB_AppInit(void);

static u8			au8MainStack[MAIN_TASK_STACK_SIZE];
static CTOS_TASK 	Main_Task;

/************************************************************************
 * Nucleus's application entry function.
 ************************************************************************/
void Application_Initialize(void *first_available_memory)
{
	
	DVB_AppInit();

} /* end Application_Initialize */

/************************************************************************
 * DVB API initialised function.
 ************************************************************************/

static bool8 DVB_AppInit(void)
{
	EN_CTOS_STATUS	enStatus;

	if (b8DvbAppInit == TRUE)
	{
		return (TRUE);
	}
	
	if (EN_CTOS_SUCCESS != CT_OS_Initial(CTOS_DRAM_SIZE))
	{
		return (FALSE);
	}

#ifdef CTOS_NUCLEUS
	enStatus = CT_OS_CreateTask(&Main_Task, "DVBMAIN", main, &au8MainStack[0], MAIN_TASK_STACK_SIZE, MAIN_TASK_PRIORITY, MAIN_TASK_SLICE);
#endif
#ifdef CTOS_ECOS
	enStatus = CT_OS_CreateTask(&Main_Task, "DVBMAIN", maintask, &au8MainStack[0], MAIN_TASK_STACK_SIZE, MAIN_TASK_PRIORITY, MAIN_TASK_SLICE);
#endif
    if (enStatus != EN_CTOS_SUCCESS)
    {
		return (FALSE);
    }
    
	if (EN_CTOS_SUCCESS != CT_OS_ResumeTask(&Main_Task))
	{
		return (FALSE);
	}

	b8DvbAppInit = TRUE;

    return (TRUE);
	
} /* end DVB_TestAppInit */


void DVB_MainTask_Change_Priority(EN_CTOS_TASK_PRIORITY enPriority)
{
	CT_OS_Change_Priority(&Main_Task,enPriority);
}

⌨️ 快捷键说明

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