• Navigation überspringen
  • Zur Navigation
  • Zum Seitenende
Organisationsmenü öffnen Organisationsmenü schließen
Friedrich-Alexander-Universität Lehrstuhl für Informatik 4 (Systemsoftware)
  • FAUZur zentralen FAU Website
  1. Friedrich-Alexander-Universität
  2. Technische Fakultät
  3. Department Informatik
Suche öffnen
  • English
  • Campo
  • StudOn
  • FAUdir
  • Stellenangebote
  • Lageplan
  • Hilfe im Notfall
  1. Friedrich-Alexander-Universität
  2. Technische Fakultät
  3. Department Informatik
Friedrich-Alexander-Universität Lehrstuhl für Informatik 4 (Systemsoftware)
Menu Menu schließen
  • Lehrstuhl
    • Team
    • Aktuelles
    • Kontakt und Anfahrt
    • Leitbild
    • 50-jähriges Jubiläum
    Portal Lehrstuhl
  • Forschung
    • Forschungsbereiche
      • Betriebssysteme
      • Confidential Computing
      • Eingebettete Systemsoftware
      • Verteilte Systeme
    • Projekte
      • AIMBOS
      • BALu
      • BFT2Chain
      • DOSS
      • Mirador
      • NEON
      • PAVE
      • ResPECT
      • Watwa
    • Projektkampagnen
      • maRE
    • Seminar
      • Systemsoftware
    Portal Forschung
  • Publikationen
  • Lehre
    • Sommersemester 2025
      • Applied Software Architecture
      • Ausgewählte Kapitel der Systemsoftware
      • Betriebssystemtechnik
      • Projekt angewandte Systemsoftwaretechnik
      • System-Level Programming
      • Systemnahe Programmierung in C
      • Systemprogrammierung 1
      • Verteilte Systeme
    • Wintersemester 2024/25
      • Betriebssysteme
      • Middleware – Cloud Computing
      • Systemprogrammierung 2
      • Verlässliche Echtzeitsysteme
      • Virtuelle Maschinen
      • Web-basierte Systeme
    Portal Lehre
  • Examensarbeiten
  1. Startseite
  2. Extern

Extern

