|
|
  |
AVR Studio vs IAR Embedded Workbench vs GCC, К чему привыкать то? |
|
|
|
Apr 19 2010, 23:25
|

I WANT TO BELIEVE
     
Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751

|
Цитата AVR Studio - это оболочка + ассемблер + симулятор. Компилятора Си там никогда не было. Они правда написали плагин для GCC. Ну я теперь разобрался да, что там ассемблер только. Это объясняет всё  Если она под си никогда толком и не затачивалась - тогда всё Ok. Со своии задачаи справляется )
--------------------
The truth is out there...
|
|
|
|
|
Apr 19 2010, 23:30
|

Познающий...
     
Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125

|
Цитата(mempfis_ @ Apr 19 2010, 17:29)  Плюсы AVRStudio проявляются когда приходится прошивать десятки-сотни плат. Используя AVRISPMKII через студию прошивается один контроллер, выбирается закладка AUTO и одним нажатием кнопки прошиваются остальные, только программатор успевай переставлять  Так тут студия не причем) Можно использовать консольную утилиту, только Enter успевай нажимать) Цитата(sigmaN @ Apr 20 2010, 01:00)  Скачал с сайта саму студию плюс два сервис пака. Поставил. По нажатии на кнопку compile мне сказали, что без WinAVR жизни нет. Когда проект создаете, выбирайте asm. Чистая студия только ассемблер в себе оной содержит. Цитата(sigmaN @ Apr 20 2010, 01:00)  Ну это дико вообще! Какая бы там бесплатная она не была, а как минимум код писать нужно в другом редакторе - это факт. ну это и естественно  Над редакторами люди трудятся и достигают конкретных поставленных целей. Цель же студии - симуляция, отладка МК. Цитата(sigmaN @ Apr 20 2010, 01:00)  Ну по прошивке и кол-ву поддерживаемых программаторов/отладчиков спору нет. А Вы попробуйте запустить avrdude. Там список программаторов не менее внушительный.
--------------------
Выбор.
|
|
|
|
|
May 19 2010, 08:36
|
Профессионал
    
Группа: Свой
Сообщений: 1 719
Регистрация: 13-09-05
Из: Novosibirsk
Пользователь №: 8 528

|
Цитата(sigmaN @ May 19 2010, 04:44)  В AVR035: Efficient C Coding for AVR написано, что архитектура AVR якобы затачивалась под уже существующий тогда компилятор IAR. Врут. И даже что под использование языков высокого уровня вообще - тоже слабо соответствует действительности. Один только уродский стек чего стоит.
--------------------
Russia est omnis divisa in partes octo.
|
|
|
|
|
May 19 2010, 09:01
|

Беспросветный оптимист
     
Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646

|
Цитата(sigmaN @ May 19 2010, 01:44)  А на сколько сильно на практике gcc проигрывает IAR и проигрывает ли вообще? Ну не скажу про AVR, но для MSP430 получалось по размеру где-то 16к с IAR против 19-20 с MSPGCC. В общем-то, не набивая под завязку, вполне можно пережить. Тем более что всё равно флеши 60к, так что больше половины свободно. При этом, как уже упоминали, правильная манера кодирования позволяет ещё что-либо улучшить. Хотя, как говорят умные люди, не надо ничего тонко оптимизировать, пока это действительно не будет нужно. Или другими словами, "не лечи то, что работает" Ну а насчёт "к чему привыкать"... Вот на днях директору пришло письмо от заинтересованной конторы, что после 19-го к нам могут прийти внезапно специально обученные люди, которые проверят, действительно ли мы отказались от использования пикада, или продолжаем его нелегально использовать. Хорошо хоть предупредили... Узнайте, сколько стоит IAR и оцените, сможете ли вы его себе позволить.
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|
|
|
|
|
May 19 2010, 12:32
|

I WANT TO BELIEVE
     
Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751

|
В принципе согласен, что при грамотном использовании gcc может оказаться очень хорошим конкурентом IAR. Однако на WINAVR( как и на всё что GNU) требуется перелопатить достаточно много документации, чтобы понять что к чему и как вообще лучше кодить и какие ключи оптимизации использовать. Предлагаю собрать тут некий how to или tips and tricks )) Я потом выложу тут то, что я накопал. Сейчас нет времени. Пока у меня вопрос: Код static volatile struct{ uint16_t timer_ticks; uint16_t timer_ms; }timer_counters;
uint16_t timer_get_ticks() { return timer_counters.timer_ticks; 8a: 20 91 61 00 lds r18, 0x0061 8e: 30 91 62 00 lds r19, 0x0062 } 92: c9 01 movw r24, r18 94: 08 95 ret Зачем так тупить? что, нельзя было сразу в r24:r25 загрузить значение? *код просто для примера. Дело ясное, что в таких случаях нужна структура без static и прямое обращение к ней из других модулей вместо вот таких вот функций-паразитов в микроконтроллеропрограммировании
--------------------
The truth is out there...
|
|
|
|
|
May 19 2010, 23:42
|

I WANT TO BELIEVE
     
Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751

|
А ещё забавно, что похоже при любых -О приходится всё равно вручную добавлять -fwhole-program а это хорошая опция, она мне нравится! )) И в техасовском компиляторе(с котормы я дело имел прежде) она включалась чуть ли не по дефолту(когда уровень оптимизации достаточно высок). Но всё таки круто! Один компилятор, столько архитектур, столько языков! Всё таки очень круто, да и бесплатно ещё! added: ооо, нет. не то. этот -fwhole-program это совсем не то ))
--------------------
The truth is out there...
|
|
|
|
|
May 20 2010, 07:30
|
Гуру
     
Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521

|
Цитата(SSerge @ May 19 2010, 11:36)  Врут. И даже что под использование языков высокого уровня вообще - тоже слабо соответствует действительности. Один только уродский стек чего стоит. Это всё обсуждалось уже. Всё познаётся в сравнении. По сравнению с PIC16 или с х51, megaAVR лучше "адаптирован". Претензий не больше чем к тому же ARM. Наличие "особенностей" в ядре и системе комманд, обычное явление для любого процессора/ семейства. Всё это результат многочисленных компромисов. То что вы называете "уродский стэк", вполне можно назвать "крассивое решение по стэку". Причём, ни грамма не покривив душой. 2 sigmaN. Таких "нюансов" компиляции, будет полно и для IAR и для GCC. Чем больше вы будете отходить от ASM, тем меньше это вас будет волновать. В конечном итоге вас ведь интересует не "оптимальность написания программы в коде", а её принципиальная работоспособность, скорость написания, возможности по заимствованию, хорошая отлаживаемость, хорошая поддерживаемость, лёгкость развития проекта и его "прозрачность". Всё это присутствует в полной мере. Суммарный вклад "нюансов" не велик. Кроме того, как правило, невелика часть программы которая является критически важной по времени. Эту часть программы можно написать на ASM. В последнем IAR для ARM - вроде даже видел какой-то проффилировщик. Короче идёт развитие программных сред и средств, и надо это принять как должное, а не цепляться за старые мощи.
|
|
|
|
|
May 20 2010, 09:32
|

неотягощённый злом
     
Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643

|
Цитата(sigmaN @ May 20 2010, 12:38)  Странно, я так и не нашел такой опции, чтобы компилятор не компилил файлы по одному, а раскатывал всю простыню как-бы в один большоооой си файл, потом проходился уже по нему оптимизатором и на выходе выдавал то, что должен. Цитата(sigmaN @ May 20 2010, 03:42)  added: ооо, нет. не то. этот -fwhole-program это совсем не то )) Это как раз оно. Да, да, да.
--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|