美文网首页
UCOS-III 任务相关API函数调用

UCOS-III 任务相关API函数调用

作者: 老田2314 | 来源:发表于2017-03-19 20:14 被阅读0次

    任务创建和删除函数

    OSTaskCreate()函数

    //任务优先级

    #define START_TASK_PRIO 3

    //任务堆栈大小

    #define START_STK_SIZE 128

    //任务控制块

    OS_TCB StartTaskTCB;

    //任务堆栈

    CPU_STK START_TASK_STK[START_STK_SIZE];

    //任务函数

    void start_task(void *p_arg);

    使用例子

    OSTaskCreate((OS_TCB * )&StartTaskTCB, //任务控制块

    (CPU_CHAR * )"start task", //任务名字

    (OS_TASK_PTR )start_task, //任务函数

    (void * )0, //传递给任务函数的参数

    (OS_PRIO   )START_TASK_PRIO,    //任务优先级

    (CPU_STK  * )&START_TASK_STK[0], //任务堆栈基地址

    (CPU_STK_SIZE)START_STK_SIZE/10, //任务堆栈深度限位

    (CPU_STK_SIZE)START_STK_SIZE, //任务堆栈大小

    (OS_MSG_QTY  )0, //任务内部消息队列能够接收的最大消息数目,为0时禁止接收消息

    (OS_TICK   )0, //当使能时间片轮转时的时间片长度,为0时为默认长度,

    (void  * )0, //用户补充的存储区

    (OS_OPT      )OS_OPT_TASK_STK_CHK|OS_OPT_TASK_STK_CLR, //任务选项

    (OS_ERR * )&err); //存放该函数错误时的返回值

    OSTaskDel((OS_TCB*)&Task2_task,&err);//删除任务


    任务挂起和恢复实验

    挂起任务2

    OSTaskSuspend((OS_TCB*)&Task2_TaskTCB,&err);

    恢复任务2

    OSTaskResume((OS_TCB*)&Task2_TaskTCB,&err);

    注意:挂起不是删除


    时间片轮转调度

    设置任务的优先级一致 时间片的长度为一个5ms 默认为0 在使用时间片轮转时需要调整数值

    相关文章

      网友评论

          本文标题:UCOS-III 任务相关API函数调用

          本文链接:https://www.haomeiwen.com/subject/nhdvnttx.html