Страница 1 из 1
Написание прошивок для AVR под Linux
Добавлено: Ср июн 09, 2010 10:21:58
Iron_Snake
Господа, у меня такой вопрос: где взять инклюдники для Атмеловских микрух? Сайт их вроде бы выкурил, но ничего не нашел по этому поводу.
Под винды они идут в составе софта, а вот под сабж архивчика с ними не нашел. Ткните носом, пожалуйста. Не дайте помереть идиотом.
P.S. Пользуюсь Debian Lenny.
Re: Написание прошивок для AVR под Linux
Добавлено: Ср июн 09, 2010 17:50:26
Maxxon
Взять к примеру, WinAVR, развернуть под вайном, потом скопировать в PATH (или добавить новый путь в него). Аналогично можно поступить с любым пакетом в котором есть нужные inc и запакованным в exe.
Re: Написание прошивок для AVR под Linux
Добавлено: Ср июн 09, 2010 18:02:29
Iron_Snake
Maxxon писал(а):Взять к примеру, WinAVR, развернуть под вайном, потом скопировать в PATH (или добавить новый путь в него). Аналогично можно поступить с любым пакетом в котором есть нужные inc и запакованным в exe.
Религия.
Хотя сейчас именно так и сделал. Единственный минус -- avra не понимает синтаксиса inc-ов из Assembler2, в которой все новые кристаллы... так что теперь еще добавился вопрос, какой компилятор ассемблера пользовать...
Re: Написание прошивок для AVR под Linux
Добавлено: Ср июн 09, 2010 22:26:19
smac
Maxxon писал(а):Взять к примеру, WinAVR, развернуть под вайном, потом скопировать в PATH (или добавить новый путь в него). Аналогично можно поступить с любым пакетом в котором есть нужные inc и запакованным в exe.
Месье знает толк в извращениях

2
Iron_Snake не знаю как в дебиане, у меня на убунте просто пакеты gcc-avr и avr-libc можно через синаптик установить. Поисщите данные пакеты для своего дистрибутива - может быть есть. Если нету, то придется собирать из исходников - гуглить по словам gcc и avr-libc.
Добавлено: собственно нужно будет еще и binutils-avr, в котором кстати будет и гнушный ассемблер, хотя он тоже вряд-ли поймет инклуды от атмела, но зато либцешные понимает, те которые avr/io.h
Re: Написание прошивок для AVR под Linux
Добавлено: Чт июн 10, 2010 10:49:28
Iron_Snake
2
smac Пакеты эти естественно есть и стоят. Но как-то я не понял, как ассемблер будет пережевывать сишные инклюдники? (Больно не пинать, с асмом, увы, не работал совершенно, только читать его умею и то только в виде вставок).
Кстати, родные Атмеловские инклюдники времен написания авры лежат
тут.
Re: Написание прошивок для AVR под Linux
Добавлено: Сб июн 12, 2010 17:17:10
Mamonth
А с каких пор в AVR-GCC нету ассемблера?
Re: Написание прошивок для AVR под Linux
Добавлено: Пн июн 14, 2010 23:36:16
smac
Iron_Snake писал(а): Но как-то я не понял, как ассемблер будет пережевывать сишные инклюдники?...
Так, во превых определитесь хидеры (*.h), которые из avr-libc или инклюдники (.inc)? Я конечно могу ошибаться, но в основном хидеры пережевывает препроцессор (ассемблерный или сиш-ный), чтобы "включить" сишный препроцессор в ассемблерных исходниках нужно дать файлу с исходником расширение .S (обязательно с большой буквы).
Вот сейчас посмотрел исходник и вспомнил, что основная штука при обращении к SFR использовать макрос _SFR_IO_ADDR(). Вот посмотрите проект под кодеблокс (в нем есть спецплагин для АВР) смысла в проекте особого нет, но зато можно найти как работать с регистрами. Если что-то непонятно будет спрашивайте попробую помочь. Также посмотрите
http://www.nongnu.org/avr-libc/user-man ... mbler.html, и вообще avr-libc manual дает ответы на многие вопросы
Re: Написание прошивок для AVR под Linux
Добавлено: Вт июн 15, 2010 01:09:10
avreal
smac писал(а):Вот сейчас посмотрел исходник и вспомнил, что основная штука при обращении к SFR использовать макрос _SFR_IO_ADDR().
В общем, не обзательно.
Для чисто ассемблерного кода, куски из которого не предполагается превращать в ассемблерные вставки в С, вполне проходит
Код: Выделить всё
.nolist
#define __SFR_OFFSET 0
#include <avr/io.h>
#include "avr_asm_diff.h"
.include "avr_macro.inc"
.list
#define CCD_ST B,0,H
#define CCD_CLK B,1,H /* OC1A output */
#define SYNC B,2,H
#define DBG2 B,3,H
.global main
main:
.global main
main:
outi OSCCAL, 0x00
outi PORTB, 0xFF ; pull-ups on unused, 1 on used
outi DDRB, MASK(CCD_CLK) | MASK(CCD_ST) | MASK(SYNC) | MASK(DBG2)
outi ACSR, (1<<ACD)
outi OCR1B, CLK_CYCLES - 1
outi OCR1A, CLK_CYCLES/2 - 1
loop:
sbi PORT(SYNC)
cbi PORT(CCD_ST)
; и так далее
Re: Написание прошивок для AVR под Linux
Добавлено: Вс авг 15, 2010 18:01:49
enq
Расскажу что у меня получилось, мож поможет. Можно установить AVRA
скачать обычный файл 2313def.inc(или какая там у вас микруха), предоставляемый атмелом.
в исходнике написать
Код: Выделить всё
.include "/полный/путь/к/файлу/2313def.inc"
и после этой директивы любые исходники из обучалки компилятся на ура, avra сразу выдает файл .hex и .eep.hex (данные eeprom). и зачем С с асмой смешивать, не понимаю..

