Насчёт illegal instruction - не знаю, после установки нужных
ключей, исключения пропали. Проблема с работой программы нашлась -
на какой-то из редакций, код обработчика прерывания ошибки I2C
оказался сокращён - я его перенёс в другую функцию, а прерывание
использовало прежнюю, которая не сбрасывала ошибку и не отключала
прерывание. Код просто зацикливался в перерывании, но так как вызывалась функция сброса I2C, было похоже на нормальную работу. Когда снял оптимизации, всё ясно увидел.