Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: выбор программирования
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
zakonnik
Пиветствую! Тут решил серёзно подойти к изучению ATMEL, прикупил на будующее atmega8535. Но встала проблема, каким копилятором С пользоваться, есть WinAVR, СodeVizion, ICC AVR, каким посоветуете пользоваться?
У кого есть книжки, статьи и т.п. по программированию на СodeVizion? Желательно на русском
kd_Rash
подробная работа в СodeVizion описана здесь
http://book.microprocessor.by.ru/ в 3 книгах

удачи
prottoss
Есть еще одна среда прграммирования, которую Вы не упомянули - IAR Embedded workbench for AVR. ИМХО лучшая среди упомянутых. Все профи на ней :-)
zakonnik
Цитата

Эхх, там тока книги на продажу

Цитата
Есть еще одна среда прграммирования, которую Вы не упомянули - IAR Embedded workbench for AVR. ИМХО лучшая среди упомянутых. Все профи на ней :-)

Мне бы СodeVizion освоить, я бы на седьмом небе былsmile.gif
prottoss
Цитата(zakonnik @ May 18 2007, 20:43) *
Мне бы СodeVizion освоить, я бы на седьмом небе был smile.gif
Если опыт программирования естьто освоить IAR не сложнее, чем Visual Studio
zakonnik
Цитата
Если опыт программирования естьто освоить IAR не сложнее, чем Visual Studio
к сожалению с программированием на С сталкиваюсь в первые, так что это для меня китайская грамота, а вот учебничков маловато в частности по тому же CodeVision. Приходиться самому как то перебиваться без них, пока безуспешно. crying.gif
umup
В книге "Шпак Ю.А.Программирование на языке С для AVR и PIC микроконтроллеров.2006" описан WinAVR
ReAl
Цитата(prottoss @ May 18 2007, 14:39) *
Все профи на ней :-)

А я типа погулять вышел, раз на avr-gcc сижу? smile.gif
kd_Rash
Цитата(zakonnik @ May 18 2007, 16:43) *
Эхх, там тока книги на продажу
Мне бы СodeVizion освоить, я бы на седьмом небе былsmile.gif


какие трудности заказать на books.ru наложенным платежем любую книгу
срок доствки около недели

удачи
prottoss
Цитата(ReAl @ May 18 2007, 21:23) *
А я типа погулять вышел, раз на avr-gcc сижу? smile.gif
Извиняете, если обидел smile.gif , я как раз с avr-gcc не дружу, вернее, не пробовал на нем программировать. Я как раз дружу с IARом smile.gif . Но, ИМХО, если чел не знает Си, то какие там IAR и GCC??? Литературу и Borland C for DOS в подарок, для начала
Kuzmi4
Cогласен с ReAl -
GCC и ИАР - это 2 равноценных соперника...

Незачем тут ставить молодёж в замешательство..
defunct
Цитата
А я типа погулять вышел, раз на avr-gcc сижу?

ну, типа да smile.gif

А вообще поддерживаю:
Цитата(Kuzmi4 @ May 18 2007, 15:35) *
GCC и ИАР - это 2 равноценных соперника...

использую и тот и другой,
IAR imho удобнее в использовании
(работа с константами __flash и переменными __eeprom как с обычными константами/переменными здорово сокращают время разработки).
manul78
Цитата(umup @ May 18 2007, 17:23) *
В книге "Шпак Ю.А.Программирование на языке С для AVR и PIC микроконтроллеров.2006" описан WinAVR


Честно, говоря не лучшее произведение. Я её тоже когда-то купил от безисходности...
так вот из почти 400 страниц её, программированию на С для WinAVR посвящается страниц 30...
остальное команды ассемблерные, даблицы перевода из 16 в 8 и обратно. Одним словом вода...


Хотя если уж совсем, никогда на С не писал, слегка поможет, хотя-бы настроить оболочку.

На IAR никогда не писал и никогда его не видел, дорогой слишком... а обкусаные не люблю...
zakonnik
Ребят кроме тов. Шпака чё посоветуете прочиитать по Си и кмпиляторам? Мож у кого в заначке чё валяеться, колитесьsmile.gif
defunct
Цитата(zakonnik @ May 18 2007, 18:10) *
Ребят кроме тов. Шпака чё посоветуете прочиитать по Си и кмпиляторам?

