uCOS-III笔记之任务创建

来源:互联网 发布:mac复制文件到u盘 编辑:程序博客网 时间:2024/05/17 06:57

        一直在用但并没用深入的去了解,就好像你有一个网友平时经常聊条,但是彼此不了解各自的内心世界,这是一种尴尬只是一种不负责任。再加上感觉自己要老了大哭记性也大不如以前了,好记性不如烂笔头,还是写下来吧,以后不懂了疑问不用问别人问问自己就锚索顿开了惊讶

       剩下的时日不多了可怜,赶紧搞起来吧。OSTaskCreate()  嗨man,知道干嘛的吧。

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)                               //返回错误类型

  参数解释, *p_tcb  任务控制块指针,看名字很高大上很难直白的理解。  OS_TCB  就是一个结构体 struct os_tcb {};可以查看内核源码,这个结构体主要记录了与任务相关的信息数据  如结构体首地址存放了  CPU_STK  *StkPtr; 当前栈顶指针。拿stm32f103来讲这个结构体就是一个内存空间在IRAM1指示的地址空间里,定义的位置不一样会影响运行时的内存地址也就是影响栈顶指针。我们要写的函数就是第三个参数就是任务,烧写程序后任务就放在IROM1的地址空间里。




原创粉丝点击