.
UPD: Сейчас юзаю KontrollerLab + Avra + Avrdude + Proteus(Wine). KontrollerLab - Все в одном, редактор кода с подсветкой, GUI к Avrdude и Uisp, можно писать на сях и на асме, фьюзы итд - все под рукой. Очень гибкие настройки, можно поключить отдельно компилятор/ассемблер/линкер, подключить софт и железо для прошивки, короче, очень полезная прога.
зы. Раз уж влез, задам вопрос: какой программой прошивать AVRы в Linux по интерфейсу 5 проводков или через Fun-Card?
Re: Написание прошивок для AVR под Linux
Добавлено: Вс авг 15, 2010 21:56:05
Телерадиокошак
enq писал(а):зы. Раз уж влез, задам вопрос: какой программой прошивать AVRы в Linux по интерфейсу 5 проводков или через Fun-Card?
avreal
Re: Написание прошивок для AVR под Linux
Добавлено: Пн авг 16, 2010 08:17:33
enq
почитал, нет там такой опции, тока byteblaster
Re: Написание прошивок для AVR под Linux
Добавлено: Пн авг 16, 2010 12:36:01
Kavka
enq писал(а):почитал, нет там такой опции, тока byteblaster
Плохо читали
http://real.kiev.ua/avreal/
Re: Написание прошивок для AVR под Linux
Добавлено: Пн авг 16, 2010 13:07:17
Foks
Разве avrdude не шьет проводками?
Maxxon писал(а):Взять к примеру, WinAVR, развернуть под вайном, потом скопировать в PATH (или добавить новый путь в него). Аналогично можно поступить с любым пакетом в котором есть нужные inc и запакованным в exe.
Эта программа изначально для линукса. И называется avr-gcc. WinAVR это уже сборка и доработка для винды. Что за изврат с вайном
Лучше взять из АВР студии ассемблер 2.0 (сам асм, консольный) и инклюды для него, и ЭТО запускать под вайном.