реклама на сайте
подробности

 
 
4 страниц V  < 1 2 3 4 >  
Reply to this topicStart new topic
> AVR Studio vs IAR Embedded Workbench vs GCC, К чему привыкать то?
sigmaN
сообщение Apr 19 2010, 23:25
Сообщение #16


I WANT TO BELIEVE
******

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



Цитата
AVR Studio - это оболочка + ассемблер + симулятор. Компилятора Си там никогда не было. Они правда написали плагин для GCC.

Ну я теперь разобрался да, что там ассемблер только. Это объясняет всё smile.gif Если она под си никогда толком и не затачивалась - тогда всё Ok.
Со своии задачаи справляется )


--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Apr 19 2010, 23:30
Сообщение #17


Познающий...
******

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



Цитата(mempfis_ @ Apr 19 2010, 17:29) *
Плюсы AVRStudio проявляются когда приходится прошивать десятки-сотни плат. Используя AVRISPMKII через студию прошивается один контроллер, выбирается закладка AUTO и одним нажатием кнопки прошиваются остальные, только программатор успевай переставлять smile.gif

Так тут студия не причем) Можно использовать консольную утилиту, только Enter успевай нажимать)

Цитата(sigmaN @ Apr 20 2010, 01:00) *
Скачал с сайта саму студию плюс два сервис пака. Поставил. По нажатии на кнопку compile мне сказали, что без WinAVR жизни нет.

Когда проект создаете, выбирайте asm. Чистая студия только ассемблер в себе оной содержит.
Цитата(sigmaN @ Apr 20 2010, 01:00) *
Ну это дико вообще! Какая бы там бесплатная она не была, а как минимум код писать нужно в другом редакторе - это факт.

ну это и естественно rolleyes.gif Над редакторами люди трудятся и достигают конкретных поставленных целей. Цель же студии - симуляция, отладка МК.
Цитата(sigmaN @ Apr 20 2010, 01:00) *
Ну по прошивке и кол-ву поддерживаемых программаторов/отладчиков спору нет.

А Вы попробуйте запустить avrdude. Там список программаторов не менее внушительный.


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
sigmaN
сообщение May 18 2010, 21:44
Сообщение #18


I WANT TO BELIEVE
******

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



В AVR035: Efficient C Coding for AVR написано, что архитектура AVR якобы затачивалась под уже существующий тогда компилятор IAR.
А на сколько сильно на практике gcc проигрывает IAR и проигрывает ли вообще?


--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post
haker_fox
сообщение May 19 2010, 01:45
Сообщение #19


Познающий...
******

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



Цитата(sigmaN @ May 19 2010, 06:44) *
А на сколько сильно на практике gcc проигрывает IAR и проигрывает ли вообще?

Подобные вопросы уже обсуждались, можете поискать)
На счет проигрыша: так уж получается, что когда продуктом занимаются профессионалы за деньги, он получается, как правило лучше, чем бесплатный аналог. IAR -не исключение. Однако, это совершенно не мешает мне до сих пор работать с GCC. Привычка, так сказать (примерно 5 лет) и отсутствие необходимости в переходе на более совершенный продукт. В общем это мнение субъективное. Начинать тоже неважно с чего.


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение May 19 2010, 07:59
Сообщение #20


неотягощённый злом
******

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



Цитата(sigmaN @ May 19 2010, 01:44) *
А на сколько сильно на практике gcc проигрывает IAR и проигрывает ли вообще?
Будете смеяться, но в грамотных руках нисколько...
Нужно лишь внимательно изучить ВСЕ (а их ой как не мало) ключи оптимизации и просто грамотно писать исходники.


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
SSerge
сообщение May 19 2010, 08:36
Сообщение #21


Профессионал
*****

Группа: Свой
Сообщений: 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.
Go to the top of the page
 
+Quote Post
MrYuran
сообщение May 19 2010, 09:01
Сообщение #22


Беспросветный оптимист
******

Группа: Свой
Сообщений: 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 =)
Go to the top of the page
 
+Quote Post
sigmaN
сообщение May 19 2010, 12:32
Сообщение #23


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 и прямое обращение к ней из других модулей вместо вот таких вот функций-паразитов в микроконтроллеропрограммировании smile.gif


--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post
sigmaN
сообщение May 19 2010, 17:28
Сообщение #24


I WANT TO BELIEVE
******

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



Я вот даже уже почитал авр инструкшн сэт.
Действительно непонятно почему не так?
lds r24, 0x0061
lds r25, 0x0062


--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post
sigmaN
сообщение May 19 2010, 23:42
Сообщение #25


I WANT TO BELIEVE
******

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



А ещё забавно, что похоже при любых -О приходится всё равно вручную добавлять -fwhole-program а это хорошая опция, она мне нравится! ))

И в техасовском компиляторе(с котормы я дело имел прежде) она включалась чуть ли не по дефолту(когда уровень оптимизации достаточно высок).

Но всё таки круто! Один компилятор, столько архитектур, столько языков!
Всё таки очень круто, да и бесплатно ещё! smile.gif

added: ооо, нет. не то. этот -fwhole-program это совсем не то ))


--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение May 20 2010, 07:30
Сообщение #26


Гуру
******

Группа: Свой
Сообщений: 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 - вроде даже видел какой-то проффилировщик.

Короче идёт развитие программных сред и средств, и надо это принять как должное, а не цепляться за старые мощи.
Go to the top of the page
 
+Quote Post
sigmaN
сообщение May 20 2010, 08:38
Сообщение #27


I WANT TO BELIEVE
******

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



Странно, я так и не нашел такой опции, чтобы компилятор не компилил файлы по одному, а раскатывал всю простыню как-бы в один большоооой си файл, потом проходился уже по нему оптимизатором и на выходе выдавал то, что должен.

А этот вон даже не выкидывает функции, которые ни разу не используются. Чё за ерунда. blink.gif


--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post
MrYuran
сообщение May 20 2010, 08:48
Сообщение #28


Беспросветный оптимист
******

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



Цитата(sigmaN @ May 20 2010, 12:38) *
А этот вон даже не выкидывает функции, которые ни разу не используются. Чё за ерунда. blink.gif

-ffunction-sections - помещает каждую функцию в отдельную секцию
-fdata-sections - помещает каждую переменную в отдельную секцию

Неиспользованные секции не линкуются


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
sigmaN
сообщение May 20 2010, 09:06
Сообщение #29


I WANT TO BELIEVE
******

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



Ах вот как оно тут сделано по хитрому.
А в техасе писали, что их компилятор выбрасывает все функции, которые не вызываются main(явно или не явно).

А тут вон какой прикол. Для каждой функции секция ))


--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение May 20 2010, 09:32
Сообщение #30


неотягощённый злом
******

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



Цитата(sigmaN @ May 20 2010, 12:38) *
Странно, я так и не нашел такой опции, чтобы компилятор не компилил файлы по одному, а раскатывал всю простыню как-бы в один большоооой си файл, потом проходился уже по нему оптимизатором и на выходе выдавал то, что должен.


Цитата(sigmaN @ May 20 2010, 03:42) *
added: ооо, нет. не то. этот -fwhole-program это совсем не то ))


Это как раз оно.
Да, да, да.


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post

4 страниц V  < 1 2 3 4 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 16:23
Рейтинг@Mail.ru


Страница сгенерированна за 0.01502 секунд с 7
ELECTRONIX ©2004-2016