В общем, вредный совет насчёт там волатильная, а сям - нет.
Когда-то так и делал. Нюанс в том, что запись тоже оптимизируется.
Поэтому если в контексте, допустим, прерывания, запись в
неволатильную память на этот контекст не влияет, она может быть
упразднена. Попадал на такое. Исследовал и сделал вывод:
Волатильность нужно устанавливать и на приемнике, и на источнике данных, если они в разных контекстах. А чтобы не запрещать оптимизацию, там, где обновление волатильных данных не подразумевается, использовать временные неволатильнве переменные.