飞火流星 发表于 2022-7-26 10:52:46

互斥锁任务间同步

硬汉哥。请教个freertos的问题。 创建了2个任务,一个互斥锁。一个任务释放互斥锁,一个任务获取互斥锁。只是在任务间进行同步。没有放到中断中,但是发现一个问题
在释放互斥锁(xSemaphoreGive)的时候报错了(Error:rtos\freertos\tasks.c3783),但是os还能运行。不太明白为什么会这样。那么这样任务间的互斥锁怎么用啊。

eric2013 发表于 2022-7-26 12:10:11

互斥信号量不要用于两个任务同步,姿势不对。

应该用二值信号量。互斥信号量的正确姿势是在同一个任务里面成对使用,主要目的是保护资源的独占状态,而不要用于同步的场景下,同步场景下使用二值信号量等。

eric2013 发表于 2022-7-26 12:10:19

互斥信号量不要用于两个任务同步,姿势不对。

应该用二值信号量。互斥信号量的正确姿势是在同一个任务里面成对使用,主要目的是保护资源的独占状态,而不要用于同步的场景下,同步场景下使用二值信号量等。

飞火流星 发表于 2022-7-26 12:47:52

嗯嗯 。感谢硬汉哥。已经更改为二值信号。

13756039532 发表于 2022-8-29 17:21:57

你这种情况信号量最适合,互斥锁通常用来保护资源。
页: [1]
查看完整版本: 互斥锁任务间同步