原创 ucosii 建立一个新任务

2012-12-6 11:39 1196 28 28 分类: 消费电子

建立任务

/*****************************************************************************************

125 * 建立一个新任务(CREATE A TASK)

127 * 描述: 建立一个新任务。任务的建立可以在多任务环境启动之前,也可以在正在运行的任务中建立.中断处理程序中不能建立任务.一个任务必须为无限循环结构(如下所示),且不能有返回点。

129 * OSTaskCreate()是为与先前的μC/OS版本保持兼容,新增的特性在OSTaskCreateExt()函数中.

130 * 无论用户程序中是否产生中断,在初始化任务堆栈时,堆栈的结构必须与CPU中断后寄存器入栈的顺序结构相同.详细说明请参考所用处理器的手册。

133 * 参数: task 是指向任务代码的指针。

135 * pdata 指向一个数据结构,该结构用来在建立任务时向任务传递参数。下例中说明uC/OS中的任务结构以及如何传递参数pdata

137 * void Task (void *pdata)

138 * {

139 * ... // 对参数'pdata'进行操作

140 * for (;;) {

// 任务函数体.

143 * // 在任务体中必须调用如下函数之一:

144 * // OSMboxPend() 用于任务等待消息,消息通过中断或另外的任务发送给需要的任务

145 * // OSF1gPend() 用于任务等待事件标志中的事件标志

146 * // OSMutexPend() 任务需要独占资源

147 * // OSQPend() 用于任务等待消息

148 * // OSSemPend() 用于任务试图取得共享资源的使用权,任务需要与其它任务或中断

149 * 同步及任务需要等待特定事件的发生场合

150 * // OSTimeDly() 任务延时若干时钟节拍

151 * // OSTimeDlyHMSM() 任务延时若干时间

152 * // OSTaskSuspend() 挂起任务本身

153 * // OSTaskDel() 删除任务本身

154 * ...

156 * }

157 * ptos 为指向任务堆栈栈顶的指针。任务堆栈用来保存局部变量,函数参数,返回地址以及任务被中断时的CPU寄存器内容.任务堆栈的大小决定于任务的需要及预计的中断嵌套层数。计算堆栈的大小,需要知道任务的局部变量所占的空间,可能产生嵌套调用的函数,及中断嵌套所需空间。如果初始化常量OS_STK_GROWTH设为1,堆栈被设为从内存高地址向低地址增长,此时ptos应该指向任务堆栈空间的最高地址。反之,如果OS_STK_GROWTH设为0,堆栈将从内存的低地址向高地址增长。

164 * prio 为任务的优先级。每个任务必须有一个唯一的优先级作为标识。数字越小,优先级越高。

166 * 返回: OS_NO_ERR 函数调用成功;

167 * OS_PRIO_EXIT 具有该优先级的任务已经存在;

168 * OS_PRIO_INVALID 参数指定的优先级大于OS_LOWEST_PRIO; (i.e. >= OS_LOWEST_PRIO)

169 * OS_NO_MORE_TCB 系统中没有OS_TCB可以分配给任务了。

170 *

171 * 注意: 1、任务堆栈必须声明为OS_STK类型。

172 * 2、在任务中必须调用uC/OS提供的下述过程之一:延时等待、任务挂起、等待事件发生(等待信

173 * 号量,消息邮箱、消息队列),以使其他任务得到CPU

174 * 3、用户程序中不能使用优先级0123,以及OS_LOWEST_PRIO-3,OS_LOWEST_PRIO-2,

OS_LOWEST_PRIO-1, OS_LOWEST_PRIO。这些优先级μC/OS系统保留,其余的56个优先级提供给应用程序。

177 ***********************************************************************************/

181 INT8U OSTaskCreate (void (*task)(void *pd), void *pdata, OS_STK *ptos, INT8U prio)

OSTaskCreate (Task0,(void *)0, &Task0Stk[Task0StkLengh - 1], 10);

 

交流QQ群:74204669

文章评论0条评论)

登录后参与讨论
我要评论
0
28
关闭 站长推荐上一条 /2 下一条