Страница 1 из 2

Программирование AVR под Ubuntu

Добавлено: Вт окт 18, 2011 00:21:25
КАШАК
Всем привет :)

Перешел я с винды на линукс, а точнее на Ubuntu. Вот тут и начал думать, как писать программы для AVR в Linux? На винде пользовался CodeVision, на линуксе пока тоже им пользуюсь, из под Wine, но это неудобно, т.к. он подтормаживает и т.п. На линуксе есть две среды разработки Eclipce и CodeBlock но нет литературы и примеров для них... Кто на чем пишет прошивки в линуксе? Кто, что посоветует?

P.S.
Обратно в винду переходить не хочу, т.к. в линуксе скорость прошивки при помощи программатора AVR910 в разы выше...

Re: Программирование AVR под Ubuntu

Добавлено: Вт окт 18, 2011 00:47:10
romazan
КАШАК писал(а): P.S.
Обратно в винду переходить не хочу, т.к. в линуксе скорость прошивки при помощи программатора AVR910 в разы выше...
Гыгыгы, поколение Codevision :)

По сути: если есть большая выдержка, то можешь компилироть проекты из Терминала, что имхо вручную изврат.
Поставь как я под Wine AVRStudio, компилировать нормально, но вот прошивать все равно через терминал надо будет или есть оболочки для Дудки, облегчающие эту задачу.

Кстати? Либо я отстал от жизни, либо ты ошибся написав что у тебя программатор AVR910, так как под иного нет драйверов на Linux!

Re: Программирование AVR под Ubuntu

Добавлено: Вт окт 18, 2011 00:55:02
КАШАК
Я не ошибся, у меня действительно AVR910, мастеркитовский, шью из под связки программ AVR8 Burn-O-Mat + AVRDude. Запустил его быстрее чем на винде, просто в ноут воткнул и в настройках AVRDude выбрал свой программатор, а на винде пол дня с дровами мучился... Только сначала установил все как здесь описано http://cxem.net/mc/mc44.php Намного удобнее чем из под терминала, выглядит программа так http://cxem.net/mc/mc48.php А обязательно программы для винды ставить? Может можно их библиотеки к линуксовым IDE приделать? Или писать с библиотеками AVR-gcc?

Re: Программирование AVR под Ubuntu

Добавлено: Вт окт 18, 2011 08:02:55
md5sum
romazan писал(а):Гыгыгы, поколение Codevision :)
По сути: если есть большая выдержка, то можешь компилироть проекты из Терминала, что имхо вручную изврат.
Поставь как я под Wine AVRStudio, компилировать нормально, но вот прошивать все равно через терминал надо будет или есть оболочки для Дудки, облегчающие эту задачу.
Гыгыгы, поколение windows :facepalm:

Если проект свободно может компилироваться из терминала, то это большой шаг к повторяемости: отсутствует привязка к среде. Правда надо изучить структуру Makefile и понимать принцип работы маке и компилятора.
Вместо wine+studio - eclipse. Прошивать avrdude (в терминал выходить не надо).
А в Studio есть tools->customize->tools, где прописываете свой батничек, который прошивает текущий проект в МК. Даже кнопочка появится - чтоб было куда тыркать. Правда в этом случае то-же надо-б знать как правильно батники составлять :)

2 КАШАК под эклипс ставишь плагин http://avr-eclipse.sourceforge.net/. Создаешь проект, в свойствах проекта (вкладка avrdude) указываешь свой программатор: Atmel Low Cost Serial Programmer. Прошивать большой кнопкой AVR со стрелкой :)

Re: Программирование AVR под Ubuntu

Добавлено: Вт окт 18, 2011 08:09:20
md5sum
КАШАК писал(а):А обязательно программы для винды ставить? Может можно их библиотеки к линуксовым IDE приделать? Или писать с библиотеками AVR-gcc?
Если нужен именно CV, то придется его ставить повозившись с wine. Да и не факт, что будет нормально работать.
Касательно AVR-Studio: она использует winawr, что собственно есть адаптация avr-gcc для винды. Так зачем студию с winavr тащить в линукс, если avr-gcc там и так есть?

