Friedrich-Alexander-Universität Erlangen-Nürnberg  /   Technische Fakultät  /   Department Informatik

 

Entwicklung auf dem Heimcomputer unter Windows

Für Windows empfiehlt sich das Atmel Studio 7.

Installation

Benötigte Dateien

Atmel Studio 7

  • Atmel Studio 7 mit allen Abhängigkeiten installieren, inklusive AVR8-Toolchain (Atmel ATmega Series Device Support Pack 1.2.209) 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).

SPiCboard im Atmel Studio einrichten

  • Im Explorer ein 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
    ImportTemplate_1.png
  • Im neuen Fenster bei "Select a project template" auf "..." klicken, in diesen Ordner navigieren und die AtmelStudio7_Project_Template.zip auswählen, anschließend auf "OK"
    ImportTemplate_2.png
    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

  • 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 auf eurem Rechner 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/i4spic/LOGIN/aufgabeX kopieren bzw. vorher das Verzeichnis aufgabeX anlegen, falls noch nicht vorhanden. Es kann sein, dass das Verzeichnis /proj/i4spic bzw. /proj/i4spic 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/i4spic/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).

Fragen und Antworten

Wie erstelle ich ein neues Projekt?

  • Atmel Studio 7 starten, über File / New auf den Menüpunkt Project... navigieren
    NewProject_1.png
  • Im nun erscheinenden Fenster New Project muss unsere SPiCboard Projekt Vorlage ausgewählt werden (siehe auch Es gibt im Atmel Studio kein "SPiCboard Projekt"! ).
    NewProject_2.png
  • Der Projektname kann für eigene Hobbyprojekte beliebig gewählt werden, für Abgaben muss es jedoch aufgabe und die jeweilige Aufgabennummer sein.
  • Als Location sollte ein Unterordner in einem SPiC-Verzeichnis gewählt werden, in dem die libspicboard liegt (da eure Projekte i.d.R. eben diese lib brauchen, und sie in den benachbarten Verzeichnissen gesucht wird).
  • Bei Create directory for solution sollte kein Haken sein.

Es gibt im Atmel Studio kein "SPiCboard Projekt"!

Wie ändere ich den Quelltext-Dateinamen?

  • Falls nicht bereits vorhanden, blende den Solution Explorer über den Menüpunkt View ein.
  • Rechtsklick auf die zu ändernde Datei (meist main.c) und Rename auswählen. Nun kann der Name geändert werden.
    RenameFile.png

Hilfe, ich bekomme eine "Launch Failed" Fehlermeldung

Tool_0.png
  • Erstmal: Keine Panik, hinsetzen und ruhig durchatmen. Diese wenig hilfreiche Fehlermeldung weißt euch meist darauf hin, dass ihr in eurem Projekt kein SPiCboard ausgewählt habt.
  • Stellt sicher, dass euer SPiCboard angeschlossen ist (und Windows die Treiber installiert hat). Zudem muss der Solution Explorer aktiviert sein (kann über das Menü View aktiviert werden).
  • Klickt im Solution Explorer mit der rechten Maustaste auf euer Projekt (normalerweise aufgabeX) und wählt Properties (letzter Menüpunkt) aus.
    Tool_1.png
  • In der neuen Ansicht den Reiter Tool auswählen und in "Selected debugger/programmer" das SPiCboard mit der Bezeichnung "mEDBG ATML252304..." aktivieren (das Ende entspricht der Seriennummer, die auch auf der Rückseite des SPiCboards steht).
    Tool_2.png
  • Sollte hier nur Simulator und Custom Programming Tool stehen, so ist euer SPiCboard entweder nicht angeschlossen, oder ihr habt Verbindungs- bzw. Treiberprobleme.

Wie starte ich den SPiCboard Simulator aus Atmel Studio?

  • Alternativ zum direkten starten über spicsim.bat kannst du auch den SPiCsim aus Atmel Studio starten, um dadurch schnell testen zu können.
  • Gehe dazu in den Projekt Einstellungen (Im Atmel Studio Solution Explorer Rechtsklick auf das Projekt und wähle Properties) unter dem Reiter Tool das Custom Programming Tool aus (Nein, nicht "Simulator". Ja, verwirrend).
  • Als Command muss der Aufruf zu Java mit dem Simulator und der auszuführenden Datei stehen. Letztere kann mittels Makro von Atmel Studio übergeben werden, z.B. durch java -jar P:\libspicboard\doc\SPiCsim.jar "$(OutputDirectory)\\$(OutputFileName)$(OutputFileExtension)" für den Windows CIP (auf deinem Heimrechner muss vermutlich ein anderer Pfad eingestellt werden).
    customProgrammingTool.png
  • Ein hoher Timeout verhindert unnötige Warnungen, z.B. 6000 ist ein guter Wert.
  • Du kannst nun direkt euer Programm über den Startbutton im Simulator ausführen (ein Debuggen ist jedoch nicht möglich).
  • Bitte denk daran, dass der Simulator nicht über alle Funktionen (insbesondere keine serielle Kommunikation/Konsole oder Display) verfügt und sich auch in Einzelfällen anders als das SPiCboard verhalten kann. Deine Abgaben müssen mit dem echten SPiCboard funktionieren. Nichtsdestotrotz ist der SPiCsim eine sehr gute Unterstützung, falls kein SPiCboard verfügbar ist.

Der Compiler meckert "undefined reference to main()", obwohl eine main()-Methode definiert ist.

  • Verschiebe die Hauptquelldatei (z. B. blink.c) rechts im Solution Explorer direkt unter den Projektknoten (z. B. aufgabe0). Dann nochmal neu kompilieren.

Atmel Studio meckert, dass die Firmware des Debuggers nicht aktuell ist.

  • Die Firmware durch den angebotenen Dialog des Atmel Studio updaten lassen.

Im Project-Menü erscheint kein Punkt "Add File".

  • Vorher rechts den Solution Explorer auswählen.