[求助] FreeRTOS消息队列等待问题

newphj   2016-9-15 19:34 楼主
xStatus_CAN= xQueueReceive( xQueue_CAN, &CAN_QUEUE_RECEIVE, portMAX_DELAY);
一个任务中等待消息队列数据,使用阻塞等待没有超时限制,这个任务会不会挂起让其他的任务运行???

回复评论 (2)

应该会挂起,然后做一次任务切换
点赞  2016-9-16 21:46
我的理解的是完全不会挂起其他的任务的,不管它的优先级高低,系统的时间轮片转到这个任务时就发现需要信号,如果没有就跳到下一个任务了,这个函数的第三个参数中的时间是当前任务的阻塞时间,也就是说时间轮片转到这个任务时发现这个任务的阻塞时间已经超过了当前设定的阻塞时间那么就会直接返回一个超时信息,然后就可以直接向下运行了,一般都是阻塞最大时间的,如果阻塞时间不是最大值会有一大堆问题要解决。
QQ:252669569
点赞  2016-9-18 14:44
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复