Re: Программирование AVR под Ubuntu

Добавлено: Вт окт 18, 2011 08:20:11
ploop
Кстати? Либо я отстал от жизни, либо ты ошибся написав что у тебя программатор AVR910, так как под иного нет драйверов на Linux!
Походу отстал. Драйвера там не нужны.

На Си действительно проблем нет, можно настроить практически любую понравившуюся среду разработки, а компилятор - avr-gcc.
На счет CV не знаю, совместим ли будет код с avr-gcc, говорят, она вообще своеобразная...

Re: Программирование AVR под Ubuntu

Добавлено: Вт окт 18, 2011 08:23:52
md5sum
ploop писал(а):На счет CV не знаю, совместим ли будет код с avr-gcc, говорят, она вообще своеобразная...
Ну напильник и кувалду еще не отменяли :) Только насколько это нужно? Иногда проще переписать полностью в gcc.

Re: Программирование AVR под Ubuntu

Добавлено: Вт окт 18, 2011 08:39:27
ploop
Я не ошибся, у меня действительно AVR910, мастеркитовский, шью из под связки программ AVR8 Burn-O-Mat + AVRDude. Запустил его быстрее чем на винде, просто в ноут воткнул и в настройках AVRDude выбрал свой программатор, а на винде пол дня с дровами мучился...
Кстати, я тут намедни с одной проблемой столкнулся: с родной протоссовской (которая, кажется, и есть в мастеркитовских наборах) прошивкой дудка не хотела шить новые серии МК, например ATmega48-88-168, пишет, что программатор их не поддерживает. И действительно, в её выводе поддерживаемых контроллеров много чего нет.

Пришлось прошить его прошивкой AVR910-AVRDoper (адаптирована для этой схемы), а в качестве программатора выбирается STK500v2. Тут уже всё нормально.

Re: Программирование AVR под Ubuntu

Добавлено: Вт окт 18, 2011 09:29:39
КАШАК
md5sum писал(а):
КАШАК писал(а):А обязательно программы для винды ставить? Может можно их библиотеки к линуксовым IDE приделать? Или писать с библиотеками AVR-gcc?
Если нужен именно CV, то придется его ставить повозившись с wine. Да и не факт, что будет нормально работать.
Касательно AVR-Studio: она использует winawr, что собственно есть адаптация avr-gcc для винды. Так зачем студию с winavr тащить в линукс, если avr-gcc там и так есть?
CV не принципиально, уже давно собирался переходить на другую среду разработки... Если AVR-Studio и Eclipse используют avr-gcc, то программы в них должны выглядеть одинаково?

Re: Программирование AVR под Ubuntu

Добавлено: Вт окт 18, 2011 09:32:32
md5sum
КАШАК писал(а):CV не принципиально, уже давно собирался переходить на другую среду разработки... Если AVR-Studio и Eclipse используют avr-gcc, то программы в них должны выглядеть одинаково?
Да.

Re: Программирование AVR под Ubuntu

Добавлено: Вт окт 18, 2011 09:36:23
КАШАК
Это хорошо, сегодня вечером попробую что-нибудь написать :)

Re: Программирование AVR под Ubuntu

Добавлено: Вт окт 18, 2011 09:44:38
avreal
md5sum писал(а):Гыгыгы, поколение windows :facepalm:

Если проект свободно может компилироваться из терминала, то это большой шаг к повторяемости: отсутствует привязка к среде. Правда надо изучить структуру Makefile и понимать принцип работы маке и компилятора.
+100
Примеры к AVR/GCC порту scmRTOS компилируются одинаково успешно и в Windows, и в Linux без каких-либо изменений.
А что навернуть поверх make/makefile — дело вкуса. В MS-DOS у меня был Qedit, в Windows — MED, сейчас в убунте — Code::Blocks (ушёл на него с NetBeans, сейчас вяло подумываю о переходе на eclipse).
При этом при переходе между ОС и редакторами в самих проектах ничего не менялось.
Для мелких правок или зашивки нескольких плат одной прошивкой можно обойтись «текущим-редактором-по-умолчанию» (FAR-овский встроенный, Notepad++, gedit, vim) и командной строкой.

