嵌入式软件开发的关键技术与实践
1. 互斥锁与并发问题
在多任务系统中,对共享资源的访问需要进行同步控制,以避免数据竞争和不一致的问题。互斥锁(Mutex)是一种常用的同步机制,用于确保同一时间只有一个任务可以访问共享资源。
1.1 互斥锁的实现
以下是一个简单的互斥锁实现示例:
// attempt to acquire the lock
void GetMutex(volatile unsigned short int *Mutex)
{
unsigned short int InitialValue;
// This while loop iterates until the initial
// value is unlocked (meaning this task has
// successfully captured the Mutex and locked it)
do
{
DisableInterrupts(); // ensure atomic access
InitialValue = *Mutex; // get current value
*Mutex = LOCKED; // attempt to get a lock
EnableInterrupts();
} while (InitialValue == LOCKED);
// loop while failed to acquire the lock
//
超级会员免费看
订阅专栏 解锁全文
8万+

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