для начала хотя бы это:
http://linfoline.homedns.org/ansi-c/ansi-c.html
zltigo
Что касается выбора компилятора (а не оболочек, надстроек и прочего), то среди равных всегда есть чуть лучший. Для AVR это IAR. Для 51 -Keil. Для ARM - после покупки его ARMом тоже Keil.
Разница не велика и возможно легко при практическом использовании нивелируется прочими преимуществами типа отладчиков, IDE, ...
На этом форуме накоплено достаточно большое количество информации и отзывов и каждый воспользововшись поиском может с ней ознакомиться.
WHALE
Если не планируется прыгать с платформы на платформу,то с точки зрения quick start CV самое то.
Ну а с точки зрения соответствия стандарту С он другим не уступает.Да и в кодогенерации имхо,
тоже.
CSB
тут лежат pdf Getting Started with ... - там и найдете свой CodeVison AVR.

К качестве книги порекомендую Б. Керниган, Д. Ритчи "Язык программирования Си"
IgorKossak
Цитата(CSB @ May 18 2007, 21:02) *
К качестве книги порекомендую Б. Керниган, Д. Ритчи "Язык программирования Си"

Например здесь.
manul78
Цитата(IgorKossak @ May 18 2007, 22:13) *
Например здесь.


Уважаемый IgorKossak , судя по всему, Вы много времени проводите в сети, поэтому спрашиваю

Существуют ли в природе программки, помогающие составлять графические алгоритмы программ
. Потому как и я и многие люди, приступая к проекту рисуют на листочках бумаги алгоритмы,
естественно что в процессе работы и отладки все это сотни раз меняется, в результате куча
испорченной бумаги в которой черт голову сломит.

Сам я таких программ не видел, сталкивался только с программой IAR visual state, но честно говоря
в ней ничего не понял, куча каких то связей и море бумаги на выходе...

Есть что либо, подобное ?
CSB
>программки, помогающие составлять графические алгоритмы программ
Для начала можно попробовать Visio из пакета Visual Studio. + поищите на форуме: подобная тема поднималась - там были ссылки на более простые программы рисования графов
manul78
Цитата(CSB @ May 18 2007, 23:20) *
Для начала можно попробовать Visio из пакета Visual Studio.


Visual Studio это слишком круто, я потом за траффик не расплачусь...

Простенькое, что-нибудь...
IgorKossak
Цитата(manul78 @ May 18 2007, 23:32) *
Visual Studio это слишком круто, я потом за траффик не расплачусь...

Простенькое, что-нибудь...

Из простенького - Algorithm Builder.
INT1
Если нужна рисовалка алгоритмов, можно посмотреть:
http://alglib.sources.ru/aboutbls.php
Ежели применительно к железу, как подходить к их составлению, можно почитать "Радио" 11,12 2000, или посмотреть Атмелевские апноты.
ЗЫ, статья из "Радио" приатачена
umup
Open office Draw, Dia
ReAl
Цитата(umup @ May 19 2007, 12:48) *
Open office Draw

+1
Рисовалка гораздо приличнее, чем в MS office, возможности хоть и гораздо меньше, чем у visio, но все эти glue point для соединяющих линий есть, блок-схемы и временные диаграммы рисовать довольно удобно.
Stariy Alex
Цитата(INT1 @ May 19 2007, 08:01) *
Если нужна рисовалка алгоритмов, можно посмотреть:
http://alglib.sources.ru/aboutbls.php
Ежели применительно к железу, как подходить к их составлению, можно почитать "Радио" 11,12 2000, или посмотреть Атмелевские апноты.
ЗЫ, статья из "Радио" приатачена

Полтора года у меня имеется редактор блок-схем для АVR напоминает
этот редактор, но не такой простой. Возможный язык - СИ или АSМ для USB
(плюс Baskom для версии с LPT). Отвалил с хардваре 200 ?.
Каждый кирпичик можно загрузить чем либо по списку. Купили два чемоданчика
с комплектами - фирменная и для себя. Но до сих пор подобное мне было
известно только на нем. языке. Сайт производителя - myavr.de (Demo).
Аналоги на английском, кажется, есть, но не искал.
PS. Скачал 396кб, а у меня 300мб+100мб update. СИ и АSМ встроены в прогу.
Stariy Alex
Цитата(zakonnik @ May 18 2007, 20:10) *
Ребят кроме тов. Шпака чё посоветуете прочиитать по Си и кмпиляторам? Мож у кого в заначке чё валяеться, колитесьsmile.gif

