2、其他任务建立:
static void App_TaskCreate(void)
{
//CPU_INT08U os_err;
//Com1_SEM=OSSemCreate(1); //建立串口1中断的信号量
Com1_MBOX=OSMboxCreate((void *) 0); //建立串口1中断的消息邮箱
//串口1接收及发送任务---------------------------------------------------------
OSTaskCreateExt(Task_Com1, //指向任务代码的指针
(void *)0, //任务开始执行时,传递给任务的参数的指针
(OS_STK *)&Task_Com1Stk[Task_Com1_STK_SIZE-1],//分配给任务的堆栈的栈顶指针 从顶向下递减
Task_Com1_PRIO, //分配给任务的优先级
Task_Com1_PRIO, //预备给以后版本的特殊标识符,在现行版本同任务优先级
(OS_STK *)&Task_Com1Stk[0], //指向任务堆栈栈底的指针,用于堆栈的检验
Task_Com1_STK_SIZE, //指定堆栈的容量,用于堆栈的检验
(void *)0, //指向用户附加的数据域的指针,用来扩展任务的任务控制块
OS_TASK_OPT_STK_CHK|OS_TASK_OPT_STK_CLR); //选项,指定是否允许堆栈检验,是否将堆栈清0,任务是否要进行浮点运算等等。
//LED1 闪烁任务------------------------------------------------------
OSTaskCreateExt(Task_Led1,(void *)0,(OS_STK *)&Task_Led1Stk[Task_Led1_STK_SIZE-1],Task_Led1_PRIO,Task_Led1_PRIO,(OS_STK *)&Task_Led1Stk[0],
Task_Led1_STK_SIZE,
(void *)0,
OS_TASK_OPT_STK_CHK|OS_TASK_OPT_STK_CLR);
//LED2 闪烁任务------------------------------------------------------
OSTaskCreateExt(Task_Led2,(void *)0,(OS_STK *)&Task_Led2Stk[Task_Led2_STK_SIZE-1],Task_Led2_PRIO,Task_Led2_PRIO,(OS_STK *)&Task_Led2Stk[0],
Task_Led2_STK_SIZE,
(void *)0,
OS_TASK_OPT_STK_CHK|OS_TASK_OPT_STK_CLR);
//LED3 闪烁任务------------------------------------------------------
OSTaskCreateExt(Task_Led3,(void *)0,(OS_STK *)&Task_Led3Stk[Task_Led3_STK_SIZE-1],Task_Led3_PRIO,Task_Led3_PRIO,(OS_STK *)&Task_Led3Stk[0],
Task_Led3_STK_SIZE,
(void *)0,
OS_TASK_OPT_STK_CHK|OS_TASK_OPT_STK_CLR);
}
|