Страница 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
Если проект свободно может компилироваться из терминала, то это большой шаг к повторяемости: отсутствует привязка к среде. Правда надо изучить структуру 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
Если проект свободно может компилироваться из терминала, то это большой шаг к повторяемости: отсутствует привязка к среде. Правда надо изучить структуру 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. Можно в личку...