|
在STM32开发板上移植FreeRTOS,led1与led2同一个优先级并排跑没问题,但在task1任务代码中创建任务task2出错,跑三次后就task2创建不了任务了,进不了task2任务代码中,也就是只有LED1亮,LED2不亮,求助!
如仿真中,前三次功能没问题,灯交替闪烁,但从第三次开始直接跳回实红线所指代码处,而不再进入虚红线所指代码处了,请问这是怎么回事
- #include "includes.h"
- #include "sys.h"
- #include "delay.h"
- #include "usart.h"
- #include "freertos.h"
- #include "task.h"
- #include "queue.h"
- #include "led.h"
- static void led1_task(void *pdata);
- static void led2_task(void *pdata);
- int main(void)
- {
- delay_init(); //ÑÓʱ³õʼ»¯
- NVIC_Configuration(); //ÉèÖÃNVICÖжϷÖ×é2:2λÇÀÕ¼ÓÅÏȼ¶£¬2λÏìÓ¦ÓÅÏȼ¶
- LED_Init(); //³õʼ»¯ÓëLEDÁ¬½ÓµÄÓ²¼þ½Ó¿Ú
-
- xTaskCreate( led1_task, "LED1", 1000, NULL, 1, NULL );
-
- /* Start the scheduler. */
- vTaskStartScheduler();
- for(;;);
-
- }
- //LED1ÈÎÎñ
- static void led1_task(void *pdata)
- {
- for(;;)
- { xTaskHandle xLED2Handle;
- LED0=0;
- delay_ms(80);
- LED0=1;
- delay_ms(920);
- xTaskCreate( led2_task, "LED2", 1000, NULL, 2, &xLED2Handle );
- };
- }
- //LED2ÈÎÎñ
- static void led2_task(void *pdata)
- {
- for(;;)
- { xTaskHandle xLED2Handle;
- LED1=0;
- delay_ms(80);
- LED1=1;
- delay_ms(900);
- vTaskDelete(xLED2Handle);
- };
- }
复制代码 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|