LINUX.ORG.RU

Программирование AVR в Linux, как?

 , ,


1

2

Здравствуйте. Интересует ряд вопросов по программированию микроконтроллеров AVR в Linux (Debian). Прошу отвечать людей, которые занимаются этим.

  1. Существуют ли аналоги Proteus для Linux? Очень желательно с поддержкой МК AVR. Но в первую очередь хотя бы просто для симуляции несложных схем.
  2. Как хорошо обстоят дела с самодельными программаторами, типа костылей в виде 5 проводков для LTP порта и китайскими USB программаторами за 5 баксов, а также с нормальными программаторами которые поддерживают отладку с помощью интерфейса jTag.
  3. Какую среду разработки можете порекомендовать для написания кода на асме и Сях? Имеется ли вообще такая среда или плагины для IDE типа eclipse или редактора VIM.


Последнее исправление: beastie (всего исправлений: 1)

Вообще всё работает, но вендовые альтернативы выглядят намного более ынтырпрайзно.
А почему именно AVR? Почему бы не ARM или 8051?

CYB3R ★★★★★
()
Ответ на: комментарий от CYB3R

По учёбе изучали именно AVR, но практики у меня маловато, а вот теории достаточно.

Сама тема микроконтроллеров мне очень понравилась, поэтому хочу начать именно с AVR.

dima0xff
() автор топика
Ответ на: комментарий от CYB3R

А почему именно AVR? Почему бы не ARM или 8051?

И зачем вообще Linux? Мне кажется, что ожидания топикстартера несколько завышены и лучше сразу разочаровать. Все плохо (на самом деле нет). :)

Zubok ★★★★★
()
Ответ на: комментарий от dima0xff

AVR — это неплохое начало. Если есть LPT, программатор можно сделать из говна и палок (проверено, работает с avrdude). Готовый тулчейн есть даже в репах популярных дистрибутивов. Начать писать на Си под AVR очень легко.

CYB3R ★★★★★
()

Для пяти проводков есть пони с ужасным внешним видом, работающая. AVRDude для китайских и не очень usb костылей.

ilovewindows ★★★★★
()
Ответ на: комментарий от dima0xff

К сожалению, всяких вижуалстудий (в твоём случае AVR Studio) на эти наши линуксы не завезли. С другой стороны — почему к сожалению? К счастью! Порог вхождения намного выше, потому разработчику перед непосредственно разработкой нужно разобраться, как же система работает и понять её принципы и философию. Результат: количество школоподелок от индусских детей меньше, следовательно общее качество софта выше.

CYB3R ★★★★★
()
Последнее исправление: CYB3R (всего исправлений: 1)
Ответ на: комментарий от dima0xff

Зачем Linux? Я долгое время провёл за ним, уже привык. На винды слезать не охота.

Ладно, ладно. Вместо протеус можешь попорбовать библиотеку simavr (есть simulavr и есть simavr. Это разные проекты). Это, конечно, не визуальная среда, а библиотека, но с помощью нее ты можешь весьма гибко симуляцией и отладкой заниматься. Вскользь описывал тут: Свободное ПО в электронике - 2

Zubok ★★★★★
()
Ответ на: комментарий от ns_ramesses

AVR я отлаживал через симулятор, а не через JTAG. Симулятор работал с gdb-avr в паре. Это *гораздо* круче на мой взгляд, потому что позволяет буквально смоделировать нужные входные воздействия и ситуации симулятору.

Zubok ★★★★★
()
Ответ на: комментарий от Vovanano

C arm нужна отладочная плата, тут проводками не отделаешься, непаябельные корпуса, информации меньше, ни фига оно для начала не лучше, а продолжения может и не быть.

ilovewindows ★★★★★
()

Симулятора нормального нет. Отладчик тоже неудобный. О Протеусе даже не мечтай. Есть не совсем совместимый с атмеловским асм. Сишечка такая же точно, как в венде. Я пишу свои наколенные поделки на асме «на глаз», отлаживаю в железе на макетке. Очень неудобно, особенно в сравнении с AVR Studio и Протеусом. Особых трудностей пока не возникало — спасибо шикарным атмеловским даташитам. Прошиваю через FTDI'шный USB->UART переходник.

anonymous
()

