在STM32跑的ucos2程序编译过了,但是指示灯就是不亮

2019-07-14 23:51发布

把ucos一直到Stmcu2上,验证一个多任务的流水灯程序,但是指示灯就是不亮
UCOS的内核是在官网下载对应的
求解释


  1. int main(void)

  2. {

  3. #if (OS_TASK_NAME_EN > 0)

  4.     CPU_INT08U  err;

  5. #endif





  6.     BSP_IntDisAll();                                            /* Disable all interrupts.                              */



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



  8.     OSTaskCreateExt((void (*)(void *)) AppTaskStart,           /* Create the start task                                */

  9.                     (void           *) 0,

  10.                     (OS_STK         *)&AppTaskStartStk[APP_CFG_TASK_START_STK_SIZE - 1],

  11.                     (INT8U           ) APP_CFG_TASK_START_PRIO,

  12.                     (INT16U          ) APP_CFG_TASK_START_PRIO,

  13.                     (OS_STK         *)&AppTaskStartStk[0],

  14.                     (INT32U          ) APP_CFG_TASK_START_STK_SIZE,

  15.                     (void           *) 0,

  16.                     (INT16U          )(OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR));



  17. #if (OS_TASK_NAME_EN > 0)

  18.     OSTaskNameSet(APP_CFG_TASK_START_PRIO, "Start", &err);

  19. #endif



  20.     OSStart();                                                  /* Start multitasking (i.e. give control to uC/OS-II)   */



  21.     return (1);

  22. }







  23. static  void  AppTaskStart (void *p_arg)

  24. {

  25.     CPU_INT32U  cpu_clk_freq;

  26.     CPU_INT32U  cnts;





  27.    (void)p_arg;



  28.     BSP_Init();                                                 /* Initialize BSP functions                             */

  29.     CPU_Init();                                                 /* Initialize the uC/CPU services                       */



  30.     cpu_clk_freq = BSP_CPU_ClkFreq();                           /* Determine SysTick reference freq.                    */

  31.     cnts         = cpu_clk_freq                                 /* Determine nbr SysTick increments                     */

  32.                  / (CPU_INT32U)OS_TICKS_PER_SEC;



  33.     OS_CPU_SysTickInit(cnts);                                   /* Init uC/OS periodic time src (SysTick).              */



  34.     Mem_Init();                                                 /* Initialize memory managment module                   */

  35.     Math_Init();                                                /* Initialize mathematical module                       */





  36. #if (OS_TASK_STAT_EN > 0)

  37.     OSStatInit();                                               /* Determine CPU capacity                               */

  38. #endif



  39.     APP_TRACE_DBG((" "));

  40.     APP_TRACE_INFO(("Creating Application Events... "));

  41.     AppEventCreate();                                          /* Create Application Events                            */



  42.     APP_TRACE_INFO(("Creating Application Tasks... "));

  43.     AppTaskCreate();                                           /* Create application tasks                             */







  44.         OSTaskCreate( Task0,                                                                                //任务1

  45.                           (void          * ) 0,                                                        //不带参数

  46.                           (OS_STK        * )&Task0Stk[128 - 1],                        //堆栈指针

  47.                           (INT8U           ) 5                                                        //优先级

  48.                          );

  49.         

  50.         OSTaskCreate( Task1,                                                                                //任务2

  51.                           (void          * ) 0,                                                        //不带参数

  52.                           (OS_STK        * )&Task1Stk[128 - 1],                                            

  53.                            (INT8U           ) 6                                                        //优先级

  54.                          );





  55.         for(;;)

  56.         {



  57.                 BSP_LED_On(2);

  58.         OSTimeDlyHMSM(0, 0, 0, 500);                            /* Delay for 100 milliseconds                           */

  59.         

  60.                 BSP_LED_Off(2);

  61.         OSTimeDlyHMSM(0, 0, 0, 500);                            /* Delay for 100 milliseconds                           */



  62.         }







  63. }



  64. void Task0(void *p_arg)

  65. {

  66.         for(;;)

  67.         {



  68.                 BSP_LED_On(3);

  69.         OSTimeDlyHMSM(0, 0, 0, 100);                            /* Delay for 100 milliseconds                           */



  70.                 BSP_LED_Off(3);

  71.         OSTimeDlyHMSM(0, 0, 0, 100);                            /* Delay for 100 milliseconds                           */



  72.         }

  73. }



  74. void Task1(void *p_arg)

  75. {

  76.         for(;;)

  77.         {



  78.                 BSP_LED_On(4);

  79.         OSTimeDlyHMSM(0, 0, 0, 200);                            /* Delay for 100 milliseconds                           */



  80.                 BSP_LED_Off(4);

  81.         OSTimeDlyHMSM(0, 0, 0, 200);                            /* Delay for 100 milliseconds                           */



  82.         }

  83. }
复制代码请大侠指点哈,看看是什么问题

0条回答

一周热门 更多>