Например TDA7294

Форум РадиоКот • Просмотр темы - Помогите с выбором Компилятора ! Для AVR на языке Си !
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Ср сен 10, 2025 06:22:23

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 34 ]  1,  
Автор Сообщение
Не в сети
 Заголовок сообщения: Помогите с выбором Компилятора ! Для AVR на языке Си !
СообщениеДобавлено: Ср фев 20, 2013 12:56:51 
Первый раз сказал Мяу!

Зарегистрирован: Вс ноя 25, 2012 13:57:12
Сообщений: 24
Рейтинг сообщения: 0
Собираюсь изучать программирование AVR на языке Си (Ассемблер я так понял можно будет изучить потом, так как он посложней язык).
И столкнулся с такой проблемой:
Как выбор компилятора AVR studio 5 или CodeVision AVR или WinAVR
Так как я Новичок. Подскажите в чем мне программировать и какая в этих компиляторах разница ???


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите с выбором Компилятора ! Для AVR на языке Си !
СообщениеДобавлено: Ср фев 20, 2013 13:49:05 
Мучитель микросхем
Аватар пользователя

Карма: 1
Рейтинг сообщений: 5
Зарегистрирован: Вс янв 15, 2012 19:58:40
Сообщений: 454
Рейтинг сообщения: 0
Ну ежели для баловства то можно CodeVision AVR.
Ну а если не в игрушки играть, то видимо WinAVR.

_________________
Ни один домашний кот незнает что он домашний.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите с выбором Компилятора ! Для AVR на языке Си !
СообщениеДобавлено: Ср фев 20, 2013 15:08:11 
Открыл глаза

Зарегистрирован: Вс апр 17, 2011 11:33:26
Сообщений: 49
Рейтинг сообщения: 0
Лучше начать с ассемблера, а затем перейти на Си.
Чтобы использовать ассемблерные вставки в программах на Си.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите с выбором Компилятора ! Для AVR на языке Си !
СообщениеДобавлено: Ср фев 20, 2013 15:52:33 
Опытный кот

Карма: 1
Рейтинг сообщений: 52
Зарегистрирован: Чт мар 12, 2009 16:31:05
Сообщений: 804
Рейтинг сообщения: 0
radiokot__ писал(а):
Ну ежели для баловства то можно CodeVision AVR.
Ну а если не в игрушки играть, то видимо WinAVR.


У всех "спецов" я спрашиваю один вопрос -"
Не могли бы в двух словах обозначить,отсутствие каких функций или типов данных Вас расстраивает CVAVR?" и никак не могу добиться внятного ответа.Только ссылки на каких-то "очень уважаемых" спецов,которым не верить - преступление.Может Вы просветите.
Хотя мне всё равно,какой диалект языка С использовать.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите с выбором Компилятора ! Для AVR на языке Си !
СообщениеДобавлено: Ср фев 20, 2013 16:38:12 
Мучитель микросхем
Аватар пользователя

Карма: 1
Рейтинг сообщений: 5
Зарегистрирован: Вс янв 15, 2012 19:58:40
Сообщений: 454
Рейтинг сообщения: 0
Вы видите разницу между трёхколёсным велосипедом и спортивным?
Что у одного есть и колёса и шины и педали, но почему-то спотсмены катаются на спортивных, а дети на трёхколёсном.
Так-же и сдесь.

_________________
Ни один домашний кот незнает что он домашний.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите с выбором Компилятора ! Для AVR на языке Си !
СообщениеДобавлено: Ср фев 20, 2013 16:39:39 
Первый раз сказал Мяу!

Зарегистрирован: Вс ноя 25, 2012 13:57:12
Сообщений: 24
Рейтинг сообщения: 0
radiokot__ Спасибо Вам за ответ, мне понравилось как вы ответили.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите с выбором Компилятора ! Для AVR на языке Си !
СообщениеДобавлено: Ср фев 20, 2013 20:30:03 
Прорезались зубы
Аватар пользователя