Не морочьте себе голову. Беритесь сразу за ARM. Да, есть для Eclipse плагин для AVR. Но в сравнении с плагином для ARM он убог до невозможности. Для ARM (в частности STM32) Вы получите, вполне себе, полноценную среду разработки (не даром всякие CooCox и Atolic на основе Eclipse), плюс по соотношению цена/возможности AVR далеко позади. Потратьте около 5 у.е. на набор (платка с STM32F1 и китайский клон ST-LINK) и будет Вам счастье.

baldman88
()
Ответ на: комментарий от Vovanano

Относительно дешевая, да. Если учесть что с программатором. Начинать чтобы убедиться что не не твоё или по принуждению образовательной системы. У STM самый вменяемый корпус TSSOP20, не сравнить с дипами атмег, это всё таки не для самоделок. Хотя может ты и прав, сразу привыкнуть к плохому и не париться с авр.

ilovewindows ★★★★★
()
Ответ на: комментарий от ilovewindows

Даже не смешно.
Непаябельные корпуса? Купите себе нормальный паяльник, а лучше станцию. А AVR в TQFP намного паябельней?
Меньше информации? Да Вы поиском, видимо, пользоваться не умеете.
Нужна отладочная плата? Это даже плюс, так как сразу можно посмотреть как все работает на живом устройстве. Тем более цена вопроса — копейки.
P.S.: Почему продолжения может и не быть?

baldman88
()
Ответ на: комментарий от baldman88

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

ilovewindows ★★★★★
()
Ответ на: комментарий от ilovewindows

У STM самый вменяемый корпус TSSOP20

А про то, что NXP LPC81x можно уже и в DIP, я упоминал здесь.

gag ★★★★★
()

avr-gcc и avrdude работают отлично, даже лучше чем на винде. Кодишь в любимом блокнотике, компилируешь makefile'ами и горя не знаешь. А вот зачем кому-то нужны отладчики и симуляторы для avr я понять не могу. Разве что для обучения, хотя это ведь не ARM, тут все просто как грабли, нечего отлаживать.

pftBest ★★★★
()
Ответ на: комментарий от baldman88

А в эти симуляторы поддержку таймеров и прерываний уже завезли? Пару лет назад не нашел.

В какие эти симуляторы? А какие проверял и какими пытался пользоваться? В simulavr не знаю, не пользовался, должны быть, смотреть лень. А в simavr были с самого начала, с тех пор, как я им воспользовался. Там и АЦП есть, UART есть и др. А поведение периферии пишется на Си. Можно и с графикой делать, но только сам рисуешь. Есть примеры в самом пакете и на просторах можно найти:

Вот: http://www.avrfreaks.net/comment/548481#comment-548481

Или вот: http://www.fluxoid.org/simulating-the-ssd1306-oled-display-in-simavr/

Zubok ★★★★★
()
Ответ на: комментарий от Zubok

Simulavr. Про пару лет я конечно приврал. Это было где-то в 2009. Хотел проверить что-то с таймером, но увы и ах. Он мне выдал, что на данный момент таймеры и прерывания не реализованы. После этого я даже не пробовал симуляторы, так как впечатление было подпорчено.
Почитал про simavr — интересная вещь. Почему он тогда мне не попался?

baldman88
()
Ответ на: комментарий от ilovewindows

В чем проблема запаять LQFP? У коллеги по работе даже шестилетняя дочь хорошо с этим справляется при помощи простого 25-ти ваттного паяльника (ей нравиться паять). Единственная проблема, с которой можно столкнуться, если делать самоделки, это изготовление платы. Но при должной сноровке и это не проблема. Ну а для того, чтобы разобраться достаточно готовой отладочной платы и программатора, которые, повторюсь еще раз, стоят копейки. Не понравиться — можно отдать кому-то, кому это будет интересно. Я так и поступил с отладочными платами и программатором для авр — отдал студентам первокурсникам. Тем более, что для авр тоже нужна отладочная плата.
Про паяльную станцию я писал Вам, а не ТСу. И что такого плохого в эклипсе? Ну и про информацию: сейчас и по стм полно информации и работающих примеров. Так что это не довод.
Плюс ко всему, если ТС решит пойти работать в сферу, связанную с микроконтроллерами, то авр ему не пригодится с очень большой (даже огромной) долей вероятности. С армами же все с точностью до наоборот.

baldman88
()

1) Нету. Можно пускать протеус в виртуалке.

2) Китайские клоны usbasp работаю чудесно.

Пишу в QtCreator, собираю make, прошиваю avrdude.

