|
Какую среду разработки Вы используете? |
|
|
|
Feb 1 2006, 21:33
|

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

|
Давно мечтал услушать все "за" и "против", о популярных средах программирования для AVR uC. Всех сред разработки я знать не могу  поэтому если в списке Вы не нашли того с чем работаете, указывайте ее в сообщениях  Сам я использую в основном AVR-Studio в комбинации с gcc, из-за наиболее, на мой взляд, удобного отладчика, который отображает значения переменных/регистров в всплывающих подсказках прямо в тексте отлаживаемых модулей, а также из-за эмулятора, предоставляемого разработчиком uC, доверее к которому много выше чем к эмуляторам сторонних разработчиков. В IAR-е помоему отсутствует такая возможность, сколько не ковырялся в настройках так и не нашел где можно включить отображение значений переменных в режиме отладки, или я не прав? Хотя код сгенерированный IAR'ом и получается меньшего объема, но удобная отладка как для меня важнее..
Сообщение отредактировал defunct - Feb 1 2006, 21:56
|
|
|
|
|
 |
Ответов
Guest_Serg79_*
|
May 24 2006, 08:42
|
Guests

|
О чем разговор!!! Для сборки прошивки лучше чем WinAvr(gcc) вы не найдете. Для написания кода и отладки, связка AVR-Studio + gcc-plugins да плюс JTAG это все что нужно. А кто знает что такое Linux, так ему и объяснять не надо что такое 'gcc' и как он может код оптемизировать хоть по размеру, хоть по быстродействию.
CodeVision просто отстой, то что он делает с указателями не поддается описанию, один ужас. Он даже не знает, что такая каманда у AVR есть как ( ICALL ). А как он код раздувает, просто ужас, и быстродействие его просто ужасное.
IAR-EWAVR на счет того что он быстрее и компактнее тоже заблуждение.
У 'gcc' один минус, он тяжелый для новичков, особенно когда надо вставку на 'asm' сделать, их это вводит просто в ступор :-). Но что либо гибче чем gcc просто не сушествует.
Кто мне не верит, пускай посмотрит как каждый компилятор пишет на 'asm' тогда убедиться, что лучше 'gcc' ему ни чего не найти.
|
|
|
|
Guest_Serg79_*
|
May 24 2006, 11:00
|
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) это полное расточительство и дополнительный код и время на его обслуживание. Если есть что возразить, Я слущаю.
|
|
|
|
|
May 24 2006, 12:28
|

Йа моск ;)
     
Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610

|
Цитата(Serg79 @ May 24 2006, 14:00)  О чем Ты говоришь: // используем 'lds' lds r18,$01FF ( 2-такта, 4-байта )
// используем косвенное чтение ldi r26,$FF ( 1-такт, 2-байта ) ldi r27,$01 ( 1-такт, 2-байта ) // подготавливаем Х ld r18,X ( 2-такта, 2-байта ) //Вот и смотри что быстрее и компактнее. Только попробуйте пару переменных почитать/пописать в иаре - он (ИАР) их обычно старается рядом положить и работать через Z+смещение, загрузив Z _ОДИН_ раз. Далее все быстро и качественно.Гнусю, к сожалению, такое слабо. Цитата На счет использования стека: параметры в функцию передаются через регистры 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) это полное расточительство и дополнительный код и время на его обслуживание.
Если есть что возразить, Я слущаю. Отдельный регистр - это к сожалению хрень. Однако, создавать каждый раз в стеке фрейм, как это делает GCC, очень плохо. Т.е. палка о двух концах - хотя при малом объеме локальных переменных освобождается один индекс (в GCC), как только локальные вары перестают лезть в регистры - начинается волшебство  да такое страшное  . Вообщем, это больше проблемы архитектуры AVR, а каждый компилятор решает ее по своему... В среднем, на больших проектах, IAR лучше GCC. Хотя, можно извратиться так, что GCC окажется на первом месте
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
May 24 2006, 12:51
|
Знающий
   
Группа: Свой
Сообщений: 543
Регистрация: 22-10-05
Пользователь №: 9 984

|
Цитата(Rst7 @ May 24 2006, 15:28)  Только попробуйте пару переменных почитать/пописать в иаре - он (ИАР) их обычно старается рядом положить и работать через Z+смещение, загрузив Z _ОДИН_ раз. Далее все быстро и качественно.Гнусю, к сожалению, такое слабо. ld r18,Z+ или ld r18,Z+k
|
|
|
|
Сообщений в этой теме
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   _Bill Цитата(Serg79 @ May 24 2006, 14:00) А что... May 24 2006, 13:03   dxp Цитата(Serg79 @ May 24 2006, 18:00) О чем... May 24 2006, 13:23 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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|