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

 
 
3 страниц V  < 1 2 3 >  
Reply to this topicStart new topic
> WINAvr или IAR?, для тех, кто работал в обеих средах.
Karl
сообщение Aug 22 2005, 08:59
Сообщение #16


Частый гость
**

Группа: Свой
Сообщений: 179
Регистрация: 4-02-05
Пользователь №: 2 429



не стандартные, но очень удобные при разработке smile.gif.
Go to the top of the page
 
+Quote Post
BVU
сообщение Aug 22 2005, 09:43
Сообщение #17


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

Группа: Свой
Сообщений: 1 301
Регистрация: 30-11-04
Из: Россия, Н.Новгород
Пользователь №: 1 264



Цитата(Karl @ Aug 22 2005, 12:59)
не стандартные, но очень удобные при разработке smile.gif.
*


Если они Вам очень дороги как память или Вы действительно привыкли с ними работать, что просто не обойтись возьмите исходники (если таковые имеются) и перекомпилируйте в новой среде. Так поступают многие, были бы исходники! biggrin.gif
Ну а если все "плохо", приходиться делать свои. Например из-за необьятного размера кода на использование функции sprintf (форматирование в строку) мне в свое время пришлось писать свои функции - ограниченные под задачу.


--------------------
Не корысти ради, не в целях наживы, а во исполнение велений души!
Go to the top of the page
 
+Quote Post
axis
сообщение Aug 22 2005, 12:58
Сообщение #18





Группа: Новичок
Сообщений: 5
Регистрация: 8-07-05
Пользователь №: 6 645



Доброго времени, Все.

Что характерно - буржуи с avrfreaks практически не используют IAR. Вместо этого они активно юзают GCC и WinAVR.

Базару нет, что IAR круче (он ведь денег стоит) чем халявный GCC.

Только вот как быстро вы "с нуля" реализуете проект какой-нибудь "пикалки" с LCD и i2c-периферией ?

Под IAR прийдется прописывать все низкоуровневые операции самостоятельно. Да - в итоге вы будете полность контролировать код (ведь это будет ваш код). Только вот времени на это уйдет - не одна неделя.

Чем берет GCC (CodeVision, etc...) - "в них есть все, что нужно". Вы пишите только свою бизнес-логику. А весь низкоуровневый геморр отдаете на совесть разработчика компилятора. Здесь тоже есть свои минусы - ибо реализация "стандартной" (которая на самом деле как раз и включает в себя кучу полезных "фишек") библиотеки не идеальна и, как правило, содержит трудноуловимые ошибки.

И тут, как всегда, мы приходим к вопросу - так что же делать ?

Лично я на своем опыте убедился - если важно сделать быстро (дабы обойти конкурентов и предъявить хотя бы что-то) - нужно юзать CodeVision (WinAvr, Atman). Пусть и "сырое" зато уже есть. Кстати - вы вспомните как развивались продукты Microsoft...

Если времени дофига и хочется сделать "конфетку" - базара нет - только IAR.

Это ситуация на данный момент. А что будет через полгода - посмотрим.

Спасибо за внимание...
Go to the top of the page
 
+Quote Post
dxp
сообщение Aug 22 2005, 13:34
Сообщение #19


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Цитата(axis @ Aug 22 2005, 18:58)
Что характерно - буржуи с avrfreaks практически не используют IAR. Вместо этого они активно юзают GCC и WinAVR.

Ясно, денег своих платить не хотят. А кто на приличной фирме работает, для того это не проблема - три тонны баксов окупаются на той же поддержке довольно быстро.

Цитата(axis @ Aug 22 2005, 18:58)
Только вот как быстро вы "с нуля" реализуете проект какой-нибудь "пикалки" с LCD и i2c-периферией ?

Под IAR прийдется прописывать все низкоуровневые операции самостоятельно. Да - в итоге вы будете полность контролировать код (ведь это будет ваш код). Только вот времени на это уйдет - не одна неделя.

Какие низкоуровневые операции переписывать? С чего переписывать?...

Цитата(axis @ Aug 22 2005, 18:58)
Чем берет GCC (CodeVision, etc...)  - "в них есть все, что нужно". Вы пишите только свою бизнес-логику. А весь низкоуровневый геморр отдаете на совесть разработчика компилятора.