WRG ★★★★
()
Ответ на: комментарий от baldman88

С точки зрения обучения, начинать нужно от простого к сложному а не наоборот. Если, например, студент не знает как работают прерывания, то кидать ему сразу NVIC или AIC для самостоятельного изучения будет не очень разумно. Хороший студент может и выплывет, а если не очень хороший, то получится очередной script kiddie, который дальше примеров производителя ничего не может.

pftBest ★★★★
()
Ответ на: комментарий от baldman88

Это было где-то в 2009 [...] Почитал про simavr — интересная вещь. Почему он тогда мне не попался?

Наверное, потому что:

commit d8e5774323d5408e119b5fa3cce1c73c7345e8f7
Author: Michel Pollet <buserror at gmail dot com>
Date:   Tue Nov 24 13:11:54 2009 +0000
    Initial Commit

gag ★★★★★
()

Всё что есть - это libc, gcc, binutils, поддерживамые atmel'ом. Ну и avrdude длф программирования. Это всё кто-то прикручивал к eclipse (не сам ли атмел?). Отладчиком я не пользовался. Ассемблер в gas совместим с атмеловским с небольшими нюансами. Другими словами, если не боишься Makefile или eclipse, то AVR'ки поддерживаются прекрасно. Если необходим протеус - то облом, ничего нет даже отдалённо похожего.

slapin ★★★★★
()

Вот так, например. http://avr.ru/tools/linux/debug

1. В качестве альтернативы протеус можно рассматривать KtechLab, но оно для PIC и находится в полуживом состоянии, сам для симуляции AVR использую simavr (не путать с simulavr!).

2. USBASP, загрузчики по ком порту, есть встроенные загрузчики с протоколом stk500 (типа как ардуино), есть встроенный gdb-stub с отладкой по ком порту, так же в качестве программатора можно использовать arduino.

Короче есть много вариантов разной степени извращенности.

3. сode::blocks, еще есть eclipse, но она тормозная жутко поэтому ну её на...

Там же можно настроить автозапуск симулятора/avarice перед началом, отладки, но я этим пользовалься, чтобы запускать st-util перед началом отладки stm32xxx.

shkolnick-kun ★★★★★
()
Последнее исправление: shkolnick-kun (всего исправлений: 1)
Ответ на: комментарий от baldman88

+1, сам жалею что начал с AVR а не ARM, хотя ARM у Atmel сложнее существенно в работе чем AVR, но ведь у других производителей ARMы уже проще

ТСу: Proteus работает под Wine отлично, тем более оно на Qt написано

и да, я бы купил готовый программатор с гальванической/опто-изоляцией, я этим 5-проводковым одной конторе комп спалил будучи студентом ))) но они сами балбесы - я думал у них гальванически развязана схема была... лучше бы я тогда не жидился на программатор с развязкой, ведь раз ты взялся за изучение МК то ты можешь себе позволить предположить что программатор 100% окупится, да даже если нет...

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

ТСу: Proteus работает под Wine отлично, тем более оно на Qt написано

А еще его надо купить. Или мы не бандиты, а благородные пираты? :)

Zubok ★★★★★
()
Ответ на: комментарий от Zubok

Бесплатная demo-версия 100% рабочая, просто она не позволяет сохранять работу, но работает же. К тому же, вопросы лицензии это на совести автора, может у него есть ;)

I-Love-Microsoft ★★★★★
()

У меня FreeBSD, думаю под Debian есть всё то же самое.

Ассемблер - avra, C/C++ - avr-gcc/avr-binutils/avr-libc, прошиватор avrdude (всё есть в портах), IDE любая (у меня vim, плагины никакие не использую).

Есть ещё avr-gdb и некий симулятор simavr, никогда не пользовался.

Прошивал в начале 5 проводами через LPT, сейчас использую USBasp, и то и то работает без проблем, avrdude всё умеет, а вообще у него в конфие больше сотни программаторов.

USBasp удобнее потому что даёт питание и вроде защиту от КЗ. Кажется брал тут: http://www.electronshik.ru/item/51-avr-usb-isp-asp-atmega-programmer-1198681

slovazap ★★★★★
()
Ответ на: комментарий от ns_ramesses

Code::Blocks + gcc-arm-embedded + OpenOCD

Если надо stm32, то можно юзать st-util вместо OpenOCD, мороки меньше.

shkolnick-kun ★★★★★
()
Последнее исправление: shkolnick-kun (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.