Даже для прошивки скомпилированного в микроконтроллер я что в досовском Qedit, что в виндовсовском MED нажимал одно и то же Alt-F9 (вот зачем нужны программаторы командной строки — думаете, я целыми днями сижу в коносли и набираю команды avreal?).
Настройки редакторов при этом делали вызов «make program», а программатор вписан в makefile и берёт тип микроконтроллера и его тактовую для настройки своей частоты из тех же переменных управления проектом, из которых они передаются и avr-gcc.

В Ubuntu и Code::Blocks немного по другому, но опять ничего не то что в исходниках — вообще в проектах не поменялось и при необходимости я могу их собирать и прошивать AVR и в Windows (что и делается с примерами scmRTOS, так как при отработке IAR-ветви я сижу в Windows, но при изменениях в файлах scmRTOS мне нужно быстренько проверить и GCC-ветвь, тут-то и нужен рядом стоящий WinAVR).

Компилируется avr-gcc, только теперь он берётся не из пакета WinAVR, а из /usr/bin, либо, для сборок Klen, из /opt/kgp-avr/bin.

Прошивается avreal + адаптер на FT2232 (им же OpenOCD шьёт STM32).

Re: Программирование AVR под Ubuntu

Добавлено: Вт окт 18, 2011 09:51:30
md5sum
avreal писал(а):думаете, я целыми днями сижу в консоли и набираю команды avreal?
Однозначно!
Это как медведи на красной площади: Раз работаете в линуксе - значит из командной строки не вылезаете :))

Re: Программирование AVR под Ubuntu

Добавлено: Вт окт 18, 2011 09:56:42
ploop
У меня всё проще: на Си пока не пишу, хватает ассемблера. В качестве редактора - Geany, где в опциях компиляции прописаны собственно ассемблер с ключами, а на сборку повесил avrdude тоже с ключами. В итоге F8 - компилит (и выкидывает ошибки, если есть), F9 - тут же прошивает.

Geany удобен тем, что лёгок и быстр, в отличии от монстров, типа Eclipse или NetBeans. Хотя это совсем разного уровня вещи, первый можно назвать продвинутым блокнотом, а не полноценной IDE.

Re: Программирование AVR под Ubuntu

Добавлено: Вт окт 18, 2011 21:03:30
КАШАК
Сто-то проект в Eclipse не собирается. Пишет:

Код: Выделить всё

**** Build of configuration Release for project test ****

Nothing to build for project test
Код пытаюсь скомпилить простейший:

Код: Выделить всё

#include "avr/io.h"

short unsigned int i;

void main (void)
{
  DDRB  = 255;
  PORTB = 0;

  while(1)
  {
    if (PORTB == 255)
      PORTB = 0;
    else
      PORTB++;

    for (i=0; i<10000; i++)
    {
    }
  }
}
Как правильно скомпилить проект?

Re: Программирование AVR под Ubuntu

Добавлено: Вт окт 18, 2011 21:16:48
md5sum
Файл после правки сохранил? (звездочка у имени должна пропасть)
Сам по началу забывал сохранять - наследие студии (она сама сохраняет)

Re: Программирование AVR под Ubuntu

Добавлено: Вт окт 18, 2011 21:46:25
КАШАК
Сохранял, звёздочка на имени пропала, но проект не компилится. Может я что-то не то жму для компиляции? Я жму в Build All в меню Project.

Re: Программирование AVR под Ubuntu

Добавлено: Вт окт 18, 2011 21:51:48
md5sum
А project -> clean что скажет?

Re: Программирование AVR под Ubuntu

Добавлено: Вт окт 18, 2011 21:56:13
КАШАК
Тоже самое...

Re: Программирование AVR под Ubuntu

Добавлено: Вт окт 18, 2011 21:58:40
md5sum
Кидай PrintScreen. Можно в личку...