Итак, небольшой и несуразный рассказ как настроить редактор 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 в результате чего тоже будет ошибка.
Файл выглядит так:
Выставляем свой МК и fuse.
Жмём "Компилировать" -"Взвесить" - "Прошить".
Для этого ещё есть кнопки, например F8 компилировать и F9 прошить.
То есть, если мы дальше хотим работать с другой конфигурацией и контроллером, например Atmega8 то редактируем три строчки в начале файла.
Таким образом можно настроить и работу с другими компиляторами, например gavrasm и другими программаторами и семействами МК.
Между прочим, всё вышеописанное работает в самых различных операционных системах.
А о отладке, симуляции полноценных 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 и другими программаторами и семействами МК.
Между прочим, всё вышеописанное работает в самых различных операционных системах.
Как обойти ошибки вида PRAGMA directives currently ignored? Замучился уже.
ОтветитьУдалитьAVRA 1.3.0
Это не ошибки, AVRA просто игнорирует эти директивы а программа работает.
УдалитьРешение- удалить #PRAGMA из inc-файла