Цитата(IF_P @ Apr 5 2011, 22:40)

Я попробую тут выложить полностью проекты IAR с ошибкой и без. Может кто и заметит что-нибудь.
Вот сейчас есть проект с ошибкой. Выкладываю. Когда ошибка в этом проекте исчезнет, снова выложу.
Логику работы просьба не искать. Это просто куски для проверки отдельных узлов
IAR 4.30A
Скачал проект с ошибкой. Что-то странный он какой-то. В настройках криминала не увидел, но почему-то в продуктах компиляции какая-то ерунда. Например, в проекте добавлены файлы adc_8535.c и delay.c, а в папке Obj объектные файлы: adc_8535.r90, delay.r90, i2c.r90. Откуда взялся i2c.r90, если его исходника нет в проекте?
Далее, в папке List лежат: delay.lst, i2c.lst, где adc_8535.lst? И почему есть i2c.lst? Видимо, это результат каких-то экспериментов, когда то файлы добавляются в проект (и удаляются из него), то опции генерации листингов включатся/выключаются. Возможно, поэтому и атрибуте объектных файлов как-то "разбежались".
Посмотрел потроха объектных файлов - действительно, у них разные атрибуты рантаймной модели. У adc_8535.r90: __has_elpm ♣falseЙ (прямо из бинарника взял), у delay.r90: __has_elpm ♦trueЙ.
Как это получилось, не знаю, но не очень удивляюсь на общем фоне. Что-то у вас барабашки какие-то там живут. Возможно, компилировали проект с разными наборами файлов и для разных процов в разное время. Вот продукты компиляции и интерферируют. Если не это, то тогда не знаю, мне не удалось повторить ваш эффект.
Сам проект я перекомпилировал, всё собралось без ошибок. Правил файлы, компилировал, никаких проблем не выявилось - все файлы правильно генерируются. Никаких ошибок не возникает. IAR 5.30.