求助:freertos 消息队列发送如何不引起任务调度

2019-12-10 18:25发布

打脸了 ,本来打字主意搞非实业的,结果还是有个小项目要做。

遇到的问题是,我想A任务发消息给B任务,但不引导任务切换。原来用ucos没有遇到这个问题(里面有这个参数可以决定是否任务切换)。但在freertos好像不行,如果B任务优先级比A高,就一定要切换。
求指点:
消息发送函数为:xQueueGenericSend( QueueHandle_t xQueue, const void * const pvItemToQueue, TickType_t xTicksToWait, const BaseType_t xCopyPosition )
我所能想到的方法唯一就是改写这个原代码了。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
12条回答
huangguimina4
1楼-- · 2019-12-10 21:17
队列不行么
相由心生
2楼-- · 2019-12-11 02:31
huangguimina4 发表于 2019-6-8 21:07
队列不行么

就是队列消息,要引起任务切换
zchong
3楼-- · 2019-12-11 05:06
实时操作系统本就应该如此啊
huangguimina4
4楼-- · 2019-12-11 06:09
相由心生 发表于 2019-6-8 21:10
就是队列消息,要引起任务切换

        // 暂停任务切换操作
        vTaskSuspendAll();
bg6agf
5楼-- · 2019-12-11 09:31
 精彩回答 2  元偷偷看……
相由心生
6楼-- · 2019-12-11 09:45
huangguimina4 发表于 2019-6-8 22:58
// 暂停任务切换操作
        vTaskSuspendAll();

这个操作是危险的,因为在这种会引起任务切换的函数前要禁止暂停切换操作和恢复操作。

一周热门 更多>