Я читал http://embeddedgurus.com/embedded-bridge/2010/03/different-bit-types-in-different-registers/, в котором говорилось:
С битами чтения/записи микропрограммы устанавливают и очищают бит, когда это необходимо. Обычно он сначала считывает регистр, изменяет желаемый бит, затем записывает измененное значение обратно
и я столкнулся с этим вопросом, сохраняя при этом некоторый производственный код, закодированный старыми сольными встраиваемыми ребятами. Я не понимаю, почему это необходимо.
Когда я хочу установить/очистить бит, я всегда просто или /nand с битовой маской. На мой взгляд, это решает любые проблемы с потокобезопасностью, так как я предполагаю установку (либо путем назначения, либо с помощью маски), регистр занимает всего один цикл. С другой стороны, если вы сначала прочитали регистр, затем измените, а затем напишите, прерывание между чтением и записью может привести к записи старого значения в регистр.
Итак, почему read-modify-write? Это все еще необходимо?