Карма: 6
Рейтинг сообщений: 33
Зарегистрирован: Чт янв 13, 2011 18:54:29
Сообщений: 242
Откуда: Минск
Рейтинг сообщения: 0
radiokot__ писал(а):
Вы видите разницу между трёхколёсным велосипедом и спортивным?
Что у одного есть и колёса и шины и педали, но почему-то спотсмены катаются на спортивных, а дети на трёхколёсном.
Так-же и сдесь.

:music: Очень распальцованно вы ответили. А конкретно пшик.

_________________
Учиться, учиться, ...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите с выбором Компилятора ! Для AVR на языке Си !
СообщениеДобавлено: Ср фев 20, 2013 20:37:54 
Сверлит текстолит когтями
Аватар пользователя

Карма: 22
Рейтинг сообщений: 81
Зарегистрирован: Пн дек 08, 2008 10:58:48
Сообщений: 1262
Откуда: Винница
Рейтинг сообщения: 0
конкретно - юнионы там появились, начиная с версии 2.3.4 - до нее ими там и не пахло.
Формат long у меня в каких-то ситуациях становился двухбайтовым, я не спорю, может так и задумывалось.
По поводу мат вычислений - много буков, имхо, ОЧЕНЬ сильно проигрывает винавр.
А так ничего, можно работать, если не пользоваться встроенными стандартными библиотеками, которые единолично пожирают ресурсы контроллера.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите с выбором Компилятора ! Для AVR на языке Си !
СообщениеДобавлено: Ср фев 20, 2013 22:03:50 
Первый раз сказал Мяу!

Зарегистрирован: Вс ноя 25, 2012 13:57:12
Сообщений: 24
Рейтинг сообщения: 0
И еще подскажите мне в AVR Studio 5 есть проект AVRGCC С Executable Project он и есть WinAVR ?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите с выбором Компилятора ! Для AVR на языке Си !
СообщениеДобавлено: Ср фев 20, 2013 23:10:51 
Опытный кот
Аватар пользователя

Карма: 8
Рейтинг сообщений: 65
Зарегистрирован: Пн янв 10, 2011 03:06:36
Сообщений: 736
Откуда: Ростов-на-Дону
Рейтинг сообщения: 0
BGert писал(а):
Как выбор компилятора AVR studio 5 или CodeVision AVR или WinAVR
...какая в этих компиляторах разница ???
Во-первых, из перечисленных вариантов выбора AVR Studio не является компилятором, это всего лишь интегрированная среда разработки (IDE), "оболочка", к которой можно "прикрутить" в принципе любой компилятор, вызываемый из командной строки. Ранниее версии AVR Studio делались на доморощенной платформе Atmel, затем им надоело изобретать велосипеды, и они взяли за основу "пустую" заготовку от Microsoft Visual Studio. В комплект поставки по умолчанию подключен toolchain WinAVR, но, как уже говорилось, можно подключить любой другой toolchain, если сочтете целесообразным.

В принципе с тем же успехом можно выбрать и другую оболочку, например, ту же Eclipse (см. соответствующую тему в этой ветке). Плюсы и минусы каждого варианта - предмет отдельного обсуждения, просто имейте в виду, что на AVR Studio (она же с недавних пор Microsoft Visual Studio) свет клином не сошелся.

Из оставшихся двух: с CodeVision, пожалуй, проще начинать, к тому же там имеются "визарды", генерирующие код работы со встроенными устройствами чуть не на любой случай жизни (качество этого кода - отдельный вопрос, как уже упоминалось в теме, но в принципе работает). Совместимость диалекта языка C с другими реализациями компиляторов C (а главное, со стандартом) не ахти. Если планируете долгое время работать только с AVR и только в CodeVision, Вас это может и не слишком огорчить. Еще есть некоторые сомнения, станут ли lint и ему подобные (например, splint) работать с диалектом CodeVision. На практике не проверял, впрочем; может, и обойдется.

WinAVR базируется на версии GCC для AVR, и этим все сказано. Сегодня трудно сказать, GCC ли пишут по стандарту или стандарт подгоняют под GCC, но с соответствием там все довольно неплохо. Кроме того, GCC реализован для огромного количества процессоров, так что сменить аппаратную платформу при необходимости будет гораздо проще (например, решите впоследствии перейти на ARM). Кроме того, GCC имеется и для IBM PC (под Windows и Linux), поэтому более 90% кода сможете выполнить (и протестировать) на своей персоналке, даже не прошивая его контроллер. Еще один фактор - при желании перейти на Linux практически ничего для Вас не изменится, в случае же CodeVision возможны проблемы (личо мне не попадались версии для других ОС, кроме Windows).

