uCO/OS-ii OSInit( )注解

主函数

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
}  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值