Atmel Studio Zuhause

Im CIP-Pool verwenden wir für die Übungen Atmel Studio 7.

# Benötigte Dateien und Installation

## Download

- Die Atmel-Studio-Entwicklungsumgebung.
- Die libspicboard-Bibliothek inklusive der Projektvorlage für Atmel Studio 7

## Installation

- Atmel Studio 7 mit allen Abhängigkeiten installieren, inklusive AVR8-Toolchain (Atmel ATmega Series Device Support Pack 1.2.132) und USB-Treiber
- Verbindet nach Abschluss der Installation euer SPiCboard mit dem PC und wartet, bis Windows die Treiber installiert hat (was durchaus einige Minuten dauern kann).

# Atmel Studio 7 einrichten

- Neues Verzeichnis anlegen
- die zuvor heruntergeladene libspicboard.zip in dieses Verzeichnis entpacken
- Bei der ersten Verwendung muss die Projektvorlage installiert werden: Atmel Studio starten, über File / Import den Menüpunkt Project Template... auswählen
- Im neuen Fenster bei "Select a project template" auf "..." klicken, in diesen Ordner navigieren und die `SPiCboard_Project_Template.zip` auswählen, anschließend auf "OK"
  Es sollte die Meldung Project Template has been successfully imported. erscheinen.
- Neue Projekte (Aufgaben) im obigen Verzeichnis erstellen (d.h. das Verzeichnis `libspicboard` aus der ZIP-Datei muss direkt neben euren Projektordnern liegen)
- Im Ordner `beispiel` findet sich bereits ein Projekt mit einem (sehr kurzen) Testprogramm, das auf der 7-Segement-Anzeige "ok" ausgibt.

# Bei Problemen kontrollieren

- Falls eine
- Eigenschaften des Projekts öffnen: z. B. Project / aufgabeX Properties
- Toolchain -> AVR/GNU C Compiler -> Directories -> `..\libspicboard` in den Pfad ändern, in dem die libspicboard entpackt wurde
- Toolchain -> AVR/GNU Linker -> Libraries -> `..\libspicboard` in den Pfad ändern, in dem die libspicboard entpackt wurde
- Fragen bitte im Forum stellen, damit alle Studenten von den Antworten profitieren!

# Abgabe der Lösungen von Zuhause

- Wenn ihr die Aufgaben zuhause programmiert und getestet habt, müsst ihr die entsprechende(n) Quelldatei(en) zuerst in die Uni kopieren, bevor ihr sie abgeben könnt.
- Dazu mit dem Programm WinSCP mit einem CIP-Rechner verbinden (z. B. `faui0sr0.cs.fau.de`), dort Benutzername und Linux-Passwort eingeben.
- Dann die Datei in euer Projektverzeichnis `/proj/i4(g)spic/LOGIN/aufgabeX` kopieren bzw. vorher das Verzeichnis aufgabeX anlegen, falls noch nicht vorhanden. Es kann sein, dass das Verzeichnis `/proj/i4spic` bzw. `/proj/i4gspic` nicht in der Liste angezeigt wird. In dem Fall: Remote -> Go To -> Open Directory/Bookmark
- Schließlich mit dem Programm PuTTY auf einem CIP-Rechner einloggen und dann in der Shell wie sonst auch `/proj/i4(g)spic/bin/submit aufgabeX` eingeben, um abzugeben.
- WICHTIG: Abgegeben werden die Dateien, die sich in eurem Projektverzeichnis befinden, und nicht die, die zuhause auf eurem Rechner sind! Es liegt außerdem in eurer Verantwortung, dass ihr die Dateien rechtzeitig einreicht - eine defekte Internetverbindung oder Probleme auf euren PCs sind kein von uns akzeptierter Grund für eine verspätete Abgabe!

# Beschreibung der verschiedenen Einstellungen

- Die Header-Dateien (z. B. `led.h`) enthalten die Schnittstellenbeschreibung für die libspicboard. Der Übersetzer benötigt den Pfad zu diesen Dateien, um die Funktionsaufrufe an die Bibliothek (z. B. `sb_led_on(GREEN0)`) auf deren richtige Verwendung zu überprüfen.
- Der Linker bindet euer Programm mit der eigentlichen bereits übersetzten Bibliothek (libspicboard.a) zusammen. Dazu braucht er Verzeichnispfad und Namen der Bibliothek. Das Prä- und Suffix des Dateinamens ("lib" und ".a") werden dabei nicht mit angegeben!
- Weitere Einstellungen sorgen dafür, dass der Compiler intolerant gegenüber schlampiger Programmierung ist (`-pedantic`, `-Wall`, `-Wextra` und `-Werror`: alle Warnungen ausgeben und als Fehler behandeln), optimiert (`-Os` in der Build-Konfiguration) oder nicht (`-O0` in der Debug-Konfiguration) und für die richtige Plattform (`freestanding` auf `atmega32`) übersetzt.
- Die Einstellungen kann man in den Projekt-Eigenschaften nachlesen und verändern (nichtsdestotrotz müssen die Abgaben mit der von uns vorgegebenen Einstellung übersetzen).