Вот Вам вкратце основные плюсы и минусы, окончательный выбор за Вами.

_________________
Любой дурак может писать код. Настоящий профессионал - это тот, кто способен постоянно создавать продукт высокого качества, укладываясь при этом в бюджет.
J. Ganssle


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите с выбором Компилятора ! Для AVR на языке Си !
СообщениеДобавлено: Ср фев 20, 2013 23:17:45 
Опытный кот

Карма: 1
Рейтинг сообщений: 52
Зарегистрирован: Чт мар 12, 2009 16:31:05
Сообщений: 804
Рейтинг сообщения: 0
radiokot__ писал(а):
Вы видите разницу между трёхколёсным велосипедом и спортивным?


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



Цитата:
подобные (например, splint) работать с диалектом CodeVision. На практике не проверял


Что-то из темы -"Не читал,но осуждаю"(с).


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите с выбором Компилятора ! Для AVR на языке Си !
СообщениеДобавлено: Ср фев 20, 2013 23:33:16 
Прорезались зубы
Аватар пользователя

Карма: 6
Рейтинг сообщений: 33
Зарегистрирован: Чт янв 13, 2011 18:54:29
Сообщений: 242
Откуда: Минск
Рейтинг сообщения: 0
urry писал(а):
конкретно - юнионы там появились, начиная с версии 2.3.4 - до нее ими там и не пахло.
А так ничего, можно работать, если не пользоваться встроенными стандартными библиотеками, которые единолично пожирают ресурсы контроллера.

Странно, порылся в своих старых сырцах:
Код:
CodeWizardAVR V1.25.9 Professional
/* union declaration*/
union my_int {                         
             unsigned int word;
             unsigned char byt[2];
             }perem;
/* union declaration*/
union my_long_int {                         
                  unsigned long int wes;
                  unsigned char byt_wes[4];
                  }my;

_________________
Учиться, учиться, ...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите с выбором Компилятора ! Для AVR на языке Си !
СообщениеДобавлено: Ср фев 20, 2013 23:37:59 
Первый раз сказал Мяу!

Зарегистрирован: Вс ноя 25, 2012 13:57:12
Сообщений: 24
Рейтинг сообщения: 0
Goldsmith писал(а):
В принципе с тем же успехом можно выбрать и другую оболочку, например, ту же Eclipse (см. соответствующую тему в этой ветке). Плюсы и минусы каждого варианта - предмет отдельного обсуждения, просто имейте в виду, что на AVR Studio (она же с недавних пор Microsoft Visual Studio) свет клином не сошелся.

Озадачили вы меня ) Сейчас почитаю соответствующею ветку. А вот ваши слова "на AVR Studio свет клином не сошелся" мне понравились.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите с выбором Компилятора ! Для AVR на языке Си !
СообщениеДобавлено: Ср фев 20, 2013 23:52:32 
Говорящий с текстолитом
Аватар пользователя

