uC/OS-II中TaskStart()函数
void main (void){
OSInit(); /* 初始化uC/OS-II(1)*/
/* 安装uC/OS-II的任务切换向量*/
/* 创建用户起始任务(为了方便讨论,这里以TaskStart()作为起始任务)(2)*/
OSStart(); /* 开始多任务调度(3)*/
}
void TaskStart (void *pdata)
{
/* 安装并启动uC/OS-II的时钟节拍(4)*/
OSStatInit(); /* 初始化统计任务(5)*/
/* 创建用户应用程序任务*/
for (;;) {
/* 这里是TaskStart()的代码!*/
}
}
TaskStart()负责初始化和启动时钟节拍[图 F3.4(5)]。在这里启动时钟节拍是必要的,因
为用户不会希望在多任务还没有开始时就接收到时钟节拍中断。
不理解上面这句话,既然“不会希望在多任务还没有开始时就接收到时钟节拍中断”,那干吗要在多任务启动前“安装并启动uC/OS-II的时钟节拍”呢? 调用了taskStart的时候已经启动了多任务,强调的是不能在主程序里面启动和其他的任务里面启动
页:
[1]