1 互斥信号量的原理与创建
1.1 问题概述
问题:如何处理多个任务共享资源冲突的问题?
使用计数信号量存在的不足:
优先级反转现象:
1.2 设计原理
锁定计数器:
优先级继承:
1.3 设计实现
定义互斥信号结构:
互斥信号量的初始化:
/**********************************************************************************************************
** Function name : tMutexInit
** Descriptions : 初始化互斥信号量
** parameters : mutex 等待初始化的互斥信号量
** Returned value : 无
***********************************************************************************************************/
void tMutexInit (tMutex * mutex)
{
tEventInit(&mutex->event, tEventTypeMutex);
mutex->lockedCount = 0;
mutex->owner = (tTask *)0;
mutex->ownerOriginalPrio = TINYOS_PRO_COUNT;
}
参考资料: