ESP32开发之freeRTOS的互斥量
- 什么是互斥量
- 互斥量的应用场合
- 互斥量的API函数
- 基本代码结构
- 互斥量使用举例
- 递归锁
- 递归锁举例
- 总结
什么是互斥量
在freeRTOS中,多个任务访问一块共享资源,会产生竞争现象。
比如马路上只有一个很早以前的电话亭,A、B都想要打电话,然后他们就开始打架了。但是如果A先进去了然后把门锁了,B想进去打电话的话只能在外面等,必须等到A把门锁打开。
互斥量的应用场合
像freeRTOS的多任务系统,任务A正在使用某个资源,还没用完的时候,任务B也来使用,就可能会导致问题。
就比如串口,任务A正在用串口发送数据,此时任务B也来用这个串口发送数据,这样就会导致数据混乱。
简而言之,多任务使用共享资源的情况下,就需要使用互斥量了。
这里有个特别强调的注意点:按照正常的情况来说,只要任务A获取了互斥量,其他任务都无法释放互斥量才对。但