Linux-Anleitung
Hinweise und Voraussetzungen
- Derzeit ist die Unterstützung für Linux experimentell - offiziell unterstützen wir nur den Übungsbetrieb mit Atmel Studio im Windows-CIP.
- Die von uns herausgegebenen SPiCboards sind mit der DWEN-Fuse auf debugWIRE gestellt. Dadurch kann im Atmel Studio mit dem Board direkt der Debugger verwendet werden, aber das Linuxtool
avrdude
unterstützt dieses Protokoll - je nach Version - nur eingeschränkt. - Daher muss gegebenenfalls das SPiCboard zuerst wieder auf den ISP-Mode umgestellt werden (bitte nur mit dem eigenen/privaten SPiCboard durchführen):
- Starte im Atmel Studio (auf Windows) eine Beispielanwendung (z.B.
blink.c
) in einer Debug-Session - Halte auf einem Breakpoint an
- Im Menü Debug die Aktion Disable debugWIRE and Close ausführen. Siehe dazu auch die Dokumentation von Atmel.
- Starte im Atmel Studio (auf Windows) eine Beispielanwendung (z.B.
- Der ATmega328PB ist außerdem so neu, dass
avrdude
ihn standardmäßig noch nicht unterstützt.- In den Informatik CIP-Pools wird vom Makefile automatisch eine angepasste Version von
avrdude
aufgerufen, diese liegt in /proj/i4gspic/pub/tools/ - Auf dem eigenen Rechner muss eine aktuelle Version von avrdude mit einer zusätzlichen Konfigurationsdatei ausgeführt werden:
avrdude -C +atmega328pb.conf -c xplainedmini -p m328pb -v
- Die Fehlermeldung
avrdude: Can't find programmer id "xplainedmini"
ist ein guter Indikator dafür, dass das verwendete avrdude zu alt ist (Version 6.2 oder älter).
- In den Informatik CIP-Pools wird vom Makefile automatisch eine angepasste Version von
- Um wieder den Debugger im Atmel Studio verwenden zu können, muss wieder vom ISP-Mode zu debugWIRE gewechselt werden.
- Im Atmel Studio im Menü Tools die Aktion Device Programming auswählen
- Im neuen Fenster unter Tool das angeschlossene SPiCboard auswählen (mEDBG ATML252304020...) und auf Apply klicken
- Unter der Sektion Fuses einen Haken bei HIGH.DWEN setzen und mit Program auf das SPiCboard schreiben.
- Achtung: Die Veränderung der anderen Fuses kann das SPiCboard irreparabel beschädigen!
Die wichtigsten Pfade im CIP
- /proj/i4(g)spic/pub Allgmeine Informationen. Laufwerk P: in Windows.
- /proj/i4(g)spic/LOGIN (G)SPiC-Projektverzeichnis. Laufwerk Q: unter Windows.
Aufgabenverzeichnis anlegen
- Terminal öffnen
- In das i4spic-Benutzerverzeichnis wechseln:
cd /proj/i4(g)spic/LOGIN
Hinweis: Mit der Tab-Taste wird der Verzeichis-/dateiname, wenn möglich, automatisch vervollständigt. - Aufgabenverzeichnis erstellen:
mkdir aufgabeX
- In das Aufgabenverzeichnis wechseln:
cd aufgabeX
- Aufgabendatei erstellen:
touch aufgabenname.c
- Das (G)SPiC-Makefile in das aktuelle Verzeichnis kopieren:
cp /proj/i4spic/pub/libspicboard/Makefile .
Editor: Kate
- In das Aufgabenverzeichnis wechseln:
cd /proj/i4(g)spic/LOGIN/aufgabeX
- Kate starten
kate aufgabenname.c
- View -> Tool Views -> Show Terminal
- Jetzt kann direkt von diesem Terminal aus mit
make <programmname>.flash
geflasht werden.
Flashen unter Linux / im Terminal
- Um das Programm auf das SPiCboard zu flaschen wird ein Makefile mit Anweisungen für das Tool make verwendet.
- In das Verzeichnis mit dem zu flashenden Programm wechseln:
cd blink
- Das (G)SPiC-Makefile in das aktuelle Verzeichnis kopieren:
cp /proj/i4spic/pub/libspicboard/Makefile .
make <programmname>.flash
aufrufen; zum Beispiel:make blink.flash
Auf dem eigenen Rechner mit dem SPiCboard arbeiten
- Zuerst müssen für den AVR die C-Standardbibliothek (avr-libc), der Übersetzer (gcc-avr) sowie ein Tool zur Kommunikation/Übertragung der fertig übersetzten Programme (avrdude) installiert werden. Unter Ubuntu oder Debian geht das mittels
sudo apt install avr-libc gcc-avr avrdude
- Falls man nun das SPiCboard via USB mit dem PC verbindet, wird man feststellen, das ein normaler Benutzer keine Berechtigung hat, eine neue Anwendung aufzuspielen. Um jedoch den Zugriff auf das zugrunde liegende Xplained Mini auch für Nicht-Superuser erlaubt ist, erstelle eine Datei
/etc/udev/rules.d/60-xplainedmini.rules
mit dem InhaltSUBSYSTEM!="usb", ACTION!="add", GOTO="xplained_end" ATTR{idVendor}=="03eb", ATTR{idProduct}=="2145", GROUP="adm", MODE="660" LABEL="xplained_end"
Ab dem nächsten Neustart ist die neue udev-Regel aktiv, allerdings kannst du sie auch sofort laden:sudo udevadm control --reload-rules sudo udevadm trigger
- Nun noch die libspicboard herunterladen und in ein leeres Verzeichnis entpacken. Nachdem man das SPiCboard verbunden hat und mit einem Terminal in das Unterverzeihnis 'beispiel' gewechselt ist, sollte nach Eingabe von
make
das Beispielprogramm übersetzt und auf das SPiCboard übertragen werden, und nach Abschluss dort auf der 7-Segment-Anzeigeok
ausgeben.