uC/OS-II 函数之OSInit()
2015-08-01 22:30
465 查看
获得更多资料欢迎进入我的网站或者 csdn或者博客园
OSInit()主要作用
在uC/OS II的学习中,OSInit(OS_CORE.C )(函数原型位于);是一个重要的函数,它在OS应用中的main()函数中首先被调用,是OS运行的第一个函数,它完成各初始变量的初始化。主要工作:完成下面的初始化;
OSInitHookBegin(); /* 调用用户特定的初始化代码(通过一个接口函数实现用户要求的插件式进入系统中)*/ OS_InitMisc(); /* 初始化变量*/ OS_InitRdyList(); /* 初始化就绪列表*/ OS_InitTCBList(); /* 初始化OS_TCB空闲列表*/ OS_InitEventList(); /* 初始化OS_EVENT空闲列表*/ OS_InitTaskIdle(); /*创建空闲任务*/
程序注释详解:
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(); /* 初始化变量*/ /* Initialize miscellaneous variables */ OS_InitRdyList(); /* 初始化就绪列表*/ /* Initialize the Ready List */ OS_InitTCBList(); /* 初始化OS_TCB空闲列表*/ /* Initialize the free list of OS_TCBs */ OS_InitEventList(); /* 初始化OS_EVENT空闲列表*/ /* Initialize the free list of OS_EVENTs */ #if (OS_FLAG_EN > 0u) && (OS_MAX_FLAGS > 0u) OS_FlagInit(); /* 初始化事件标志结构*/ /* Initialize the event flag structures */ #endif #if (OS_MEM_EN > 0u) && (OS_MAX_MEM_PART > 0u) OS_MemInit(); /* 初始化内存管理器*/ /* Initialize the memory manager */ #endif #if (OS_Q_EN > 0u) && (OS_MAX_QS > 0u) OS_QInit(); /* 初始化消息队列结构*/ /* Initialize the message queue structures */ #endif #if OS_TASK_CREATE_EXT_EN > 0u #if defined(OS_TLS_TBL_SIZE) && (OS_TLS_TBL_SIZE > 0u) OS_TLS_Init(&err); /* 创建任务前初始化TLS*/ /* Initialize TLS, before creating tasks */ if (err != OS_ERR_NONE) { return; } #endif #endif OS_InitTaskIdle(); /* 创建空闲任务(无条件)Create the Idle Task */ #if OS_TASK_STAT_EN > 0u OS_InitTaskStat(); /* 创建统计任务*/ /* Create the Statistic Task */ #endif #if OS_TMR_EN > 0u OSTmr_Init(); /* 初始化时间管理器*/ /* Initialize the Timer Manager */ #endif OSInitHookEnd(); /*调用用户特定的初始化代码*/ #if OS_DEBUG_EN > 0u OSDebugInit(); #endif }
相关文章推荐
- scala 学习笔记(01) 函数定义、分支、循环、异常处理、递归
- UML类图几种关系的总结(转)
- Android NDK之发送短信
- Pyhon2与Python3 ——urllib2
- [leedcode 155] Min Stack
- MyBatis知多少(25)动态SQL
- Letter Combinations of a Phone Number
- 手动安装fastboot驱动
- 转吧总结,一些零零碎碎的东西
- 几种开源工作流引擎的简单比较(转)
- java中volatitle关键字的作用
- Rails 极简入门笔记
- js map, reduce, forEach, filter的一般实现
- thinkpad T430s 在win8上安装ubuntu双系统(UEFI开启)
- 计数排序
- 领域驱动设计系列(转)
- losersaver硕士待遇杂谈
- nginx配置
- UVA_11552_FewestFlops
- uC/OS-II 函数之OSInit()