В самом GCC никаких прикладных нестандартных вещей нет - это обычный программерский пакет, такой же как и IAR. Если кто-то для него написал библиотеку, так это другое дело. Для IAR тоже много чего написано. По большому счету, совершенно не важно, для какого пакета написан код, если он написан на С/С++ и написан грамотно. Наличие в CodeVision поддержки LCD для кого-то, возможно, и является значимым плюсом, но, имхо, это просто мелкая фенька. Гораздо важнее, что кодогенерация у IAR'а заметно лучше, и вообще фичи языка IAR поддерживает несравненно лучше - взять хотя бы ++, которых у CV вообще нет (и вряд ли появятся). К тому же лично, например, предпочитаю реализовывать подобные вещи сам - разобраться надо по-любому, а собственно реализация, когда уже знаешь, что к чему, много времени и сил не занимает.

Цитата(axis @ Aug 22 2005, 18:58)
Лично я на своем опыте убедился - если важно сделать быстро (дабы обойти конкурентов и предъявить хотя бы что-то) - нужно юзать CodeVision (WinAvr, Atman). Пусть и "сырое" зато уже есть. Кстати - вы вспомните как развивались продукты Microsoft...

Если времени дофига и хочется сделать "конфетку" - базара нет - только IAR.
*

Прошу простить, но это звучит достаточно бредово. Пакет как таковой тут вообще роль играет довольно слабо. На первом месте всегда сложность прикладной задачи и квалификация разарботчика в предметной области. Это главное. На втором месте то, как разработчик владеет тем или иным инстуменатрием. Если привык к GCC, на нем сделаешь быстрее, чем на IAR', даже, если по всем признакам IAR рулит (другое дело, что в данной ситуации имеет смысл задуматься об освоении более подходящего инструмента)...

И напоследок. Вот подумайте над такой вещью. Вот надо мне кольцевой буфер. Для байтов. Вот написал я его. А потом понадобилось то же самое для целых. Или для структур. На IAR'е я напишу шаблон:

template<typename T, word size, typename S = byte>
class ring_buffer { ... }

и буду инстанцировать себе буфера:

Код
ring_buffer<char, 16> CharBuf; // колцевой буфер на 16 char
ring_buffer<int, 8>   IntBuf;  // колцевой буфер на 8 интов


IAR это позволяет. GCC тоже. А CV? И сколько нужно времени, чтобы переписывать для CV одно и то же? И надо ли? Т.ч. еще вопрос, откуда и что переписывать. И где на выходе результат быстрее получится.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Aug 23 2005, 08:32
Сообщение #20


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Что касается буржуйских форумов, то надо знать их специфику.
Там в основном всё ориентировано на бесплатное или, по крайней мере, не дорогое (AtmanAVR, например).
Во вторых, любые разговоры о лекарствах пресекаются либо модераторами либо "продвинутыми" юзерами (электрода, например).
В третьих, купившие дорогой продукт больше предпочитают общаться с производителем, т. к. он как-никак обязан.
В последних, AVRfreaks далеко не последний и далеко не лучший форум.
Go to the top of the page
 
+Quote Post
axis
сообщение Aug 23 2005, 11:26
Сообщение #21





Группа: Новичок
Сообщений: 5
Регистрация: 8-07-05
Пользователь №: 6 645



Цитата(dxp @ Aug 22 2005, 19:34)
Цитата(axis @ Aug 22 2005, 18:58)
Что характерно - буржуи с avrfreaks практически не используют IAR. Вместо этого они активно юзают GCC и WinAVR.

Ясно, денег своих платить не хотят. А кто на приличной фирме работает, для того это не проблема - три тонны баксов окупаются на той же поддержке довольно быстро.

Цитата(axis @ Aug 22 2005, 18:58)
Только вот как быстро вы "с нуля" реализуете проект какой-нибудь "пикалки" с LCD и i2c-периферией ?

Под IAR прийдется прописывать все низкоуровневые операции самостоятельно. Да - в итоге вы будете полность контролировать код (ведь это будет ваш код). Только вот времени на это уйдет - не одна неделя.

Какие низкоуровневые операции переписывать? С чего переписывать?...

Цитата(axis @ Aug 22 2005, 18:58)
Чем берет GCC (CodeVision, etc...)  - "в них есть все, что нужно". Вы пишите только свою бизнес-логику. А весь низкоуровневый геморр отдаете на совесть разработчика компилятора.

В самом GCC никаких прикладных нестандартных вещей нет - это обычный программерский пакет, такой же как и IAR. Если кто-то для него написал библиотеку, так это другое дело. Для IAR тоже много чего написано. По большому счету, совершенно не важно, для какого пакета написан код, если он написан на С/С++ и написан грамотно. Наличие в CodeVision поддержки LCD для кого-то, возможно, и является значимым плюсом, но, имхо, это просто мелкая фенька. Гораздо важнее, что кодогенерация у IAR'а заметно лучше, и вообще фичи языка IAR поддерживает несравненно лучше - взять хотя бы ++, которых у CV вообще нет (и вряд ли появятся). К тому же лично, например, предпочитаю реализовывать подобные вещи сам - разобраться надо по-любому, а собственно реализация, когда уже знаешь, что к чему, много времени и сил не занимает.

