PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Atmel AVRISPmkII/RN-Control: Treiber und sonstige Software unter Ubuntu?



teamohnename
27.04.2011, 15:29
Hallo Forum,
ich bin Mikrocontrolleranfänger (bis jetzt nur mit Lego NXT gearbeitet) und habe gerade mein RN-Control bekommen und bin schon allein vom Testprogramm fasziniert. :)
Dazu habe ich mir den Atmel AVRISPmkII/ für das Übertragen der Programme gekauft. Da ist auch das Problem: Die Software (Treiber?) gibt es (auf der CD) nur für Windows. Gibt es die Treiber auch für Linux/Ubuntu?
Die nächste Frage ist, was für einen Compiler, IDE und welchen Flasher (heißt das Programm zum Flashen auf den AVR so?) ich nehmen soll. Das muss natürlich unter Ubuntu laufen. Wenn möglich möchte ich nicht zum programmieren, kompilieren und flashen zwischen den Tools hin und her schalten müssen. Gibt es sowas?
Vielen Dank für Eure Hilfe schonmal im Vorraus und
Viele Grüße
Jan
teamohnename

EDIT:
Anscheinend konnte ich den Treiber schonmal installieren. Vorher hat die Betriebsled vom AVRISPmkII geleuchtet und die andere LED rot geblinkt, jetzt leuchtet die Status (?) LED grün und als ich das Teil am RN-Control angeschlossen habe, hat es gepiept. Dazwischen habe ich den roboternetz Adapter 10=>6 Pin (hätte ich mir zwar auch einfach selber bauen können, ich wollte aber kein Risiko eingehen).
Jetzt ist die Frage, welches Programm ich zum Programmieren, Kompilieren und flashen benutzen kann...

shedepe
28.04.2011, 19:03
Das Programm AVR-DUDE läuft auch unter Linux.
http://www.mikrocontroller.net/articles/AVRDUDE
http://savannah.nongnu.org/projects/avrdude

Es gibt auch noch eine GUI in Java dazu (Mit der Kommandozeilen basierten Version hab ich mir schon ein paar AVRs ausversehen zerschossen)
http://www.mikrocontroller.net/articles/Burn-o-mat

EDIT: AVRDUDE ist nur eine Software zum Flashen, Du brauchst zusätzlich noch den AVR-GCC (Compiler)
Das gibts aber alles über das Ubutu Software-Center

