UCOS II两个任务的模板

芯片lm3s9b92





#include<includes.h>
#include "utils/uartstdio.h"
  /*  Application tasks  优先级         */


#define  TASK2_PRIO        11
#define  task2stcksize     1024


static  OS_STK       App_TaskStartStk[APP_CFG_TASK_START_STK_SIZE]; //1任务堆栈app_cfg.h size 256
OS_STK task2_stack[task2stcksize];


static  void  App_TaskStart   (void *p_arg); //声明第一个任务
void Task2(void *pdata);                            //声明第二个任务


int main (void)
{
BSP_PreInit ();   //初始化时钟,串口115200,LED和按键


BSP_IntDisAll();   //禁止全部中断


OSInit();                                                   /* 2Initialize "uC/OS-II, The Real-Time Kernel"          */


    OSTaskCreateExt((void (*)(void *)) App_TaskStart,           /* 3Create the start task                                */
               (void           *) 0,
               (OS_STK         *)&App_TaskStartStk[APP_CFG_TASK_START_STK_SIZE - 1],
               (INT8U           ) APP_CFG_TASK_START_PRIO,   //2U
               (INT16U          ) APP_CFG_TASK_START_PRIO,
               (OS_STK         *)&App_TaskStartStk[0],
               (INT32U          ) APP_CFG_TASK_START_STK_SIZE,
               (void           *) 0,
               (INT16U          )(OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR));


OSStart();  //4 os start
}



static  void  App_TaskStart (void *p_arg)
{
(void)p_arg;

    BSP_PostInit();                                             /* I初始化板上资源                           */

Tmr_TickInit ();    /*初始化ucosii时钟                             */


#if (OS_TASK_STAT_EN > 0)
    OSStatInit();                                               /* 启动统计任务                               */
#endif
  OSTaskCreateExt(Task2,
                  (void *) 0,                              /* Arguments passed to TaskStart() */
                  (void *)&task2_stack[task2stcksize-1],              /* Set Top-Of-Stack  */
                  (INT8U  )TASK2_PRIO,                                                   /* Lowest priority level */
                  (INT16U )TASK2_PRIO,                                                   /* Task ID,no use */
                  (OS_STK *)&task2_stack[0],                                    /* Set Bottom-Of-Stack */
                  task2stcksize,
                  (void *)0,                                           /* No TCB extension */
                  OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR);          /* Enable stack checking and clear stack */
for(;;)
{
OSTimeDlyHMSM(0, 0, 2, 0);                          /*  delay 2 s                  */  
UARTprintf("\033[2JI am task1\n");
}  
 
}




void Task2(void *pdata)
{
  for(;;)
  {
OSTimeDlyHMSM(0, 0, 3, 0);                          /*  delay 2 s                  */  
UARTprintf("\033[2JI am task2\n");  
  }
}




你可能感兴趣的:(ucosii)