Есть несколько вариантов, но концепция верна:
Записывающая задача: залочили, записали, разлочили
Считывающая задача: залочили, считали, разлочили
Лично я бы, к мъютексу добавил бы еще семафор, правда я не знаю как он в этой операционке реализован.
Код
int a,b,c;
int buf[3];
task1
{
while(1)
{
os_delay(1);
mutex_lock();
a = buf[0];
b = buf[1];
c = buf[2];
mutex_unlock();
release_semaphore();
}
}
task2
{
int a_task, b_task, c_task;
while(1)
{
bool res = wait_for_semaphore(timeout);
if (res)
{
mutex_lock();
a_task = a;
b_task = b;
c_task = c;
mutex_unlock();
} else
{
другие_действия();
}
}
}
}