Цитата(axis @ Aug 22 2005, 18:58)
Лично я на своем опыте убедился - если важно сделать быстро (дабы обойти конкурентов и предъявить хотя бы что-то) - нужно юзать CodeVision (WinAvr, Atman). Пусть и "сырое" зато уже есть. Кстати - вы вспомните как развивались продукты Microsoft...

Если времени дофига и хочется сделать "конфетку" - базара нет - только IAR.
*

Прошу простить, но это звучит достаточно бредово. Пакет как таковой тут вообще роль играет довольно слабо. На первом месте всегда сложность прикладной задачи и квалификация разарботчика в предметной области. Это главное. На втором месте то, как разработчик владеет тем или иным инстуменатрием. Если привык к GCC, на нем сделаешь быстрее, чем на IAR', даже, если по всем признакам IAR рулит (другое дело, что в данной ситуации имеет смысл задуматься об освоении более подходящего инструмента)...

И напоследок. Вот подумайте над такой вещью. Вот надо мне кольцевой буфер. Для байтов. Вот написал я его. А потом понадобилось то же самое для целых. Или для структур. На IAR'е я напишу шаблон:

template<typename T, word size, typename S = byte>
class ring_buffer { ... }

и буду инстанцировать себе буфера:

Код
ring_buffer<char, 16> CharBuf; // колцевой буфер на 16 char
ring_buffer<int, 8>   IntBuf;  // колцевой буфер на 8 интов


IAR это позволяет. GCC тоже. А CV? И сколько нужно времени, чтобы переписывать для CV одно и то же? И надо ли? Т.ч. еще вопрос, откуда и что переписывать. И где на выходе результат быстрее получится.
*



Ответ понятен.
Теоретически все правильно и логично.

Хочу сказать за себя. Я не делаю денег на встроенных приложениях (по крайней мере сейчас) - занимаюсь этим как хобби (ибо для другого моего хобби нужны "умные" девайсы, купить которые в магазине, к сожалению, не возможно).

Так вот, примерно год назад встал вопрос - чем написать софт под Мегу128.
Выбирал между CV и IAR.

IAR понравился сразу (ибо есть большой опыт работы под Visual Studio). Начал и погряз в рутине. Может быть плохо искал, но не нашел библиотек для работы с LCD на HD44780 и периферией на i2c. А затачивать под него написанное под другие среды оказалось не проще чем писать свое. А прописывать самому эту рутину было не в кайф (этож все-таки хобби).

Поэтому пришлось смотреть в сторону CV. Да - это "вещь в себе", Но юзабельность CV на порядок превосходит IAR. Ибо достаточно функциональный проект можно забацать буквально за полчаса.
И я считаю, что в качестве инструмента DIY-содера (типа,"сделай сам") это оптимальный выбор.

IAR же птица "высокого полета" - инструмент более функциональный (с++ все-таки). Но отсутствие (поправьте если не так) поддержки стандартной периферии, делает его малопригодным для разработчика начального уровня.

Еще раз хочу подчеркнуть, что никого ни к чему не принуждаю - все вышеописанное лишь мой личный опыт. Возможно кому-то он окажется полезен.

P.S. А вот в качетстве средства отладки _ОДНОЗНАЧНО_ всем рекомендую Proteus - вещь просто супер!
Go to the top of the page
 
+Quote Post
ReAl
сообщение Aug 29 2005, 12:50
Сообщение #22


Нечётный пользователь.
******

Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417



Цитата(halfdoom @ Aug 19 2005, 07:42)
С точки зрения качества генерируемого кода IAR безусловно опережает gcc.  Буквально неделю назад собрал проект под gcc и iar: gcc 3.4.1 нагенерил 18096, а iar 2.28a  12238 байт. У обоих включена оптимизация по скорости с максимальным уровнем оптимизации.
*

GCC при -O3 (максимальная по скорости) инлайнит от себя всё, что считает нужным. Но если функция не была объявлена на уровне файла static (а, как показывают мои наблюдения, всё-таки мало кто ставит static пере функциями, которые вызываются только в данном файле), то её "основное" тело остаётся заодно с инлайновоё инкарнацией, что сильно раздувает код.
Кроме того, при -O3 автоматически включается -funroll-all-loops, что тоже сильно раздувает код.

Как правило, достаточно -O2, возможно с некоторыми доп ключами и ручное static inline для нужных коротких функций. В этом случае разница в объёме не в полтора раза, а 5-15%.

