хм, у меня тоже непонятка в смысле претензий При чем тут несистемное прерывание? И почему механизмы РТОС, которые о нем ничего не знают, должны ему мешать что-то делать?
Проблема атомарного доступа есть как в (1) обычных системах, так и в (2) системах с вытесняющей РТОС (остальные случаи типа многоядерности пока рассматривать не будем). В первом случае этому способствуют прерывания, во втором - переключение контекста (по сути те же прерывания, в которых либо вызываются сервисы, либо прерывание по системному таймеру).
В случае (1) можно использовать запрещение прерываний для соблюдения атомарности.
В случае (2) просто запрещать прерывания
нельзя, нужно пользоваться специально для этого предназначенными механизмами: критическими секциями и мютексами. В данном случае под критической секцией понимается запрещение переключения контекста.
Если вы упомянули о нем - напишите зачем там применяется именно он
Там, по-моему, все ясно написано. Оператор условия используется чтобы реализовать в одном макросе как вычисление выражения, так и возврат значения. Я такое вижу первый раз, поэтому обратил на это внимание.
А вот про то, что промежуточные (после первого xor) значения в полях SFR могут приводить к нежелательным эффектам, вы не упомянули.
поясните?