Недавно стерли сайт http://openlib.org.ua/
Успел скачать книгу
---
Харви & Пол Дейтел
Как программировать на С

Книга предлогает читателю курс программирования, ориентированных на ясыки С/С++ и расчитана
как на начинающих, не владеющих никакими языками программирования, так и на опытных программистов, которые могут просто пропустить не интересующие их главы. Помимо достаточно
полного и глубокого изложения языка С дается весьма серьезное введение в С++, одного из
наиболее перспективных на настоящий момент языков; ему посвящена значительная часть книги.
Особое внимание уделяется методикам структурного и обьектно-ориентированного программирования больших программных систем. Примеры и многочисленные упражнения знакомят читателя с часто применяемыми алгоритмами и функциональными структурами данных, показывая технические приемы
их реализации. Приводится масса полезных советов.
Книга адресована широкому кругу читателей, от новичков до студентов, изуцающих программирование.
----
Язык русский. Страниц 1002. 53 мб. Если заинтересуетесь, то укажите куда слить.
Сергей Борщ
Цитата(WHALE @ May 18 2007, 20:15) *
Ну а с точки зрения соответствия стандарту С он другим не уступает.
Это тот самый компилятор, который "сливает" все .c-исходники в один файл, генерит из него один большой ассемблерный файл и потом прогоняет его через avrasm32? Какое там "не уступание", если в нем нет понятия "единица компиляции"?
WHALE
А в С как-то стандартизирована раздельная компиляция?
Сергей Борщ
Цитата(WHALE @ May 21 2007, 16:46) *
А в С как-то стандартизирована раздельная компиляция?
Вообще-то да. Из нее вытекают хотя бы такие ключевые слова как extern и static (применительно к глобальным переменным).
Цитата
5.1.1.1 Program structure
1 A C program need not all be translated at the same time. The text of the program is kept
in units called source files, (or preprocessing files) in this International Standard. A
source file together with all the headers and source files included via the preprocessing
directive #include is known as a preprocessing translation unit. After preprocessing, a
preprocessing translation unit is called a translation unit. Previously translated translation
units may be preserved individually or in libraries. The separate translation units of a
program communicate by (for example) calls to functions whose identifiers have external
linkage, manipulation of objects whose identifiers have external linkage, or manipulation
of data files. Translation units may be separately translated and then later linked to
produce an executable program.
Forward references: linkages of identifiers (6.2.2), external definitions (6.9),
preprocessing directives(6.10).
IgorKossak
Цитата(WHALE @ May 21 2007, 16:46) *
А в С как-то стандартизирована раздельная компиляция?

Это не самоцель, хотя и намного упрощает работу с большими проектами.
Гораздо большее достоинство компилятора, это возможность работы с предкомпилированными библиотеками.
WHALE
2 Сергей Борщ Ну со static и extern в CV все в порядке и стандарту соответствует.
2 IgorKossak Хм,ну при компиляции многофайловых проектов error он в конкретных файлах вы-
дает и с указанием строки исходника.Так-что и тут мимо.
А насчет прекомпилированных библиотек я,чесговоря,не в курсе,в чем их преимущество cranky.gif
Не подскажете?
defunct
Цитата(WHALE @ May 21 2007, 16:49) *
Хм,ну при компиляции многофайловых проектов error он в конкретных файлах вы-
дает и с указанием строки исходника.Так-что и тут мимо.

Не мимо. Представьте что у вас исходников на 10 минут компиляции. Вы меняете один файл и что? ждать ~10 минут пока все перекомилируется? А если вы допустили ошибку напр. забыли ";". То ждать еще ~10 минут? уже 20..

А так перекомпилируется лишь только этот измененный файл и все. На лицо экономия Ваших 10-ти (20-ти) минут времени.


