AVR studio 6.2
- Войдите на сайт для отправки комментариев
Пт, 23/05/2014 - 23:19
Вообщем может кто уже сталкивался.
Была у меня AVR studio 6.1 и программка успешно компелировалась в 1134 байта выходного файла.
Обновился до 6.2 и привет выходной файл вырос аж до 1306. Оно и так не влазило в Attiny13, но отключая разные модули я мог загружать и проверять по частям. Теперь это просто не реально.
Конечный код компилируется IAR, он нереально крут и ужимал код до 1011 байт, беда только с таким уровнем оптимизации, что любая неаккуратность дорого стоит и все глючит, и соответсвенно математику я проверял по частям компилируя в AVR, а уже потом уптимизировал код что бы IAR, мог его оптимизировать.
Вообщем чего делать, может кто знает рецепт ?
Вроде логично, использовать тот компилятор, который больше подходит для данной задачи.
;)
PS лично я бы пользовался тем компилятором, который мне больше нравится, подходит. Мне ближе Atmel Studio 6.1, но IAR я слишком мало пользовал, потому буду не объективен. В общем вопрос не совсем однозначен. Отлаживайтесь на Atmel Studio в симуляторе, если возможно, потом отлаживайте на железе в IAR.
PS2 Кроме Вас никто не скажет (не видя скетча), какой компилятор делает код лучше.
Вопрос тут не в коде, меня интресует почему и как можно исправить ситуацию с 6.2 по отношению к 6.1. Разница уж больно значительная на одном и том же коде... Возможно я не первый кто с этим столкнулся...
З.Ы. IAR был взят не от хорошей жизни, код не влязил по размеру. И даже для него мне приходилось менять местами не связанные строки и блоки программы что бы впихнуть полный функционал диммера.
З.Ы.Ы как закончу ( если сил и терпения хватит ) полностью проект выложу в свободный доступ.
Поиграйтесь с уровнем оптимизации в свойствах проекта
скорее всего в 6.2 что то изменили в алгоритме который по умолчанию
ну или откатите все на 6.1, врядли для вас улучшения 6.2 критичны
+1, использовать 6.1, потому что проще переустановить, чем долбиться в стену. 6.2 скорее всего и не нужен.
ну собственно так и поступил, откатился до 6.1, свойства проекта вроде прошел, отличий не нашел, хотя смотрел по диагонали...
Кстати в 6.2 есть еще засада, после открытия проекта в 6.2 автоматом меняется версия студии прописаная в проекте и 6.1 больше не хочет его открывать. Но все равно все это очень странно, попробую покапаться в будущем на тему makefiles что строят обе студии...
Опции проекта надо не разглядывать на предмет сходства, а пробовать разные режимы оптимизации
там есть три режима оптимизации плюс режим оптимизации по размеру
оптимизация по размеру может выжать 15-20 процентов
но при нехватке оперативки могут начаться проблемы при исполнении кода
В обоих случаях было выставлено именно оптимизация по размеру... Другие пробовать не стал, ибо у меня проблема именно с размером....
Все рекомендации по оптимизации кода avr учли?
думаю что нет :-) а где-то есть полный список ?
но опять же тут вопрос в том, что более новый компилятор с теми же параметрами создал код почти на 17% больше по размеру, при одинаковых параметрах...