OpenEdv-开源电子网

 找回密码
 立即注册

扫一扫,访问微社区

正点原子新作:阿波罗STM32F767&F429&探索者STM32F4开发板&赶快来下载资料哦。

查看: 201|回复: 5
打印 上一主题 下一主题

freertos任务调度有疑问,求助

[复制链接]

  离线 

2

主题

3

帖子

0

精华

新手入门

积分
18
金钱
18
注册时间
2018-5-14
在线时间
1 小时
跳转到指定楼层
楼主
发表于 2018-5-16 12:16:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1金钱
int main(void)
{
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);//éèÖÃÏμí3ÖD¶ÏóÅÏ輶·Ö×é4                  
        delay_init();                                            //Ñóê±oˉêy3õê¼»ˉ          
        uart_init(115200);                                        //3õê¼»ˉ′®¿ú
        LED_Init();                                                          //3õê¼»ˉLED
       
         
        //′′½¨èy¸öèÎÎñ
    xTaskCreate((TaskFunction_t )start_task1,            //èÎÎñoˉêy
                (const char*    )"start_task1",          //èÎÎñÃû3Æ
                (uint16_t       )TASK1_SIZE,        //èÎÎñ¶ÑÕ»′óD¡
                (void*          )NULL,                  //′«μY¸øèÎÎñoˉêyμÄ2Îêy
                (UBaseType_t    )TASK1_PRIO,       //èÎÎñóÅÏ輶
                (TaskHandle_t*  )&TASK1_Handler);   //èÎÎñ¾ä±ú  
    xTaskCreate((TaskFunction_t )start_task2,            //èÎÎñoˉêy
                (const char*    )"start_task2",          //èÎÎñÃû3Æ
                (uint16_t       )TASK2_SIZE,        //èÎÎñ¶ÑÕ»′óD¡
                (void*          )NULL,                  //′«μY¸øèÎÎñoˉêyμÄ2Îêy
                (UBaseType_t    )TASK2_PRIO,       //èÎÎñóÅÏ輶
                (TaskHandle_t*  )&TASK2_Handler);   //èÎÎñ¾ä±ú        
    xTaskCreate((TaskFunction_t )start_task3,            //èÎÎñoˉêy
                (const char*    )"start_task3",          //èÎÎñÃû3Æ
                (uint16_t       )TASK3_SIZE,        //èÎÎñ¶ÑÕ»′óD¡
                (void*          )NULL,                  //′«μY¸øèÎÎñoˉêyμÄ2Îêy
                (UBaseType_t    )TASK3_PRIO,       //èÎÎñóÅÏ輶
                (TaskHandle_t*  )&TASK3_Handler);   //èÎÎñ¾ä±ú                                                                
    vTaskStartScheduler();          //¿aÆôèÎÎñμ÷¶è
}
请问,开启任务调度器后, vTaskStartScheduler(); ,难道在这三个任务中,不应该是按任务优先级顺序,依次执行吗?
为什么事实不是这样?


回复

使用道具 举报

  离线 

65

主题

6451

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
12867
金钱
12867
注册时间
2013-11-13
在线时间
1451 小时
2#
发表于 2018-5-16 15:50:15 | 只看该作者
肯定是按照优先级顺序执行的!
回复

使用道具 举报

  离线 

0

主题

3

帖子

0

精华

新手入门

积分
15
金钱
15
注册时间
2018-5-17
在线时间
0 小时
3#
发表于 2018-5-18 11:16:31 | 只看该作者
若TASK1_PRIO,TASK2_PRIO,TASK3_PRIO均不同,那么会按照优先级高低顺序执行,并不一定是任务1,2,3的顺序执行,若3个任务优先级相同,会按照1,2,3(或者3,2,1,忘记了,看看源码就知道了)的顺序执行
回复

使用道具 举报

  离线 

4

主题

34

帖子

0

精华

初级会员

Rank: 2

积分
136
金钱
136
注册时间
2015-12-16
在线时间
26 小时
4#
发表于 2018-5-18 11:23:36 | 只看该作者
你给出的信息不足以分析问题
回复

使用道具 举报

  离线 

4

主题

34

帖子

0

精华

初级会员

Rank: 2

积分
136
金钱
136
注册时间
2015-12-16
在线时间
26 小时
5#
发表于 2018-5-18 11:24:47 | 只看该作者
正点原子公众号
建议你把直接把main源码全部贴出了,这样应该可以看出代码实际运行的现象
回复

使用道具 举报

  离线 

3

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
68
金钱
68
注册时间
2018-5-19
在线时间
10 小时
6#
发表于 2018-5-19 02:35:54 | 只看该作者
看你设置的任务优先级了,优先级高的先被执行
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则




QQ|联系我们|手机版|官方淘宝店|新浪微博|微信公众平台|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2018-6-22 13:35

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表
/* */