Показаны сообщения с ярлыком Linux. Показать все сообщения
Показаны сообщения с ярлыком Linux. Показать все сообщения

понедельник, 20 февраля 2012 г.

Программирование AVR из Geany

Итак,  небольшой и несуразный рассказ как настроить редактор  Geany для работы с компилятором Avra и программатором avrdude. Помимо этого используется система make
А о отладке, симуляции полноценных IDE и навороченных кодовых комбайнах и взглядах на это дело -не в этот раз.

Geany лучше сразу подложить файл с правильной подсветкой синтаксиса, если вы ещё не создали свой вариант.
Сразу отметим, существуют мелкие особенности совместимости компиляторов с компилятором от Atmel:

 Так, Avra версии 1.3.0 уже  переваривает такие штуки как #pragma  спокойно. В принципе, можно сделать/скачать правильные  заголовочные файлы и использовать более старую версию Avra. И не будет надоедливых строк типа:   tn13def.inc(54) : PRAGMA directives currently ignored


Теперь можно создать проект в Geany.
Затем в настройках выбираем: Сборка- Установить команды сборки
Выскочит вот такая штука:


Достаточно написать следующие команды (названия произвольные):

 "Скомпилировать"  make compile FILE=%eLE=%e
 "Прошить"               make program FILE=%e
 "Очистить"              make clean FILE=%e
 "Взвесить"               make size   FILE=%e

Теперь нужно написать makefile и положить его в папку проекта.
Это удобная система, потом при любом проекте указываем модель контроллера , фьюзы  и готово. По моему даже лучше чем выбирать из списка всё это в окнах настройки проекта. Естественно, makefile можно создать и получше  но тут будет совсем простой для простых проектов.
Не забываем про табуляцию перед командой, иначе будет ошибка. Также, некоторые редакторы типа notepad-а вставляют в файл свои невидимые  символы BOM в результате чего тоже будет ошибка.

Файл выглядит так:

# Makefile for programming AVR in Geany
#Параметры проекта:

MK=t13
LFuse=0x7A
HFuse=0xFF

# Более глобальные переменные.
ASM=/usr/bin/avra
ISP=/usr/bin/avrdude
INCLUDEDIR=/usr/share/avra/

compile:
    $(ASM) -I $(INCLUDEDIR) -l $(FILE) $(FILE).asm
program : $(FILE).hex
    $(ISP) -c stk200 -p $(MK)  -U flash:w:$(FILE).hex:i -U lfuse:w:$(LFuse):m -U hfuse:w:$(HFuse):m
clean:
    rm -f $(FILE).cof $(FILE).eep.hex $(FILE).hex $(FILE).obj *~
size:
    avr-size  $(FILE).hex
Вот и всё, теперь кодим, затем в голове  запускаем процесс отладчика.
Выставляем свой МК и fuse.
Жмём "Компилировать" -"Взвесить" - "Прошить".
Для этого ещё есть кнопки, например F8 компилировать и F9 прошить.
То есть, если мы дальше хотим работать с другой конфигурацией и контроллером, например Atmega8  то редактируем три строчки в начале файла.
Таким образом можно настроить и работу с другими компиляторами, например gavrasm и другими программаторами и семействами МК.
Между прочим, всё вышеописанное работает в самых различных операционных системах.

суббота, 28 января 2012 г.

О программах

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

  Но операционная система- всего лишь среда которая обеспечивает работу программ, не более. Для чего служит компьютер вообще? Если брать во внимание электронику то это поиск справочной информации, деталей в магазинах, чтение книг, расчёты, и конечно разработка- схем, печатных плат и ПО -так называемых "прошивок".

Программы приведённые ниже имеются и в windows- версии.

Для моделирования я использую программу Qucs
Выглядит это примерно так :




Примеры и руководство помимо сайта проекта  можно найти тут

Для черчения схем и разработки плат я использую программу KiCAD
Она умеет всё что мне нужно, а также то что мне не нужно- автотрассировка, экспорт для автотрассировки в том числе и посредством FreeRouter-а.
Присутствует 3D-вид компонентов и готовой платы. Для создания и редактирования 3D-моделей используется Wings3D

  В сети есть учебники и примеры , вообще информации уже достаточно много. Проблема с библиотеками -это общая проблема всех САПР, в частности когда-то меня заставляли работать в OrCAD и точно так же- для каждого проекта создавать библиотеки самому.
Помимо KiCAD существуют Eagle и DipTrace , последняя работает в Linux посредством wine.
Только что нашёл интересную информацию по экспорту из Qucs в KiCAD

Насчёт программирования МК тут всё интереснее.

Для семейства PIC существует Piklab

(Опять утащил скриншот с сайта проекта)


Для avr есть kontrollerlab
Правда я обхожусь зачастую таким решением как редактор (Geany) + компилятор (avra/avrgcc) + avrdude. Бывало, запускал под wine монстростудию.
AVRDUDE можно рассмотреть чуть подробнее , но GUI-морд и  информации в сети предостаточно, даже тут есть пост

Aurdino я не увлекался но существует для этого полноценная IDE так и называется.
Для 8051 есть отличная mcu8051ide , я ей часто пользовался но программатора у меня нету.
Она позволяет виртуально подключить к МК семисегментные индикаторы, например.

В данный момент осваиваю MSP430 ввиду приобретения набора Launchpad и сравнительно низкой цены на неплохие в целом МК.
В связи с этим несмотря на софт от TI , основанный на Eclipse  попытаюсь использовать что-то вроде связки mspgcc+CodeBlocks думаю и для  AVR тоже перейти на подобную среду.