bear_yh 发表于 2021-3-3 16:36:53

freertos 消息队列是怎么实现资源互斥的?

低级任务正在往队列里面放消息,又来一个高级任务也要往这个任务里面放消息,高级要等低级任务放完吧,但低级还没放完,又来一个中级任务抢占了低级任务,
此时此刻,是不是发生了大名鼎鼎的 优先级反转?

eric2013 发表于 2021-3-4 09:15:47

消息队列没有优先级翻转问题。你可以简单看下FreeRTOS的消息队列实现,关键部分是做的开关中断或者调度锁实现。

bear_yh 发表于 2021-3-8 17:07:25

eric2013 发表于 2021-3-4 09:15
消息队列没有优先级翻转问题。你可以简单看下FreeRTOS的消息队列实现,关键部分是做的开关中断或者调度锁实 ...

这样搞的啊,岂不是会影响实时性?

杨登辉 发表于 2021-3-11 17:52:54

bear_yh 发表于 2021-3-8 17:07
这样搞的啊,岂不是会影响实时性?

那就是自己设计问题了

bear_yh 发表于 2021-3-12 09:35:31

eric2013 发表于 2021-3-4 09:15
消息队列没有优先级翻转问题。你可以简单看下FreeRTOS的消息队列实现,关键部分是做的开关中断或者调度锁实 ...

如果进入临界态关中断了,此时来一个中断,这个中断会不会丢啊?

杨登辉 发表于 2021-3-12 10:57:14

bear_yh 发表于 2021-3-12 09:35
如果进入临界态关中断了,此时来一个中断,这个中断会不会丢啊?

都关闭中断了,怎么还会来中断。。

bear_yh 发表于 2021-3-17 09:52:53

杨登辉 发表于 2021-3-12 10:57
都关闭中断了,怎么还会来中断。。

虽然关了中断,可是后来来了中断,不会响应中断,中断标志位还是设置起来的吧?
页: [1]
查看完整版本: freertos 消息队列是怎么实现资源互斥的?