您的位置:首页 > 其它

uc/os-iii学习笔记-OSTaskCreate

2016-07-13 10:43 246 查看
记了几篇笔记后发现,基本就是在抄书,而且由于本人绘图能力有限,也无法贴上图表去说明,可能导致后来的读者完全摸不清头脑,所以再次声明,本人只是在给自己做知识点笔记,相关图标和介绍请阅读书籍《嵌入式实时操作系统us/os-iii》

必须为该任务分配一个任务控制块(OS_TCB)。

static OS_TCB    AppTaskStartTCB


每个任务都必须有属于自己的栈(CPU_STK)。

static CPU_STK    AppTackStartStk[APP_TASK_START_STK_SIZE]


举例

void main(void)
{
OS_ERR err;
BSP_InitDisALL();//首先调用BSP函数关闭所有中断
OSInit(&err);//调用OSInit函数初始化UCOS-III,函数会建立至少2个任务:空闲任务和时钟节拍任务。空                                                            闲任务是在其他任务都不就绪的时候运行,一般为变量的++,时钟节拍任务负责时间管理。必须在调用其他任何UCOS-III函数前调用OSInit();
void  OSTaskCreate (OS_TCB        *p_tcb,//任务控制块地址
CPU_CHAR      *p_name,//任务的名字
OS_TASK_PTR    p_task,//任务代码起始地址
void          *p_arg,//第一次运行收到的参数
OS_PRIO        prio,//任务优先级
CPU_STK       *p_stk_base,//栈空间的基址
CPU_STK_SIZE   stk_limit,//任务栈深度标记,任务可用的栈空间深度
CPU_STK_SIZE   stk_size,//栈空间大小
OS_MSG_QTY     q_size,//
OS_TICK        time_quanta,
void          *p_ext,
OS_OPT         opt,
OS_ERR        *p_err)
}
OSStart(&err);//开始多任务系统的管理,ucos-iii会首先运行在调用OSStart之前已经创建的优先级最高的任务。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  os