uCOS之任务

本文详细介绍了uCOS操作系统中任务的组成部分,包括任务程序代码、任务堆栈和任务控制块。接着阐述了任务的五种状态:睡眠、就绪、运行、等待和中断服务,并展示了状态转换图。此外,还提及了用户任务的一般结构以及ucos的两个系统任务——空闲任务和统计任务,其中空闲任务是必需的。
摘要由CSDN通过智能技术生成

 一、任务的组成

一个任务由三个组成部分组成:任务程序代码、任务堆栈、任务控制块组成 

 

为了方便管理、ucos 把每一个任务看作一个节点,把它们链接成如图的任务链表:

 二、任务状态

嵌入式系统只有一个CPU,一个时刻只能有一个任务占据cpu,根据任务是否占据CPU,可以将任务划分成5种状态:

睡眠状态、就绪状态、运行状态、等待状态、中断服务状态

 任务在不同状态之间的转换图:

创建任务代码:

/*
*********************************************************************************************************
*                                            CREATE A TASK
*
* Description: This function is used to have uC/OS-II manage the execution of a task.  Tasks can either
*              be created prior to the start of multitasking or by a running task.  A task cannot be
*              created by an ISR.
*
* Arguments  : task     is a pointer to the task's code
*
*              p_arg    is a pointer to an optional data area which can be used to pass parameters to
*                       the task when the task first executes.  Where the task is concerned it thinks
*                       it was invoked and passed the argument 'p_arg' as follows:
*
*                           void Task (void *p_arg)
*                           {
*                               for (;;) {
*                                   Task code;
*                               }
*                           }
*
*              ptos     is a pointer to the task's top of stack.  If the configuration constant
*                       OS_STK_GROWTH is set to 1, the stack is assumed to grow downward (i.e. from high
*                       memory to low memory).  'pstk' will thus point to the highest (valid) memory
*                       location of the stack.  If OS_STK_GROWTH is set to 0, 'pstk' will point to the
*                       lowest memor
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值