uc/os-iii学习笔记-OSTaskCreate

记了几篇笔记后发现,基本就是在抄书,而且由于本人绘图能力有限,也无法贴上图表去说明,可能导致后来的读者完全摸不清头脑,所以再次声明,本人只是在给自己做知识点笔记,相关图标和介绍请阅读书籍《嵌入式实时操作系统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之前已经创建的优先级最高的任务。
---------------------
作者:JosephGodVim
来源:CSDN
原文:https://blog.csdn.net/JosephGodVim/article/details/51895844
版权声明:本文为博主原创文章,转载请附上博文链接!

posted @ 2019-07-11 21:28  天涯海角路  阅读(550)  评论(0)    收藏  举报