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");  
  }
}




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值