2 WHALE: Ой, кажись я мимо кассы ;>
думал вы о раздельной компиляции говорили, а Вы о CV..
С CV я не работал, и спорить-то с вами не могу. Можете просто проигнорировать мой пост.
Сергей Борщ
Цитата(WHALE @ May 21 2007, 17:49) *
2 Сергей Борщ Ну со static и extern в CV все в порядке и стандарту соответствует.
Глубоко его не копал, но судя по тому, что перед компиляцией идет вставка всех файлов в main.c, то как он отреагирует на такие ситуации:
1)Есть uart.c и adc.c. В каждом из этих файлов объявлено по статическому массиву: static uint8_t Buffer[16] и static uint8_t Buffer[8]. При раздельной компиляции это два совершенно разных массива, каждый из которых "виден" только в пределах своего файла. Что будет в CV?

2)В adc.c и uart.c объявлено два одинаковых uint8_t Counter. В случае раздельной компиляции получаем сообщение об ошибке на стадии линковки. В CV, как я понимаю, получаем сообщение о двойном определнии переменной. Вроде все красиво ибо в обоих случаях ошибка. Теперь представим, что в одном из файлов эту переменную забыли объявить. При раздельной компиляции всегда получаем сообщение об ошибке. В CV, судя по тому что он "сшивает" файлы в алфавитном порядке, получаем: если забыли объявить в adc.c - сообщение об ошибке, а если забыли определить в uart.c - вместо сообщения об ошибке получаем молчаливое использование Counter из adc.c, а это уже криминал. Я правильно понял механизм?
WHALE
defunct Да нет,в данном случае как-раз в точку,отдельный файл в CV запустить на компиляцию
нельзя,так что тут обстоит именно так,как вы описали. Но 10 минут?Наверно,я никогда не работал с по-
настоящему большими проектами 01.gif
2 Сергей Борщ Вы,наверно,с какой-то очень старой версией дело имели 07.gif
Сейчас дело обстоит именно так,как вы и описали-массив,обьявленный в одном файле,не виден в другом без обьявления его в нем как extern.
И в случае обьявления двух одинаковых массивов(переменных) в разных файлах будет ошибка линкера.
Сергей Борщ
Цитата(defunct @ May 21 2007, 18:24) *
2 WHALE: Ой, кажись я мимо кассы ;>
думал вы о раздельной компиляции говорили, а Вы о CV..
С CV я не работал, и спорить-то с вами не могу. Можете просто проигнорировать мой пост.
Нет, не мимо. Я смотрел CV год назад, а сейчас специально скачал доку и убедился, что технология не изменилась, и все происходит именно как вы и предположили - малейшее исправление и компилится весь проект целиком.

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

Мне приходилось делать маленький демо-проект в CV примерно год назад, чтобы показать заказчику как на CV писать прогу для нашей железки, в которой в области загрузчика уже "вшиты" некоторые функции. Они довольно долго использовали CV, творили на нем довольно большие проекты. Но тут малейшая "нестандартность" ставила их в тупик. Отсутствие этапа линковки меня тогда сильно "подкосило". Вывернулся, но пришлось кроме документации изучить еще исходники его библиотек на предмет неописанных в доке прагм, использовать асм-вставки, в общем бррр. Например, требовалось простейшую функцию разместить в опреденных адресах (ее по этому адресу вызывает код, работающий в области загрузчика). В "правильном" компиляторе я бы завел свой сегмент, указал положить код функции в этот сегмент, а линкеру указал бы в какие адреса этот сегмент разместить. А вот что получилось в CV:
Код
#asm
    .CSEG
Magic:            ;****Store current address location
    .org    INC_PTR
    INC    R16
    CPI    R16,Tx_BufferSize
    BRNE    NotOverwrap
    CLR    R16
NotOverwrap:
    RET    

    .org    Magic    ;****Restore address location
#endasm
WHALE
Ага,я выиграл,вы сами сознались 08.gif
Если вспомнить тему топика,от которой мы довольно далеко ушли,то речь шла именно о qwick start на С
для AVR.И CV позволяет это сделать с наименьшими затратами.
З.Ы. Какие обиды,мой и ваш уровень несоизмерим. beer.gif
zltigo
Цитата(WHALE @ May 21 2007, 19:06) *
.. речь шла именно о qwick start на С

