SciFi (09.10.2020 10:26, просмотров: 383) ответил VladislavS. на Чего? Вы видели определение регистров процессора в заголовочных
фалах? Там стоит __IO aka volatile. И ни один компилятор не имеет
права выкинуть/оптимизировать доступ к этим регистрам на любом
уровне оптимизации. Мои примеры скомпилированы на максимальной
оптимизации в IAR. Ну это же азы эмбеддерства, даже удивительно,
что такие вещи объяснять надо.
Имею интересные впечатления от компилятора cosmic для stm8. Он
просто не обращает внимания на volatile. Это логично, учитывая, что
код генерит на манер "что вижу, то и пишу", хитрых оптимизаций нет.
Но на код "var += 2;" выдаёт "INC mem INC mem", например. Зануды
скажут "какой же это volatile!", а я скажу "ну и что, зато код
компактный получается"...
ส็็็็็็็็็็็็็็็็็็็็็็็็็༼ ຈل͜ຈ༽ส้้้้้้้้้้้้้้้้้้้้้้้