1、初始化UCOSII
(1)在调用UCOSII在任何的其他的服务之前,UCOSII要求首先调用初始化函数OSInit();这个函数的目的就是在整个系统启动之前,初始化所有的变量和数据结构。
(2)其中,在OSInit()函数中建立空闲任务OS_TaskIdle();
这个任务总是处于就绪态的,空闲任务的优先级是设置为最低的。
(3)调用OSInit以后
任务控制块 缓冲池中有OS_MAX_TASKS个任务控制块
事件控制 缓冲区中有OS_MAX_EVENTS个事件控制块
消息队列 缓冲池OS_Q中有OS_MAX_QS个消息队列控制块等等。
UCOSII的启动过程
(1)这是我们使用的一个移植到VS2013成功的UCOSII的代码工程。
里面有我们需要了解的启动UCOSII的全部的过程。
(2)刚刚说明的是OSInit()系统的初始化程序,就是为了初始化UCOSII启动过程的全部变量和一些内存池。
(3)通过调用OSTaskCreate()创建至少一个任务。
程序的指针SP,会跳出main.c的函数,如果不创建一个任务的话,程序的指针就会跑飞。
(4)OSStart()函数就是为了进行任务调度的,因为我们很快就会跳出main.c的函数,不会再跳进来,所以我们需要进行内部的指针跳出。