FreeRTOS中mutex用法:
FreeRTOS为了解决资源保护的问题引入了互斥量(Mutex)。
Mutex 的发音是 /mjuteks/ ,其含义为互斥(体),这个词是Mutual Exclude的缩写。
- Mutex是一把钥匙,一个人拿了就可进入一个房间,出来的时候把钥匙交给队列的第一个。一般的用法是用于串行化对critical section代码的访问,保证这段代码不会被并行的运行。
- mutex是一个二进制标志,可以通过它来确保执行流在代码关键区(critical section of code)互相排斥,从而对共享资源加一保护
互斥量是二进制信号量的一个变种,开启互斥量需要在头文件FreeRTOSConfig.h设置configUSE_MUTEXES 为1。互斥量和信号量的主要区别如下
互斥量操作的相关函数
SemaphoreHandle_t xSemaphoreCreateMutex( void )
xSemaphoreCreateMutex()函数用于创建互斥量
互斥量的应用伪代码
首先申明个互斥量的全局变量
SemaphoreHandle_t xMutex;
然后在main函数中创建互斥量
int main