互斥信号量
1.有优先级继承。
2.尽量不要在中断中调用
3.xSemaphoreCreateMutex创建后,可以直接take使用。
二值信号量
1.无优先级继承。
2.允许在中断中调用。
3.可以当做标志位来使用。
4.xSemaphoreCreateBinary创建后,必须得先give一下才能被take。
这么说其实很笼统,直接代码测试。
这里使用的是互斥信号量。
1.创建两个测试任务,app_mqtt_get_properties_handle_task和app_mqtt_set_properties_handle_task

2.两个任务内容

这两个任务其实没做什么动作。就是在take give 然后就挂起等待。
任务1:take,等待200ms,give ,等待200ms。
任务2:take,等待1000ms,give,等待200ms。
理论上来说任何一个任务take了之后,另外一个任务就无法take,必须等待give之后。直接上输出结果。

1721




被折叠的 条评论
为什么被折叠?



