Сама по себе неатомарность не порок Что мешает выделить разные переменные для передачи флагов из процесса в процесс?
> это как? и как быть с прерываниями?
Рассуждаем логически. Если одному процессу (например прерыванию ) не придет в голову лазить в эту переменную и менять там что-то, то зачем эта атомарность? Значит, пусть прерывание лазит и читает, но не пишет туда ничего. Рассмотрим обычную передачу по ком-порту без RTOS. Зачем основному циклу лазить в регистры ком-порта, это дело прерывания. Зачем прерыванию лазить в переменные основного цикла и устанавливать там что-то. Если нужно сообщить что-то, например флаг конца передачи, это можно сделать в специально созданной переменной. Этот флаг может быть сброшен в тот момент, когда именно это прерывание, в котором он может быть установлен, невозможно.
"вы все делаете с самого начала, или все таки предыдущие наработки используете?"
Обращения к портам прописываю именно макросами для каждой новой схемы. А остальное .. Да, рассчитываю на то, что обойдется :)
"для RTOS это неправильно"
Угу.