На днях столкнулся с STM8. Компилятор - IAR. Возник вопрос: бывают ли какие-либо гарантии, что чтение 16-битной переменной будет атомарным? Может быть, какое-то яровское расширение языка? Пока для пущей уверенности делаю повторное чтение и сравнение с предыдущим значением. Речь идёт о счётчике миллисекунд, обновляющимся в прерывании.
Update:
Блин, сам нашёл ответ на свой вопрос:
Accessing a small-sized volatile variable can be an atomic operation, but you should not rely on it unless you continuously study the compiler output. It is safer to use the __monitor keyword to ensure that the sequence is an atomic operation.
Немного недоработали яровские ребята. Полезная была бы фича.