Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: ICC AVR и IAR
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
kostik2
Откомпилировал одну и туже прогу на IAR и ICC и получается, что
,к примеру, на IAR - 1068байт а на ICC - 764б.
Применил на IAR оптимизацию максимальную.

В принципе какой отладчик лучше генерит код.
defunct
Цитата(kostik2 @ Feb 16 2006, 13:12) *
Откомпилировал одну и туже прогу на IAR и ICC и получается, что
,к примеру, на IAR - 1068байт а на ICC - 764б.
Применил на IAR оптимизацию максимальную.

В принципе какой отладчик лучше генерит код.


хм.. отладчики код не генерят. отладчики отлаживают ;>
Компилятор конечно же лучше у IAR.
для примера небольшой проект с вычислениями с плавающей точкой в ICC получается ~7kb, в IAR ~3kb (при оптимизации по скорости).
kostik2
НЕПРАВ. ДА. ПОПРОБОВАЛ ПО СКОРОСТИ СТАЛО 1000б.
но в ICC я оптимизацию вообще не включал.
Может скажете какие настройки и где надо сделать,
стобы код стал меньше чем в icc.
defunct
Цитата(kostik2 @ Feb 16 2006, 14:11) *
НЕПРАВ. ДА. ПОПРОБОВАЛ ПО СКОРОСТИ СТАЛО 1000б.
но в ICC я оптимизацию вообще не включал.
Может скажете какие настройки и где надо сделать,
стобы код стал меньше чем в icc.


в ICC как таковой оптимизации вообще нет, есть только default и code compression (не сильно разнящиеся между собой) режимы сборки проекта..

В IAR размер сборки зависит от подключенных Вами библиотек, от используемой модели памяти, и от режима оптимизации (который определяется 6-ю параметрами - Optimisations->Enabled optimisations).. Также очень важно для получения минимального размера кода переключиться в режим сборки "RELEASE" в комбобоксе Workspace.
IgorKossak
Цитата(kostik2 @ Feb 16 2006, 14:11) *
...стобы код стал меньше чем в icc.

Довольно странная самоцель wacko.gif
Aleks17
Попадался как-то документ с Atmel-а по поводу реализации какой-то функции в разных компиляторах, так вот IAR рулил однозначно и по объёму и по быстродействию.
Old1
Цитата(defunct @ Feb 16 2006, 16:34) *
Также очень важно для получения минимального размера кода переключиться в режим сборки "RELEASE" в комбобоксе Workspace.

ИМХО не так уж и важно. RELEASE - это всего лишь дополнительный профиль настройки проекта, предназначенный для облегчения работы и позволяющий запомнить настройки проекта, оптимальные для создания исполняемого кода (например: максимальная оптимизация, которая в этом профиле установлена по умолчанию), формат выходного файла .hex и т.п.).Кстати настраивается он отдельно. Ничто не мешает минимальный размер кода получить и в DEBUG.
defunct
Цитата(Old1 @ Feb 16 2006, 21:08) *
Цитата(defunct @ Feb 16 2006, 16:34) *

Также очень важно для получения минимального размера кода переключиться в режим сборки "RELEASE" в комбобоксе Workspace.

ИМХО не так уж и важно. RELEASE - это всего лишь дополнительный профиль настройки проекта, предназначенный для облегчения работы и позволяющий запомнить настройки проекта, оптимальные для создания исполняемого кода (например: максимальная оптимизация, которая в этом профиле установлена по умолчанию), формат выходного файла .hex и т.п.).Кстати настраивается он отдельно. Ничто не мешает минимальный размер кода получить и в DEBUG.


Особо тщательно этот вопрос не рассматривал.
Просто при внутрисхемной эмуляции взависимости от сборки debug и release замечал существенное отличие в скорости исполнения, при одинаковых параметрах компиляции. Сборка "debug" работает медленнее, думаю это возможно из-за того, что в код местами добавляются команды break.. Может я и не прав.
IgorKossak
Цитата(defunct @ Feb 16 2006, 21:38) *
Просто при внутрисхемной эмуляции взависимости от сборки debug и release замечал существенное отличие в скорости исполнения, при одинаковых параметрах компиляции. Сборка "debug" работает медленнее, думаю это возможно из-за того, что в код местами добавляются команды break.. Может я и не прав.

Господа, поймите простую вещь.
Никакой мистики в конфигурациях debug и release нет. Отличаются они ТОЛЬКО настройками проекта, ВСЕ из которых доступны из Project/Options. Можно по желанию удалить любую из них (или даже все) или создать свою(и) с любыми названиями и настройками.
Имеющиеся конфигурации это всего лишь "фабричные заготовки".
Они настроены так, что в debug отсутствует оптимизация и выходным форматом является debug(ubrof), в release оптимизация включена (потому и работает быстрее) и выходной формат hex (для прошивки).
Могут быть и другие настройки, но никаких скрытых подоплёк.
Команды break никуда не добавляются в debug, а имеются некоторые идентификаторы, на которые реагирует C-SPY (main, _exit, ...).
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.