一,任务状态:
多任务操作系统最重要的就是对任务进行管理,包括任务的创建,挂起,删除和调度。UCOSII只支持单核cpu,因此在某一时刻只有一个任务获得cpu使用权,其他任务就会进入其他状态。

二,UCOSII系统任务管理
1,任务创建:OSTaskCreate()函数,参数如下
参数1:任务的函数名:其实就是为了在任务切换的时候跳转到任务中执行的入口地址。
参数2:传递给建立任务的参数,这个参数基本不会用到。
参数3:传递给建立任务的堆栈,每个任务都有独一无二的堆栈。
参数4:传递给任务的优先级。
当OS_TASK_CREATE_EN宏大于0的时候,可以创建任务;如果创建的时候检测到任务的优先级比最大的优先级(数值上,实际上是最小)还大的话,那么就直接退出,输出一个错误码。
#if OS_TASK_CREATE_EN > 0u
INT8U OSTaskCreate (void (*task)(void *p_arg),
void *p_arg,
OS_STK *ptos,
INT8U prio)
{
OS_STK *psp;
INT8U err;
#if OS_CRITICAL_METHOD == 3u /*
本文详细介绍了UCOSII操作系统中任务管理的各个方面,包括任务创建、任务堆栈、挂起与恢复任务、任务调度及切换,以及事件控制。任务调度遵循优先级原则,时间片轮转用于相同优先级任务。事件控制块用于任务间的通信,如消息邮箱和消息队列。当任务接收到事件时,会通过OS_EventTaskRdy()进入就绪态。
订阅专栏 解锁全文
1208

被折叠的 条评论
为什么被折叠?