teamohnename
28.04.2011, 19:45
Hallo,
avr-gcc, avrdude und avr-libc habe ich installiert. Ich habe bis jetzt nur versucht, das aus dem Terminal zu kompilieren, Burn-o-Mat werde ich mal ausprobieren.
Bevor ich avr-libc installiert hatte, bekam ich sehr viele kompilierfehler, u.a.
Fehler: util/delay.h: Datei oder Verzeichnis nicht gefunden
Fehler: stdlib.h: Datei oder Verzeichnis nicht gefunden
Fehler: avr/io.h: Datei oder Verzeichnis nicht gefunden
was ja bedeutet, dass der Compiler (also avr-gcc) die Dateien nicht gefunden hat. Jetzt habe ich avr-libc ja installiert, diese Meldungen kommen jetzt nicht mehr, aber die anderen (u.a.
RNCtrl.c:218: Fehler: »WGM10« nicht deklariert (erste Benutzung in dieser Funktion)
RNCtrl.c:221: Fehler: »TCCR1B« nicht deklariert (erste Benutzung in dieser Funktion)
RNCtrl.c:221: Fehler: »CS10« nicht deklariert (erste Benutzung in dieser Funktion)
RNCtrl.c:225: Fehler: »TIMSK« nicht deklariert (erste Benutzung in dieser Funktion)
RNCtrl.c: In Funktion »setPWMlinks«:
...
Woran liegt das? Ich benutze ein Makefile:

################################################## #############################
# Makefile for the project RNCtrl
################################################## #############################

## General Flags
PROJECT = RNCtrl.c
MCU = atmega32
TARGET = RNCtrl.elf
CC = avr-gcc

CPP = avr-g++

## Options common to compile, link and assembly rules
COMMON = -mmcu=$(MCU)

## Compile options common for all C compilation units.
CFLAGS = $(COMMON)
CFLAGS += -Wall -gdwarf-2 -std=gnu99 -DF_CPU=1000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums
CFLAGS += -MD -MP -MT $(*F).o -MF dep2/$(@F).d

## Assembly specific flags
ASMFLAGS = $(COMMON)
ASMFLAGS += $(CFLAGS)
ASMFLAGS += -x assembler-with-cpp -Wa,-gdwarf2

## Linker flags
LDFLAGS = $(COMMON)
LDFLAGS += -Wl,-Map=blinklicht.map


## Intel Hex file production flags
HEX_FLASH_FLAGS = -R .eeprom -R .fuse -R .lock -R .signature

HEX_EEPROM_FLAGS = -j .eeprom
HEX_EEPROM_FLAGS += --set-section-flags=.eeprom="alloc,load"
HEX_EEPROM_FLAGS += --change-section-lma .eeprom=0 --no-change-warnings


## Objects that must be built in order to link
OBJECTS = RNCtrl.o

## Objects explicitly added by the user
LINKONLYOBJECTS =

## Build
all: $(TARGET) RNCtrl.hex RNCtrl.eep RNCtrl.lss size

## Compile
RNCtrl.o: RNCtrl.c
$(CC) $(INCLUDES) $(CFLAGS) -c $<

##Link
$(TARGET): $(OBJECTS)
$(CC) $(LDFLAGS) $(OBJECTS) $(LINKONLYOBJECTS) $(LIBDIRS) $(LIBS) -o $(TARGET)

%.hex: $(TARGET)
avr-objcopy -O ihex $(HEX_FLASH_FLAGS) $< $@

%.eep: $(TARGET)
-avr-objcopy $(HEX_EEPROM_FLAGS) -O ihex $< $@ || exit 0

%.lss: $(TARGET)
avr-objdump -h -S $< > $@

size: ${TARGET}
@echo
@avr-size -C --mcu=${MCU} ${TARGET}

## Clean target
.PHONY: clean
clean:
-rm -rf $(OBJECTS) RNCtrl.elf dep2/* RNCtrl.hex RNCtrl.eep RNCtrl.lss RNCtrl.map

flash: RNCtrl.hex
stty hupcl < /dev/ttyACM0; \
avrdude -p m8 -c stk500v2 -e -U flash:w:RNCtrl.hex -P /dev/ttyACM0

## Other dependencies
-include $(shell mkdir dep2 2>/dev/null) $(wildcard dep2/*)


Burn-O-Mat kann ich trotz Java runtime nicht installieren, da kommen tausende Fehlermeldungen.
Ich hoffe, ihr könnt mir helfen!
Vielen dank für Eure Hilfe und
Viele Grüße
Jan
teamohnename

EDIT: Hier eine Liste aller Compile Error:


jan@JANS-LAPTOP:~/Roboter/AVR/RN_Control_1.4$ make
avr-gcc -mmcu=atmega32 -Wall -gdwarf-2 -std=gnu99 -DF_CPU=1000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT RNCtrl.o -MF dep2/RNCtrl.o.d -c RNCtrl.c
RNCtrl.c: In Funktion »setportaon«:
RNCtrl.c:43: Fehler: »PORTA« nicht deklariert (erste Benutzung in dieser Funktion)
RNCtrl.c:43: Fehler: (Jeder nicht deklarierte Bezeichner wird nur einmal aufgeführt
RNCtrl.c:43: Fehler: für jede Funktion in der er auftritt.)
RNCtrl.c: In Funktion »setportbon«:
RNCtrl.c:46: Fehler: »PORTB« nicht deklariert (erste Benutzung in dieser Funktion)
RNCtrl.c: In Funktion »setportcon«:
RNCtrl.c:49: Fehler: »PORTC« nicht deklariert (erste Benutzung in dieser Funktion)
RNCtrl.c: In Funktion »setportdon«:
RNCtrl.c:52: Fehler: »PORTD« nicht deklariert (erste Benutzung in dieser Funktion)
RNCtrl.c: In Funktion »setportaoff«:
RNCtrl.c:58: Fehler: »PORTA« nicht deklariert (erste Benutzung in dieser Funktion)
RNCtrl.c: In Funktion »setportboff«:
RNCtrl.c:61: Fehler: »PORTB« nicht deklariert (erste Benutzung in dieser Funktion)
RNCtrl.c: In Funktion »setportcoff«:
RNCtrl.c:64: Fehler: »PORTC« nicht deklariert (erste Benutzung in dieser Funktion)
RNCtrl.c: In Funktion »setportdoff«:
RNCtrl.c:67: Fehler: »PORTD« nicht deklariert (erste Benutzung in dieser Funktion)
RNCtrl.c: In Funktion »init_USART«:
RNCtrl.c:88: Fehler: »UCSRB« nicht deklariert (erste Benutzung in dieser Funktion)
RNCtrl.c:88: Fehler: »TXEN« nicht deklariert (erste Benutzung in dieser Funktion)
RNCtrl.c:89: Fehler: »UCSRC« nicht deklariert (erste Benutzung in dieser Funktion)
RNCtrl.c:89: Fehler: »URSEL« nicht deklariert (erste Benutzung in dieser Funktion)
RNCtrl.c:89: Fehler: »UCSZ0« nicht deklariert (erste Benutzung in dieser Funktion)
RNCtrl.c:90: Fehler: »UBRRH« nicht deklariert (erste Benutzung in dieser Funktion)
RNCtrl.c:91: Fehler: »UBRRL« nicht deklariert (erste Benutzung in dieser Funktion)
RNCtrl.c: In Funktion »sendchar«:
RNCtrl.c:98: Fehler: »UCSRA« nicht deklariert (erste Benutzung in dieser Funktion)
RNCtrl.c:98: Fehler: »UDRE« nicht deklariert (erste Benutzung in dieser Funktion)
RNCtrl.c:102: Fehler: »UDR« nicht deklariert (erste Benutzung in dieser Funktion)
RNCtrl.c: In Funktion »adcwert«:
RNCtrl.c:126: Fehler: »ADCSRA« nicht deklariert (erste Benutzung in dieser Funktion)
RNCtrl.c:126: Fehler: »ADEN« nicht deklariert (erste Benutzung in dieser Funktion)
RNCtrl.c:126: Fehler: »ADPS2« nicht deklariert (erste Benutzung in dieser Funktion)
RNCtrl.c:126: Fehler: »ADPS1« nicht deklariert (erste Benutzung in dieser Funktion)
RNCtrl.c:126: Fehler: »ADPS0« nicht deklariert (erste Benutzung in dieser Funktion)
RNCtrl.c:128: Fehler: »ADMUX« nicht deklariert (erste Benutzung in dieser Funktion)
RNCtrl.c:131: Fehler: »ADSC« nicht deklariert (erste Benutzung in dieser Funktion)
RNCtrl.c:133: Fehler: »ADCW« nicht deklariert (erste Benutzung in dieser Funktion)
RNCtrl.c: In Funktion »init_timer1«:
RNCtrl.c:218: Fehler: »TCCR1A« nicht deklariert (erste Benutzung in dieser Funktion)
RNCtrl.c:218: Fehler: »COM1A1« nicht deklariert (erste Benutzung in dieser Funktion)
RNCtrl.c:218: Fehler: »COM1B1« nicht deklariert (erste Benutzung in dieser Funktion)
RNCtrl.c:218: Fehler: »WGM10« nicht deklariert (erste Benutzung in dieser Funktion)
RNCtrl.c:221: Fehler: »TCCR1B« nicht deklariert (erste Benutzung in dieser Funktion)
RNCtrl.c:221: Fehler: »CS10« nicht deklariert (erste Benutzung in dieser Funktion)
RNCtrl.c:225: Fehler: »TIMSK« nicht deklariert (erste Benutzung in dieser Funktion)
RNCtrl.c: In Funktion »setPWMlinks«:
RNCtrl.c:231: Fehler: »OCR1BL« nicht deklariert (erste Benutzung in dieser Funktion)
RNCtrl.c: In Funktion »setPWMrechts«:
RNCtrl.c:234: Fehler: »OCR1AL« nicht deklariert (erste Benutzung in dieser Funktion)
RNCtrl.c: In Funktion »Mlinkszur«:
RNCtrl.c:239: Fehler: »PORTC« nicht deklariert (erste Benutzung in dieser Funktion)
RNCtrl.c:239: Fehler: »PC6« nicht deklariert (erste Benutzung in dieser Funktion)
RNCtrl.c:239: Fehler: »PC7« nicht deklariert (erste Benutzung in dieser Funktion)
RNCtrl.c: In Funktion »Mlinksvor«:
RNCtrl.c:242: Fehler: »PORTC« nicht deklariert (erste Benutzung in dieser Funktion)
RNCtrl.c:242: Fehler: »PC6« nicht deklariert (erste Benutzung in dieser Funktion)
RNCtrl.c:242: Fehler: »PC7« nicht deklariert (erste Benutzung in dieser Funktion)
RNCtrl.c: In Funktion »Mlinksstop«:
RNCtrl.c:245: Fehler: »PORTC« nicht deklariert (erste Benutzung in dieser Funktion)
RNCtrl.c:245: Fehler: »PC6« nicht deklariert (erste Benutzung in dieser Funktion)
RNCtrl.c:245: Fehler: »PC7« nicht deklariert (erste Benutzung in dieser Funktion)
RNCtrl.c: In Funktion »Mrechtsvor«:
RNCtrl.c:250: Fehler: »PORTB« nicht deklariert (erste Benutzung in dieser Funktion)
RNCtrl.c:250: Fehler: »PB0« nicht deklariert (erste Benutzung in dieser Funktion)
RNCtrl.c:250: Fehler: »PB1« nicht deklariert (erste Benutzung in dieser Funktion)
RNCtrl.c: In Funktion »Mrechtszur«:
RNCtrl.c:253: Fehler: »PORTB« nicht deklariert (erste Benutzung in dieser Funktion)
RNCtrl.c:253: Fehler: »PB0« nicht deklariert (erste Benutzung in dieser Funktion)
RNCtrl.c:253: Fehler: »PB1« nicht deklariert (erste Benutzung in dieser Funktion)
RNCtrl.c: In Funktion »Mrechtsstop«:
RNCtrl.c:256: Fehler: »PORTB« nicht deklariert (erste Benutzung in dieser Funktion)
RNCtrl.c:256: Fehler: »PB0« nicht deklariert (erste Benutzung in dieser Funktion)
RNCtrl.c:256: Fehler: »PB1« nicht deklariert (erste Benutzung in dieser Funktion)
make: *** [RNCtrl.o] Fehler 1

Chypsylon
28.04.2011, 21:53
Als IDE schau dir mal Kontrollerlab (http://www.cadmaniac.org/projectMain.php?projectName=kontrollerlab&section=main) an

teamohnename
29.04.2011, 10:13
Das Kompilierproblem wurde gelöst, es lag dadran, dass die Header Dateinen unter dem Header für RN-Control eingebunden wurden.
Das Kontrollerlap ist anscheinend nur für Intel CPUs (Ich habe AMD).
Ich werde mal versuchen, den AVRISPmkII zum Laufen zu kriegen.
Funktioniert jetzt. Ich musste einen Parameter in meinem Makefile von m8 nach m32 ersetzen.