Карма: 8
Рейтинг сообщений: 212
Зарегистрирован: Чт июн 10, 2010 20:11:19
Сообщений: 1525
Рейтинг сообщения: 0
Начинать полюбому лучше с ассемблера чтения документации, уже после этого ассемблер. Не для использования вставок, разумеется а для понимания функционирования контроллера (что такое стек, разрядность переменных, скорость выполнения, работа подпрограмм и тому подобное).
Потом можно браться за языки высокого уровня: Наиболее распространен Си но встречаются извращенцы и С++ и Pascal и даже Basic, выбор языка - на ваш вкус.
Что-то говорили о портируемости... Вряд ли портировать С-код намного проще чем ассемблерный, уж больно много места занимают непосредственное использование регистров и прочего платформо-зависимого. И даже avr-gcc не совсем совместим со стандартом языка C (хотя бы обращения к различным областям памяти - flash, SRAM, EEPROM - функции отличаются)
Именно про avr-gcc vs cvavr: несмотря на те же костыли для работы с флешом, avr-gcc гораздо ближе к реализации стандарта Си. После некоторого времени программирования для компьютера конструкции PORTD.5 вызывают довольно сильную неприязнь. Библиотеки cvavr ("не читал но осуждаю", да) используют наиболее универсальную реализацию. Соответственно без использования прерываний, таймеров и прочих полезных вещей. Насчет надежности говорить не буду, наверняка не меньше чем у самописных а куда как больше. Зато, например, чтобы получить байт от UART'а придется тормозить весь камень, нехорошо-с. Хотя, конечно, никто не возбраняет переписать с нуля.
Цитата:
В CVAVR,к примеру, можно отметить участки кода,в которых будет отключена оптимизация при компиляции.
что-то подобное volatile?
Цитата:
Еще один фактор - при желании перейти на Linux практически ничего для Вас не изменится
Ну это смотря как программировать. Мне было неудобно отказываться от подсказок AVRStudio и программатора с графическим интерфейсом. Но это скорее дело привычки. А так да, avr-gcc(Си), avra (ассемблер), avrdude(программатор, причем во много раз универсальнее AVRProg'a) вполне достаточно.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите с выбором Компилятора ! Для AVR на языке Си !
СообщениеДобавлено: Чт фев 21, 2013 00:42:09 
Опытный кот
Аватар пользователя

Карма: 8
Рейтинг сообщений: 65
Зарегистрирован: Пн янв 10, 2011 03:06:36
Сообщений: 736
Откуда: Ростов-на-Дону
Рейтинг сообщения: 0
COKPOWEHEU писал(а):
Что-то говорили о портируемости... Вряд ли портировать С-код намного проще чем ассемблерный, уж больно много места занимают непосредственное использование регистров и прочего платформо-зависимого.
Очень многое зависит не столько от языка, сколько от стиля... даже не программирования, а проектирования программы. Если код представляет собой месиво из перемежающихся строк бизнес-логики и низкоуровневой работы с периферией, то да, большой разницы нет - придется лазить по всему коду и править. Впрочем, с таким кодом головной боли и без портирования хватит (например, попробуйте его более-менее полноценно протестировать; подвиг, достойный Геракла).

Если бизнес-логика аккуратно отделена от жонглирования битами в портах, тут все попроще. Если же вся аппаратная зависимость сосредоточена в тонкой прослойке HAL, объем работ минимален. Люди Linux таскают с платформы на платформу, а мы тут с несчастным дрыганьем битов в портах проблемы создаем на пустом месте...

IMHO превосходная практика - использование паттерна MCH (близкий аналог паттернов MVC и MVP из мира десктопных приложений). Примеры применения: "Развитие в направлении разработки встроенных систем", "Эффективная разработка встроенного ПО через тестирование".

COKPOWEHEU писал(а):
Цитата:
Еще один фактор - при желании перейти на Linux практически ничего для Вас не изменится
Ну это смотря как программировать. Мне было неудобно отказываться от подсказок AVRStudio и программатора с графическим интерфейсом.
Я бы даже сказал, "смотря что понимать под программированием". Если сам процесс заливки кода в кристалл, то да, все выглядит по-другому. Если в более широком смысле (как весь процесс разработки от сбора требований до выпуска релиза), то разница в наборе кнопочек редактора и подсказках среды большой погоды не делает. Опять же, дело вкуса.

Лично мне, наоборот, не слишком комфортно было регулярно прыгать из Studio, где производится собственно кодирование, в StarUML, где ведется проектирование программы, и обратно. Не нашел ничего подходящего для работы с UML в среде Studio. А вот для Eclipse быстро нашелся подходящий плагин, и теперь проект действительно интегрирован, а не раскидан по разным файлам. Опять же - без жесткой привязки к ОС...

_________________
Любой дурак может писать код. Настоящий профессионал - это тот, кто способен постоянно создавать продукт высокого качества, укладываясь при этом в бюджет.
J. Ganssle


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите с выбором Компилятора ! Для AVR на языке Си !
СообщениеДобавлено: Чт фев 21, 2013 01:22:40 
Опытный кот
Аватар пользователя

Карма: 8
Рейтинг сообщений: 65
Зарегистрирован: Пн янв 10, 2011 03:06:36
Сообщений: 736
Откуда: Ростов-на-Дону
Рейтинг сообщения: 0
Vov123 писал(а):
Цитата:
подобные (например, splint) работать с диалектом CodeVision. На практике не проверял
Что-то из темы -"Не читал,но осуждаю"(с).
Просто предупредил о возможных проблемах, поскольку лично не убедился в работоспособности их совместной работы. Поэтому с удовольствием выслушаю мнение того, кто читал и осуждает (или аплодирует в экстазе, неважно; главное, что имеет реальный опыт).

Как splint в действительности относится к особенностям синтаксиса CodeVision?

_________________
Любой дурак может писать код. Настоящий профессионал - это тот, кто способен постоянно создавать продукт высокого качества, укладываясь при этом в бюджет.
J. Ganssle


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите с выбором Компилятора ! Для AVR на языке Си !
СообщениеДобавлено: Чт фев 21, 2013 05:31:31 
Мудрый кот
Аватар пользователя

Карма: 24
Рейтинг сообщений: 286
Зарегистрирован: Чт июн 10, 2010 08:55:35
Сообщений: 1810
Откуда: Сибирские Афины
Рейтинг сообщения: 0
Для ясности. Проект WinAVR ушёл под клыло Atmel и теперь называется Atmel AVR Toolchain.
Можно скачать как отдельно (win, lin), так и в составе AVR studio.

_________________
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите с выбором Компилятора ! Для AVR на языке Си !
СообщениеДобавлено: Чт фев 21, 2013 08:30:44 
Сверлит текстолит когтями
Аватар пользователя

Карма: 22
Рейтинг сообщений: 81
Зарегистрирован: Пн дек 08, 2008 10:58:48
Сообщений: 1262
Откуда: Винница
Рейтинг сообщения: 0
ds1307, попробуйте в этой версии работу в юнионах с битовыми полями - я не привык флудить. Если я пишу, что были проблемы, которые вылечились версией 2.3.4 - значит, так и было. Но поднимать свои проекты 4 летней давности - не буду. Я ценю свое время.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите с выбором Компилятора ! Для AVR на языке Си !
СообщениеДобавлено: Чт фев 21, 2013 10:40:44 
Опытный кот

Карма: 1
Рейтинг сообщений: 52
Зарегистрирован: Чт мар 12, 2009 16:31:05
Сообщений: 804
Рейтинг сообщения: 0
COKPOWEHEU писал(а):
что-то подобное volatile?


volatile - это спецификатор переменной,которая изменяется в прерываниях,а я говорил о командах препроцессора CVAVR(#pragma optsize- и #pragma optsize+).Если Вы посчитали,что Ваш код получается где-то кривоватым,то там можно отключить оптимизацию,но только там где это необходимо Вам,а не отключать оптимизацию полностью.
Гляньте настройки проекта в CVAVR и WinAVR,в первом кнопочек поболее будет.

Теперь о WinAVR,небольшие непонятки у меня возникли в нём с привидением типов,вот такой код
Код:
unsigned int a;
unsigned char b = 5;
(unsigned char)a = b;


вызывает такую ошибку - error: lvalue required as left operand of assignment


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите с выбором Компилятора ! Для AVR на языке Си !
СообщениеДобавлено: Чт фев 21, 2013 10:49:48 
Сверлит текстолит когтями
Аватар пользователя

Карма: 4
Рейтинг сообщений: 30
Зарегистрирован: Ср янв 05, 2011 16:25:15
Сообщений: 1163
Рейтинг сообщения: 0
Vov123 писал(а):
вот такой код
Код:
... (unsigned char)a = b;
... лучше понять, чего Вы хотите этим добиться? :)

PS. Думаю, что
Код:
a = (unsigned int)b;
или даже
Код:
a = b;
сработают как нужно, но в последнем случае возможно предупреждение...


Последний раз редактировалось ChipKiller Чт фев 21, 2013 10:55:51, всего редактировалось 1 раз.

Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 34 ]  1,  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 601


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y