AVR studio 6.2

gregoryl
Offline
Зарегистрирован: 09.09.2013

Вообщем может кто уже сталкивался.

Была у меня AVR studio 6.1 и программка успешно компелировалась в 1134 байта выходного файла.

Обновился до 6.2 и привет выходной файл вырос аж до 1306. Оно и так не влазило в Attiny13, но отключая разные модули я мог загружать и проверять по частям. Теперь это просто не реально. 

Конечный код компилируется IAR, он нереально крут и ужимал код до 1011 байт, беда только с таким уровнем оптимизации, что любая неаккуратность дорого стоит и все глючит, и соответсвенно математику я проверял по частям компилируя в AVR, а уже потом уптимизировал код что бы IAR, мог его оптимизировать.

Вообщем чего делать, может кто знает рецепт ?

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Вроде логично, использовать тот компилятор, который больше подходит для данной задачи.

;)

PS лично я бы пользовался тем компилятором, который мне больше нравится, подходит. Мне ближе Atmel Studio 6.1, но IAR я слишком мало пользовал, потому буду не объективен. В общем вопрос не совсем однозначен. Отлаживайтесь на Atmel Studio в симуляторе, если возможно, потом отлаживайте на железе в IAR.

PS2 Кроме Вас никто не скажет (не видя скетча), какой компилятор делает код лучше.

 

gregoryl
Offline
Зарегистрирован: 09.09.2013

Вопрос тут не в коде, меня интресует почему и как можно исправить ситуацию с 6.2 по отношению к 6.1. Разница уж больно значительная на одном и том же коде... Возможно я не первый кто с этим столкнулся...

З.Ы. IAR был взят не от хорошей жизни, код  не влязил по размеру. И даже для него мне приходилось менять местами не связанные строки и блоки программы что бы впихнуть полный функционал диммера.

З.Ы.Ы как закончу ( если сил и терпения хватит ) полностью проект выложу в свободный доступ.

axill
Offline
Зарегистрирован: 05.09.2011

Поиграйтесь с уровнем оптимизации в свойствах проекта

скорее всего в 6.2 что то изменили в алгоритме который по умолчанию

ну или откатите все на 6.1, врядли для вас улучшения 6.2 критичны

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

+1, использовать 6.1, потому что проще переустановить, чем долбиться в стену. 6.2 скорее всего и не нужен.

gregoryl
Offline
Зарегистрирован: 09.09.2013

ну собственно так и поступил, откатился до 6.1, свойства проекта вроде прошел, отличий не нашел, хотя смотрел по диагонали... 

Кстати в 6.2 есть еще засада, после открытия проекта в 6.2 автоматом меняется версия студии прописаная в проекте и 6.1 больше не хочет его открывать. Но все равно все это очень странно, попробую покапаться в будущем на тему makefiles что строят обе студии...

axill
Offline
Зарегистрирован: 05.09.2011

Опции проекта надо не разглядывать на предмет сходства, а пробовать разные режимы оптимизации

там есть три режима оптимизации плюс режим оптимизации по размеру

оптимизация по размеру может выжать 15-20 процентов

но при нехватке оперативки могут начаться проблемы при исполнении кода

gregoryl
Offline
Зарегистрирован: 09.09.2013

В обоих случаях было выставлено именно оптимизация по размеру... Другие пробовать не стал, ибо у меня проблема именно с размером....

axill
Offline
Зарегистрирован: 05.09.2011

Все рекомендации по оптимизации кода avr учли?

gregoryl
Offline
Зарегистрирован: 09.09.2013

думаю что нет :-) а где-то есть полный список ?

но опять же тут вопрос в том, что более новый компилятор с теми же параметрами создал код почти на 17% больше по размеру, при одинаковых параметрах...