UCOSII-OSInit( )注解

来源:互联网 发布:linux命令记录日志 编辑:程序博客网 时间:2024/06/02 02:51

主函数

void main (void){        OSInit();             //第一个OS内核运行函数    OSTaskCreateExt(.......); //在OSStart();前必须至少创建一个任务OSTaskCreateExt()/OSTaskCreate()    OSStart();            //启动操作系统}

函数在source\os_core.c里,原形如下:

void  OSInit (void){#if OS_TASK_CREATE_EXT_EN > 0u#if defined(OS_TLS_TBL_SIZE) && (OS_TLS_TBL_SIZE > 0u)    INT8U  err;#endif#endif    OSInitHookBegin(); /* 调用用户特定的初始化代码(通过一个接口函数实现用户要求的插件式进入系统中)*/    OS_InitMisc();     /* 初始化变量*/       OS_InitRdyList();  /* 初始化就绪列表*/       OS_InitTCBList();  /* 初始化OS_TCB空闲列表*/       OS_InitEventList();/* 初始化OS_EVENT空闲列表*/ #if (OS_FLAG_EN > 0u) && (OS_MAX_FLAGS > 0u)    OS_FlagInit();     /* 初始化事件标志结构*/       #endif#if (OS_MEM_EN > 0u) && (OS_MAX_MEM_PART > 0u)    OS_MemInit();      /* 初始化内存管理器*/       #endif#if (OS_Q_EN > 0u) && (OS_MAX_QS > 0u)    OS_QInit();        /* 初始化消息队列结构*/      #endif#if OS_TASK_CREATE_EXT_EN > 0u#if defined(OS_TLS_TBL_SIZE) && (OS_TLS_TBL_SIZE > 0u)    OS_TLS_Init(&err); /* 创建任务前初始化TLS*/          if (err != OS_ERR_NONE) {        return;    }#endif#endif    OS_InitTaskIdle(); /* 创建空闲任务(无条件) */#if OS_TASK_STAT_EN > 0u    OS_InitTaskStat(); /* 创建统计任务*/          #endif#if OS_TMR_EN > 0u    OSTmr_Init();      /* 初始化时间管理器*/             #endif    OSInitHookEnd();   /*调用用户特定的初始化代码*/#if OS_DEBUG_EN > 0u    OSDebugInit();#endif}  
原创粉丝点击