原创 ucosii 建立一个新任务

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

建立任务

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

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条评论)

登录后参与讨论
相关推荐阅读
1luotonggui_456096236 2012-12-21 16:34
如何自动检测串行通讯中的波特率
最近有个项目上要用到自动检测串行通讯中的波特率,关于这方面的资料好像比较的少,广州周立功单片机发展有限公司有一文章是介绍这个的。我想的方法比较的简单,能实现,但是不是很理想,具体做法是,由于我上位...
1luotonggui_456096236 2012-12-06 11:51
将win7电脑无线网变身WiFi热点,让手机、笔记本共享上网
将win7电脑无线网变身WiFi热点,让手机、笔记本共享上网 将win7电脑变身WiFi热点,让手机、笔记本共享上网 用win7建立无线局域网,可以共享上网可以局域网游戏。 开启windows 7的...
1luotonggui_456096236 2012-12-06 11:34
视频压缩编解码标准综述
摘要:本文从目前视频流传输中最为重要的编解码标准国际电联的H.261、H.263,运动静止图像专家组的M-JPEG,国际标准化组织运动图像专家组的MPEG系列标准,以及在互联网上被广泛应用的Real ...
1luotonggui_456096236 2012-12-06 11:28
视频格式
    ASF   ASF 是 Advanced Streaming format 的缩写,由字面(高级流格式)意思就应该看出这个格式的用处了吧。说穿了 ASF 就是 MICROSOFT 为了和现在的...
1luotonggui_456096236 2012-12-06 11:18
图像和图形知识
1.有关色彩的基本常识   我们知道,只要是彩色都可用亮度、色调和饱和度来描述,人眼中看到的任一彩色光都是这三个特征的综合效果。那么亮度、色调和饱和度分别指的是什么呢?  ★ 亮度:是光作用于人眼时所...
广告
我要评论
0
11
1
2
3
4
5
6
7
8
9
0
广告
关闭 热点推荐上一条 /3 下一条