操作系统初始化函数OS_INIT是操作系统在开始运行的最初,对全局变量、任务控制块、就绪表、事件及消息队列等重要数据结构进行的初始化操作,并创建空闲任务、统计任务等系统任务。该函数必须在创建用户对象及调用OSStart()启动实时任务调度之前运行。
操作系统初始化函数见表2.15
OS_InitMisc实现对操作系统一些混杂的全局变量的初始化
OS_InitRdyList对就绪表进行初始化的工作
OS_InitTCBList 控制块链表初始化
OS_InitTaskIdle创建操作系统空闲任务
TCBList初始化
μC/OS-II将任务控制块分成两个链表来管理,这就是空闲任务链表和就绪任务链表。其中,空闲任务链表包含了所有空闲的任务控制块。所谓空闲任务控制块,是指未分配给某个任务的任务控制块。创建一个新任务,前提条件就是系统里还有这样的空闲任务块。就绪链表则是将所有的就绪任务拴在一起,如果有新的任务就绪,就要将其任务控制块从空闲链表中取出,加入到就绪链表中。
注:
创建任务之后,空闲链表和就绪链表修改的代码如下:
位置在OSTaskCreate中调用OS_TCBInit函数。
具体代码: