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

 
 
> Какую среду разработки Вы используете?
Какую среду разработки Вы преимущественно используете для своих проектов, и почему?
среда разработки (компилятор/транслятор)
AVR-Studio (atmel-avr-asm) [ 43 ] ** [17.27%]
AVR-Studio + gcc-plugins [ 12 ] ** [4.82%]
IAR-EWAVR преимуществунно (asm) [ 0 ] ** [0.00%]
IAR-EWAVR преимущественно ( C ) [ 79 ] ** [31.73%]
WinAvr (gcc) [ 33 ] ** [13.25%]
CodeVision [ 52 ] ** [20.88%]
ImageCraft-C [ 9 ] ** [3.61%]
E-LAB pascal [ 1 ] ** [0.40%]
Alhorithm Builder [ 7 ] ** [2.81%]
AVR-Basic [ 2 ] ** [0.80%]
другую [ 11 ] ** [4.42%]
Всего голосов: 249
Гости не могут голосовать 
defunct
сообщение Feb 1 2006, 21:33
Сообщение #1


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Давно мечтал услушать все "за" и "против", о популярных средах программирования для AVR uC.
Всех сред разработки я знать не могу smile.gif
поэтому если в списке Вы не нашли того с чем работаете, указывайте ее в сообщениях smile.gif

Сам я использую в основном AVR-Studio в комбинации с gcc, из-за наиболее, на мой взляд, удобного отладчика, который отображает значения переменных/регистров в всплывающих подсказках прямо в тексте отлаживаемых модулей, а также из-за эмулятора, предоставляемого разработчиком uC, доверее к которому много выше чем к эмуляторам сторонних разработчиков.

В IAR-е помоему отсутствует такая возможность, сколько не ковырялся в настройках так и не нашел где можно включить отображение значений переменных в режиме отладки, или я не прав?
Хотя код сгенерированный IAR'ом и получается меньшего объема, но удобная отладка как для меня важнее..

Сообщение отредактировал defunct - Feb 1 2006, 21:56
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Guest_Serg79_*
сообщение May 24 2006, 08:42
Сообщение #2





Guests






О чем разговор!!!
Для сборки прошивки лучше чем WinAvr(gcc) вы не найдете.
Для написания кода и отладки, связка AVR-Studio + gcc-plugins да плюс JTAG это все что нужно.
А кто знает что такое Linux, так ему и объяснять не надо что такое 'gcc' и как он может код оптемизировать хоть по размеру, хоть по быстродействию.

CodeVision просто отстой, то что он делает с указателями не поддается описанию, один ужас. Он даже не знает, что такая каманда у AVR есть как ( ICALL ). А как он код раздувает, просто ужас, и быстродействие его просто ужасное.

IAR-EWAVR на счет того что он быстрее и компактнее тоже заблуждение.

У 'gcc' один минус, он тяжелый для новичков, особенно когда надо вставку на 'asm' сделать, их это вводит просто в ступор :-). Но что либо гибче чем gcc просто не сушествует.

Кто мне не верит, пускай посмотрит как каждый компилятор пишет на 'asm' тогда убедиться, что лучше 'gcc' ему ни чего не найти.
Go to the top of the page
 
+Quote Post
dxp
сообщение May 24 2006, 09:50
Сообщение #3


Adept
******

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



Цитата(Serg79 @ May 24 2006, 15:42) *
IAR-EWAVR на счет того что он быстрее и компактнее тоже заблуждение.

IAR EWAVR дает более компактный и быстрый код! Спорить не надо, это проверено неоднократно. Для компактности кода AVR-GCC должен для начала научиться почаще пользоваться косвенной адресацией, а не лепить везде lds/sts, а для скорости - ввести все же раздельные стеки для данных и адресов возвратов, чтобы не геморроиться с подготовкой стекового кадра в каждой функции. Этот же момент напрямую влияет и на размер кода. Если и еще вопросы, но эти два - основные.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
Guest_Serg79_*
сообщение May 24 2006, 11:00
Сообщение #4





Guests






Цитата(dxp @ May 24 2006, 13:50) *
Цитата(Serg79 @ May 24 2006, 15:42) *

IAR-EWAVR на счет того что он быстрее и компактнее тоже заблуждение.

IAR EWAVR дает более компактный и быстрый код! Спорить не надо, это проверено неоднократно. Для компактности кода AVR-GCC должен для начала научиться почаще пользоваться косвенной адресацией, а не лепить везде lds/sts, а для скорости - ввести все же раздельные стеки для данных и адресов возвратов, чтобы не геморроиться с подготовкой стекового кадра в каждой функции. Этот же момент напрямую влияет и на размер кода. Если и еще вопросы, но эти два - основные.

О чем Ты говоришь:
// используем 'lds'
lds r18,$01FF ( 2-такта, 4-байта )

// используем косвенное чтение
ldi r26,$FF ( 1-такт, 2-байта )
ldi r27,$01 ( 1-такт, 2-байта ) // подготавливаем Х
ld r18,X ( 2-такта, 2-байта )
//Вот и смотри что быстрее и компактнее.

На счет использования стека:
параметры в функцию передаются через регистры r25-r8, если не хватает передается через стек (исключение: функции с переменным количеством аргументов (printf()) всегда через стек).
Возврашает значение: 8-бит в r24 (не r25!), 16-бит в r25:r24, 32-бита в r22-r25, 64-бита в r18-r25.
Регистры которые можно свободно использовать (r18-r27, r30-r31), которые следует сохранять (r2-r17, r28-r29) если их используешь.

А уж с указателями 'gcc' работать сам кого хочешь научит, и не использует для этого вызовы сервисных функций.

А что ты называешь стековым кадром, наверное только тебе известно.
На счет отдельного стека для данных это полный маразм. Выделять отдельный указательный регистр (X, Y или Z) для ведения стека данных (в CodeVision используется для этих целей Y) это полное расточительство и дополнительный код и время на его обслуживание.

Если есть что возразить, Я слущаю.
Go to the top of the page
 
+Quote Post
dxp
сообщение May 24 2006, 13:23
Сообщение #5


Adept
******

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



Цитата(Serg79 @ May 24 2006, 18:00) *
О чем Ты говоришь:
// используем 'lds'
lds r18,$01FF ( 2-такта, 4-байта )

// используем косвенное чтение
ldi r26,$FF ( 1-такт, 2-байта )
ldi r27,$01 ( 1-такт, 2-байта ) // подготавливаем Х
ld r18,X ( 2-такта, 2-байта )
//Вот и смотри что быстрее и компактнее.

Ок, теперь напишем аналогичный код обращения к памяти для int, long, float, int* и т.д. и т.п. - для типов, у которых sizeof(type) >= 2. И посмотрим, к каким объектам в реальной программе идет обращение. К 8-битным или более? Вы с IAR'ом-то работали реально? Возьмите какую-нить программку и скомпилите в том и другом. Результат сравните. Я в свое время сравнивал, AVR-GCC был 2.95 и какой-то из 3.хх, поведение в них одинаково. У IAR с версий 2.хх появилась весьма неплохая оптимизация Clustering variables, когда компилятор складывает переменные, к которым идет смежное обращение, рядом, что позволяет только ОДИН раз загрузить БАЗОВЫЙ (для всех них) адрес и обращаться к ним со смещением ldd/std. Экономия выходит весьма ничего себе!

В общем, я в свое время сравнение проводил, причины исследовал, имею основания так считать. Другие люди тоже сравнивали - пришли к такому же выводу. Даже в этом форуме приводили примеры по размеру кода - IAR всегда выигрывал с заметным отрывом.


Цитата(Serg79 @ May 24 2006, 18:00) *
На счет использования стека:
...
А что ты называешь стековым кадром, наверное только тебе известно.
На счет отдельного стека для данных это полный маразм. Выделять отдельный указательный регистр (X, Y или Z) для ведения стека данных (в CodeVision используется для этих целей Y) это полное расточительство и дополнительный код и время на его обслуживание.

Если есть что возразить, Я слущаю.

Если Вы не знаете, что такое стековый кадр у avr-gcc, то я Вам сочувствую. Хорошо, объясню: у AVR совершенно убогий указатель стека (SP), он не позволяет эффективно работать с данными в стеке, он не умеет адресоваться со смещением, он не поддерживает эффективных операций адресной арифметики. Поэтому эффективным решением проблемы было выделение под указатель стека данных одного из аппаратных указателей - например, Y. Что и сделала IAR. Конечно, укзателя жаль, тем более, что нормальных их там всего два. В этом состоит еще один кривой момент AVR. Наличие нормального указателя стека позволяет эффективно работать с данными в стеке - локальными объектами и аргументами, которые не влезли в регистр и переданы через стек. В AVR-GCC пошли по традиционному пути и получают весь геморрой от этого - при входе в функцию, если надо эффективно поработать с данными в стеке, значение указателя стека копируется в тот же самый Y-pointer и работа происходит уже с ним. При копировании SP в Y еще и надо прерывания запрещать (а после копирования восстаноавливать значение бита глобального разрешения прерываний, т.е. помещать этот код в критическую секцию), чтобы эта неатомарная операция не была прервана каким-нибудь прерыванием и не нарушилась целостность работы программы. Это дополнительные накладные расходы и по коду, и по быстродействию... Как же Вы работаете с AVR-GCC, если всего этого не знаете? Я вот не работаю, а только исследовал причины проигрыша AVR-GCC IAR'у, и то об этом знаю! Будете дальше спорить?


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- defunct   Какую среду разработки Вы используете?   Feb 1 2006, 21:33
- - haker_fox   Использую IAR EWAVR 4.11A + AVRStudio: код, как вы...   Feb 2 2006, 00:18
|- - defunct   Цитата(haker_fox @ Feb 2 2006, 02:18) Исп...   Feb 2 2006, 04:44
|- - haker_fox   Цитата(defunct @ Feb 2 2006, 12:44) Цитат...   Feb 2 2006, 05:00
- - Proton   Счмтаю что нужно добавить IAR EWAVR + AVRStudio та...   Feb 2 2006, 04:52
- - Георгий   IAR EWAVR + AVRStudio   Feb 2 2006, 05:29
- - dxp   Проекты смешанные C++/Asm с подавляющей по объему ...   Feb 2 2006, 07:17
- - BVU   Однозначно IAR-EWAVR ( C ), но для полноты списка ...   Feb 2 2006, 07:36
- - unichorn   WinAVR + AVR-Studio + Cpp Builder   Feb 2 2006, 07:41
- - muravei   Использую Алгоритм билдер, устраивает симулятор.   Feb 2 2006, 07:54
- - IgorKossak   Поскольку использую IAR EWAVR + JTAG эмулятор, то ...   Feb 2 2006, 08:08
|- - defunct   Цитата(IgorKossak @ Feb 2 2006, 10:08) По...   Feb 2 2006, 09:21
|- - IgorKossak   Цитата(defunct @ Feb 2 2006, 11:21) ... в...   Feb 2 2006, 09:30
- - Polaris   Использую CodeVision + AVRStudio. Да, есть глюки в...   Feb 2 2006, 08:27
- - Rash   Использую IAR EWAVR + JTAG mk2 эмулятор, а AVR Stu...   Feb 2 2006, 08:32
- - ALexx   Изначально пошел по пути CodeVision+VMLab, о чем е...   Feb 2 2006, 13:10
- - MakSV   Использую IAR EWAVR 4.11A + AVRStudio, удобно и на...   Feb 2 2006, 15:02
- - zltigo   Цитата(dxp @ Feb 2 2006, 09:17) В качеств...   Feb 2 2006, 15:16
- - artStinger   Для написания использую MED - programmer's tex...   Feb 2 2006, 16:37
- - beer_warrior   gcc адназначна. 1.полный тулчейн под avr msp arm w...   Feb 2 2006, 17:49
- - Old1   Использую EWAVR 4.12 (evaluation) от IAR (компилят...   Feb 3 2006, 08:29
|- - defunct   Цитата(Old1 @ Feb 3 2006, 10:29) Пример т...   Feb 3 2006, 18:36
|- - Old1   Цитата(defunct @ Feb 3 2006, 22:36) Цитат...   Feb 4 2006, 13:24
|- - dxp   Цитата(Old1 @ Feb 4 2006, 19:24) Представ...   Feb 6 2006, 11:04
|- - Old1   Цитата(dxp @ Feb 6 2006, 14:04) Зачем это...   Feb 6 2006, 18:14
- - sseett   Начинал с AVR-Studio (atmel-avr-asm), но случайно...   Feb 7 2006, 08:52
|- - IgorKossak   Цитата(sseett @ Feb 7 2006, 10:52) ... К...   Feb 7 2006, 17:15
- - SasaVitebsk   Цитата(haker_fox @ Feb 2 2006, 04:18) В п...   Feb 7 2006, 22:55
|- - vesago   Цитата(SasaVitebsk @ Feb 8 2006, 01:55) Ц...   Jul 24 2006, 07:05
- - NightCat   Можно глупый вопрос? Есть какие-то еще "ну оч...   Feb 18 2006, 18:17
|- - defunct   Цитата(NightCat @ Feb 18 2006, 20:17) Ест...   Feb 18 2006, 18:41
- - ArtemK   После опробывания в качестве компилятора win-avr, ...   Feb 20 2006, 07:05
- - гигипотамм   Code Vision   Feb 25 2006, 13:51
- - Proton   zltigo Это точно он([banned]). После того как две...   May 23 2006, 15:12
- - Andy Great   Crossworks from Rowley   May 23 2006, 16:22
- - Сергей Борщ   ИАР через JTAG, еслои JTAG нет - мигание светодиод...   May 23 2006, 16:49
|- - defunct   Цитата(Сергей Борщ @ May 23 2006, 19:49) ...   May 23 2006, 17:06
|- - ilya514   Цитата(defunct @ May 23 2006, 20:06) Цита...   May 23 2006, 17:16
||- - defunct   Цитата(ilya514 @ May 23 2006, 20:16) Прос...   May 23 2006, 17:33
||- - Сергей Борщ   Цитата(defunct @ May 23 2006, 20:33) Цита...   May 23 2006, 18:11
||- - ilya514   [quote name='defunct' date='May 23 200...   May 23 2006, 18:19
|- - Сергей Борщ   Цитата(defunct @ May 23 2006, 20:06) Цита...   May 23 2006, 17:27
- - bodja74   А я AVR-Studio из за дизасемблера люблю,можно ...   May 23 2006, 17:44
- - Proton   ЦитатаA_Bolshev Дата Сегодня, 07:49 все тоже + ...   May 24 2006, 03:57
- - BigBolt   Опрос показывает, что наиболее популярными являютс...   May 24 2006, 08:22
|- - Rst7   Цитата(Serg79 @ May 24 2006, 14:00) О чем...   May 24 2006, 12:28
||- - bodja74   Цитата(Rst7 @ May 24 2006, 15:28) Только ...   May 24 2006, 12:51
|- - _Bill   Цитата(Serg79 @ May 24 2006, 14:00) А что...   May 24 2006, 13:03
- - VladimirZ   В основном CrossWorks+Jtag, симуляторам предпочита...   May 24 2006, 10:11
- - beer_warrior   Тут как говориться дело вкуса и привычки. я наприм...   May 24 2006, 12:38
|- - _Bill   Цитата(beer_warrior @ May 24 2006, 15:38)...   May 24 2006, 12:44
- - beer_warrior   2 DXP Все верно, однако... Не вижу я большой в это...   May 24 2006, 13:51
|- - defunct   Цитата(beer_warrior @ May 24 2006, 16:51)...   May 24 2006, 14:44
|- - dxp   Цитата(beer_warrior @ May 24 2006, 20:51)...   May 25 2006, 04:33
- - beer_warrior   ЦитатаНа мой взгляд, единственное неоспоримое преи...   May 24 2006, 16:12
- - beer_warrior   ЦитатаЯ лишь спорил с утверждением, что AVR-GCC ге...   May 25 2006, 05:53
|- - dxp   Цитата(beer_warrior @ May 25 2006, 12:53)...   May 25 2006, 07:23
|- - zltigo   Цитата(dxp @ May 25 2006, 10:23) ...любой...   May 25 2006, 08:07
- - Старый Бабай   Пользую GCC в связке с AVRStudio   May 25 2006, 12:48
- - beer_warrior   quote]Совсем плохо. Вывод - работать, видимо, надо...   May 25 2006, 13:57
|- - dxp   Цитата(beer_warrior @ May 25 2006, 20:57)...   May 26 2006, 03:58
- - Nanobyte   Большинство проектов выполнял на ASM, из плюсов - ...   May 25 2006, 14:32
- - beer_warrior   Цитата(SasaVitebsk @ May 25 2006, 21:41) * А каки...   May 25 2006, 21:07
- - beer_warrior   Итак наш ответ Чемб... простите DXP IAR и WinAVR у...   May 25 2006, 21:55
- - beer_warrior   Листинги   May 25 2006, 23:49
- - 733259   А вот что у меня получилосьЦитатаavr-gcc -g -Wall ...   May 26 2006, 03:03
|- - dxp   Цитата(733259 @ May 26 2006, 10:03) А вот...   May 26 2006, 04:23
- - 733259   В avr-gcc 4.0.3 - 118 байт, выше был 3.4.6   May 26 2006, 05:46


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

 


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


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