Liuyk_0321 发表于 2009-11-4 11:29:59

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的时钟节拍”呢?

hushaoxin 发表于 2009-11-4 11:46:01

调用了taskStart的时候已经启动了多任务,强调的是不能在主程序里面启动和其他的任务里面启动
页: [1]
查看完整版本: uC/OS-II中TaskStart()函数