Ну про quick start не было smile.gif напротив:
Цитата
Тут решил серёзно подойти к изучению ATMEL

smile.gif
Сергей Борщ
Цитата(WHALE @ May 21 2007, 19:06) *
Ага,я выиграл,вы сами сознались 08.gif
Верно, но после старта хочется движения с постоянным ускорением, а CV с некоторого момента переводит на постоянную скорость smile.gif
ReAl
Цитата(WHALE @ May 21 2007, 18:06) *
Если вспомнить тему топика,от которой мы довольно далеко ушли,то речь шла именно о qwick start на С
для AVR.И CV позволяет это сделать с наименьшими затратами.

"CV не читал, но..." :-)
Собственно, мне его "преимущества" начисто не нужны, к "традиционному" пути компиляции-линковки привык очень давно, т.е. он мне точно ничего не ускорил бы.
Но свои 5 копеек для тех, кто такого опыта не имеет, вставлю.

Очень настороженно отношусь к заявлениям о том, что то-то и то-то позволяет "очень быстро стартовать".

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

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

Так что лучше потратить немного времени и освоить более мощный инструмент. Тем более, что, на самом деле, не так и сложно "стартовать по-минимуму" в том же IAR-е или в связке AVRstudio + WinAVR. Но зато помом можно будет потихоньку доразбираться, а не попасть в колею, из которой выбраться можно только со значительными усилиями и потратив гораздо больше времени.
IgorKossak
ReAl
+1
Где то ещё читал аналогичный Вашему довод. Что то вроде: "Кто с Бейсика начал, тот на бейсике и остановится".
И ещё из законов Мерфи: "Создайте систему, которой сможет пользоваться даже дурак и только дурак захочет ею пользоваться".
SasaVitebsk
И я от себя чуть-чуть добавлю.
1) Начал изучать Си года два назад. Почитал - выбрал IAR. По отзывам. Ну с неделю чтобы въехать вообще, а теперь уже никакого дискомфорта не чувствую. У меня уже свой xcl файл и свои настройки все и первые библиотеки появились. Так что разговор о какой-то сложности - просто разговор. Надо банально отбросить лень и засучить рукова - и всё получится.
2) Очень часто, говоря о преимуществах говорят о наличии встроенных библиотек для различной переферии. Например для HD44780. Так вот моё мнение - это не достоинство, а недостаток для начинающих программистов. Так эту библиотеку написать - неделя работы максимум, зато она будет сделана именно так, как надо вам, а не абстрактно. В любой момент её можно модифицировать, развить, встроить куда-то. И, главное, вы будете понимать что к чему. А то мне тут пишут люди, и спрашивают примитивные вещи. И трудно объяснить. Я то понимаю как библиотека CV работает, - одного взгляда было достаточно, а он не понимает как ему подстроить схему под библиотеку. Кому такие знания нужны?!!

Но с другой стороны, Вы должны определится сами. Может вам это надо на пол-года, а потом вы будете музыкой заниматься, тогда можно на что угодно. А если на длительный период и для сложных проектов, то надо серьёзно подойти и сравнить характеристики.
ReAl
Цитата(SasaVitebsk @ May 22 2007, 14:30) *
Но с другой стороны, Вы должны определится сами. Может вам это надо на пол-года, а потом вы будете музыкой заниматься, тогда можно на что угодно.
Какие там постройки оказываются самыми долговечными? ;-)
А музыкой тоже так - "нарисуйте мне, в каком порядке струны нажимать, а то с нотами разбираться неохота, вдруг я через пол-года начну автомобили ремонтировать"? ;-)
Даже если на пол-года планировать - и три недели можна потратить на более приличный инструмент, оно окупится временем же.

Полуоффтоп: как-то с братом вешали одну лампу... Так вышло, что незадолго перед этим оба толи Урсулу Ле Гуин читали, толи ещё кого-то в этом духе. В процессе работы родилось

Закрепляющее заклятие:
Для того, чтобы продолжить действие сотворяющего заклятия после его совершения следует стать лицом к сотворённому, поднять обе руки вверх и в стороны и устало, но твёрдо произнести
"Пусть временно побудет так!"
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.