И столкнулся с такой проблемой:
Как выбор компилятора AVR studio 5 или CodeVision AVR или WinAVR
Так как я Новичок. Подскажите в чем мне программировать и какая в этих компиляторах разница ???
У всех "спецов" я спрашиваю один вопрос -"radiokot__ писал(а):Ну ежели для баловства то можно CodeVision AVR.
Ну а если не в игрушки играть, то видимо WinAVR.
radiokot__ писал(а):Вы видите разницу между трёхколёсным велосипедом и спортивным?
Что у одного есть и колёса и шины и педали, но почему-то спотсмены катаются на спортивных, а дети на трёхколёсном.
Так-же и сдесь.
Во-первых, из перечисленных вариантов выбора AVR Studio не является компилятором, это всего лишь интегрированная среда разработки (IDE), "оболочка", к которой можно "прикрутить" в принципе любой компилятор, вызываемый из командной строки. Ранниее версии AVR Studio делались на доморощенной платформе Atmel, затем им надоело изобретать велосипеды, и они взяли за основу "пустую" заготовку от Microsoft Visual Studio. В комплект поставки по умолчанию подключен toolchain WinAVR, но, как уже говорилось, можно подключить любой другой toolchain, если сочтете целесообразным.BGert писал(а):Как выбор компилятора AVR studio 5 или CodeVision AVR или WinAVR
...какая в этих компиляторах разница ???
Не могли бы указать слабые места "трёхколесности".radiokot__ писал(а):Вы видите разницу между трёхколёсным велосипедом и спортивным?
Что-то из темы -"Не читал,но осуждаю"(с).подобные (например, splint) работать с диалектом CodeVision. На практике не проверял
Странно, порылся в своих старых сырцах: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; Озадачили вы меня ) Сейчас почитаю соответствующею ветку. А вот ваши слова "на AVR Studio свет клином не сошелся" мне понравились.Goldsmith писал(а): В принципе с тем же успехом можно выбрать и другую оболочку, например, ту же Eclipse (см. соответствующую тему в этой ветке). Плюсы и минусы каждого варианта - предмет отдельного обсуждения, просто имейте в виду, что на AVR Studio (она же с недавних пор Microsoft Visual Studio) свет клином не сошелся.
что-то подобное volatile?В CVAVR,к примеру, можно отметить участки кода,в которых будет отключена оптимизация при компиляции.
Ну это смотря как программировать. Мне было неудобно отказываться от подсказок AVRStudio и программатора с графическим интерфейсом. Но это скорее дело привычки. А так да, avr-gcc(Си), avra (ассемблер), avrdude(программатор, причем во много раз универсальнее AVRProg'a) вполне достаточно.Еще один фактор - при желании перейти на Linux практически ничего для Вас не изменится
Очень многое зависит не столько от языка, сколько от стиля... даже не программирования, а проектирования программы. Если код представляет собой месиво из перемежающихся строк бизнес-логики и низкоуровневой работы с периферией, то да, большой разницы нет - придется лазить по всему коду и править. Впрочем, с таким кодом головной боли и без портирования хватит (например, попробуйте его более-менее полноценно протестировать; подвиг, достойный Геракла).COKPOWEHEU писал(а):Что-то говорили о портируемости... Вряд ли портировать С-код намного проще чем ассемблерный, уж больно много места занимают непосредственное использование регистров и прочего платформо-зависимого.
Я бы даже сказал, "смотря что понимать под программированием". Если сам процесс заливки кода в кристалл, то да, все выглядит по-другому. Если в более широком смысле (как весь процесс разработки от сбора требований до выпуска релиза), то разница в наборе кнопочек редактора и подсказках среды большой погоды не делает. Опять же, дело вкуса.COKPOWEHEU писал(а):Ну это смотря как программировать. Мне было неудобно отказываться от подсказок AVRStudio и программатора с графическим интерфейсом.Еще один фактор - при желании перейти на Linux практически ничего для Вас не изменится
Просто предупредил о возможных проблемах, поскольку лично не убедился в работоспособности их совместной работы. Поэтому с удовольствием выслушаю мнение того, кто читал и осуждает (или аплодирует в экстазе, неважно; главное, что имеет реальный опыт).Vov123 писал(а):Что-то из темы -"Не читал,но осуждаю"(с).подобные (например, splint) работать с диалектом CodeVision. На практике не проверял
volatile - это спецификатор переменной,которая изменяется в прерываниях,а я говорил о командах препроцессора CVAVR(#pragma optsize- и #pragma optsize+).Если Вы посчитали,что Ваш код получается где-то кривоватым,то там можно отключить оптимизацию,но только там где это необходимо Вам,а не отключать оптимизацию полностью.COKPOWEHEU писал(а):что-то подобное volatile?
Код: Выделить всё
unsigned int a;
unsigned char b = 5;
(unsigned char)a = b;... лучше понять, чего Вы хотите этим добиться?Vov123 писал(а):вот такой кодКод: Выделить всё
... (unsigned char)a = b;
Код: Выделить всё
a = (unsigned int)b;Код: Выделить всё
a = b;