Два основных источника:
- прологи/эпилоги функций, gcc использует один стек и ему надо модифицировать каждый раз SPH,SPL, да ещё и с запретом прерываний.
- gcc как правило обращается к глобальным переменным через sts/lds, тогда как зачастую выгоднее по коду загрузить указатель и ldd/std, IAR этого не упускает.

А вот на коротких функциях с малым числом аргументов/локальных переменных (без стекового кадра) gcc действительно зачастую даёт более короткий и быстрый код.


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post
m16
сообщение Aug 29 2005, 13:17
Сообщение #23


Местный
***

Группа: Свой
Сообщений: 242
Регистрация: 27-01-05
Пользователь №: 2 225



Давно избитая тема но сравнение компиляторов всегда почему то однобокое - раз меньший объем кода генерит знач лучший. А если вопрос по другому поставить - чей код быстрее?(меньший по объему код совсем не значит что более быстрый).
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Aug 29 2005, 14:46
Сообщение #24


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Цитата(m16 @ Aug 29 2005, 16:17)
Давно  избитая  тема но  сравнение  компиляторов  всегда почему то  однобокое - раз меньший  объем кода  генерит знач лучший. А если вопрос  по  другому  поставить  - чей  код быстрее?(меньший по объему код совсем не  значит что более быстрый).
*

Это Вы однобоко читаете форум.
Зачастую два параметра: скорость и компактность присутствуют в сравнениях на одном уровне.
Go to the top of the page
 
+Quote Post
AVR
сообщение Oct 26 2005, 20:34
Сообщение #25


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



Цитата
IAR понравился сразу (ибо есть большой опыт работы под Visual Studio). Начал и погряз в рутине. Может быть плохо искал, но не нашел библиотек для работы с LCD на HD44780 и периферией на i2c.

Существуют ли готовые библиотеки функций для работы с LCD на HD44780 в среде IAR версии 4.11А?


--------------------
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Oct 27 2005, 06:26
Сообщение #26


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Цитата(AVR @ Oct 26 2005, 23:34)
Существуют ли готовые библиотеки функций для работы с LCD на HD44780 в среде IAR версии 4.11А?
*

А причём тут IAR?
Ищите просто библиотеки на C. Например на том же AVRFreaks или здесь на форуме.
Массу полезных ссылок можно найти.
Go to the top of the page
 
+Quote Post
beer_warrior
сообщение Oct 27 2005, 08:15
Сообщение #27


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

Группа: Свой
Сообщений: 1 065
Регистрация: 8-10-05
Из: Kiev, UA
Пользователь №: 9 380



Серьезным преимуществом IAR IMHO являеться более удобная работа
с флеш-памятью.
Преимуществом WinAVR (опять же IMHO), более развитая библиотека
и контроль над процессом компиляции благодаря make.
В остальном они сравнимы.


--------------------
Вони шукають те, чого нема,
Щоб довести, що його не існує.
Go to the top of the page
 
+Quote Post
dxp
сообщение Oct 27 2005, 09:41
Сообщение #28


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Цитата(beer_warrior @ Oct 27 2005, 14:15)
Серьезным преимуществом IAR IMHO являеться более удобная работа
с флеш-памятью.
Преимуществом WinAVR (опять же IMHO), более развитая библиотека
и контроль над процессом компиляции благодаря make.
В остальном они сравнимы.
*

IAR лучше avr-gcc во всем, кроме цены. Кодогенерация у него лучше, управление проще, поддержка оперативнее. Ничего не мешает использовать для сборки make (или хоть батник), чем лично я и пользуюсь.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Oct 27 2005, 10:12
Сообщение #29


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Цитата(beer_warrior @ Oct 27 2005, 11:15)
... контроль над процессом компиляции благодаря make...
*

А как по мне, так гораздо важнее результат.
Go to the top of the page
 
+Quote Post
AVR
сообщение Oct 27 2005, 20:18
Сообщение #30


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



Цитата(IgorKossak @ Oct 27 2005, 10:26)
Цитата(AVR @ Oct 26 2005, 23:34)
Существуют ли готовые библиотеки функций для работы с LCD на HD44780 в среде IAR версии 4.11А?
*

А причём тут IAR?
Ищите просто библиотеки на C. Например на том же AVRFreaks или здесь на форуме.
Массу полезных ссылок можно найти.
*


Есть ли программные эмуляторы HD44780 для IAR или AVRStudio?
Нужен такой плагин, т.к. у меня нет возможности проверить вывод на lcd на реальном железе.


--------------------
Go to the top of the page
 
+Quote Post

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

 


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


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