Bereichsnavigation: Lehre
  • Systemnahe Programmierung in C (für Wiederholer)
    • SPiCboard
      • Bauanleitung
        • Programmieren im CIP
          • libspicboard-Doku
            • SPiC-IDE
              • SPiCsim
                • FAQ
                  • Projekte
                  • Prüfung
                    • Evaluation
                      • Linux libc-Doku
                        • Intern

                        SPiCboard

                        Entwicklung auf dem Heimcomputer unter Linux (insbesondere Debian/Ubuntu)

                        Installation

                        Benötigte Dateien und Programme

                        • Die libspicboard-Bibliothek muss heruntergeladen und entpackt werden (der Pfad sollte keine Leerzeichen beinhalten).
                        • Für den AVR müssen 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

                        Automatische Berechtigungen mittels udev

                        • 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 Inhalt
                          SUBSYSTEM!="usb", ACTION!="add", GOTO="xplained_end"
                          ATTR{idVendor}=="03eb", ATTR{idProduct}=="2145", GROUP="adm", MODE="666"
                          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 Unterverzeichnis '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-Anzeige ok ausgeben.

                        Debugger

                        • Der Debugger GDB (für AVR) kann derzeit nur über eine von uns modifizierte Variante des AVaRICE (im GitLab unter i4/SPiC/Tools/AVaRICE) mit dem SPiCboard kommunizieren.
                        • Nach dem Download (git clone oder ZIP-Archiv und entpacken) muss dieser zuerst kompiliert und installiert werden werden
                          sudo apt install libusb-dev libhidapi-dev gdb-avr
                          cd AVaRICE/avarice/
                          ./Boostrap
                          ./configure
                          make
                          sudo make install
                        • Debuggen einer Anwendung durch
                          1. Übersetzen mit Debuginformationen (Parameter -g) und am besten ohne Optimierungen (-O0)
                          2. Übertragen auf das SPiCboard
                          3. Mit AVaRICE über das mEDBG-Protokoll (Parameter -5 -w eine Verbindung mit dem OnBoard-Debugger auf dem SPiCboard herstellen
                          4. GDB über einen Socket mit AVaRICE verbinden.
                          5. Steuerung über die GDB Konsole (weiter Infos)
                        • Der Ablauf ist in der Makefile mit dem %.debug Target gekapselt: Eine Anwendung blink.c kann mit
                          make blink.debug
                          ohne Optimierungen mit Debugsymbolen übersetzt und auf das angeschlossene SPiCboard übertragen werden, anschließend wird eine Verbindung mit GDB über AVaRICE zum SPiCboard hergestellt und die GDB Konsole angezeigt.

                        Entwicklungsumgebung

                        • Es gibt eine Vielzahl von integrierten Entwicklungsumgebungen, welche für SPiC verwendet werden können: Vom nerdigen vim über die Standardeditoren Kate und Geany bis hin zum mächtigen Eclipse CDT, ihr habt die Qual der Wahl.
                        • In den Übungen verwenden wir mit der SPiC IDE eine angepasste Variante des Atom-Editors. Die Änderungen sind jedoch auf den CIP-Pool zugeschnitten, ein Einsatz auf den heimischen PC bedarf einige Änderungen und wird daher absolut nicht für Einsteiger empfohlen. Wir werden deshalb auch keine Unterstützung zur Einrichtung geben!
                          • Für Debian 10 (buster) gibt es ein internes Repository mit dem Editor, der die CIP Umgebung nach baut und obige Installationsschritte durchführt. Eine Installation kann wie folgt geschehen (bitte Warnung unten beachten):
                            sudo apt install apt-transport-https
                            wget -O - https://i4spic.cs.fau.de//editor/repo.gpg.key | sudo apt-key add -
                            echo "deb https://i4spic.cs.fau.de//editor/debian buster main" | sudo tee /etc/apt/sources.list.d/spic.list
                            sudo apt update
                            sudo apt install spic-editor
                            Warning
                            Fremdquellen sind immer ein Sicherheitsrisiko! Es ist möglich, dass die angebotenen Pakete euer System beschädigen – ein Einsatz darf nur innerhalb einer sicheren Umgebung (z.B. Virtuelle Maschine oder alter PC) stattfinden und ist auf vollständig eigene Gefahr!
                          • Ein Archiv mit dem Editor ist ebenfalls vorhanden, welches nach dem Durchführen obiger Schritte im Wurzelverzeichnis [hier sollten alle Alarmglocken schrillen] entpackt werden muss:
                            su
                            # Benutzer i4spic anlegen
                            adduser i4spic
                            mkdir -p /proj/i4spic
                            chown i4spic:i4spic /proj/i4spic
                            # Paket holen und entpacken
                            su i4spic
                            wget https://i4spic.cs.fau.de//editor/spic-editor.tar.gz
                            tar -xavf spic-editor.tar.gz -C /   # der Befehl ist gefährlich!
                            exit
                            # Bentzerverzeichnis erstellen - USER mit eurem Benutzernamen ersetzen
                            mkdir -p /proj/i4spic/USER/korrektur
                            ln -s /proj/i4spic/pub /proj/i4spic/USER/pub
                            chown USER /proj/i4spic/USER

                        Hinweise

                        • Die von uns herausgegebenen SPiCboards sind mit der DWEN-Fuse auf debugWIRE gestellt. Dadurch kann unter Windows im Atmel Studio mit dem Board direkt der Debugger verwendet werden. Das Linuxtool avrdude unterstützt dieses Protokoll nur in aktuellen Versionen.
                        • Bei der Verwendung mit älteren Versionen 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.
                        • Der ATmega328PB ist außerdem so neu, dass avrdude ihn teilweise noch nicht unterstützt.
                          • In den Informatik CIP-Pools wird vom Makefile automatisch eine angepasste Version von avrdude aufgerufen, diese liegt in /proj/i4spic/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).
                        • Um wieder den Debugger im Atmel Studio verwenden zu können, muss wieder vom ISP-Mode zu debugWIRE gewechselt werden.
                          • Im unter Windows 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!
                        Friedrich-Alexander-Universität
                        Erlangen-Nürnberg

                        Schlossplatz 4
                        91054 Erlangen
                        • Impressum
                        • Datenschutz
                        • Barrierefreiheit
                        • Facebook
                        • RSS Feed
                        • Xing
                        Nach oben