Embedded Systems II (WS17/18)

Vorlesung Mi, 14-15:30 in M1.02 +++ Praktikum Mi, 15:40-18:50 in G2.16

Skript: http://hhoegl.informatik.hs-augsburg.de/es2/skript

1   Neuigkeiten

2   Organisatorisches

Ablauf

Die Veranstaltung Embedded System II findet wöchentlich am Mittwoch Nachmittag ab 14 Uhr statt. Am Anfang ist eine 90-minütige Vorlesung, danach finden zwei Blöcke Praktikum statt.

Wöchentliches Praktikum

Für das Praktikum werden die TeilnehmerInnen der Veranstaltung in zwei Gruppen G1 und G2 geteilt, die im wöchentlichen Wechsel im Praktikum sein werden. In jeder Gruppe werden Teams gebildet mit zwei bis drei TeilnehmerInnen.

Die Aufgaben sollen in der zweiwöchigen Vorbereitungszeit gründlich vorbereitet werden, so dass beim Praktikumstermin die Aufgaben fertiggestellt werden können. In der zweiwöchigen Nachbereitungszeit soll der Bericht aktualisiert werden.

Die Bewertung der Aufgaben erfolgt nach den Ampelfarben: Grün steht für die erfolgreiche Abgabe, gelb steht für Nacharbeit und rot gibt es für fehlende Abgaben. Das Praktikum ist nicht bestanden bei zwei oder mehr roten Abgaben. Zwei mal gelb steht für einmal rot.

Im Praktikum herrscht Anwesenheitspflicht!

Quelltext

Jede Gruppe pflegt ein Gitlab Repositorium mit allen Abgaben (Quelltexte für jeden Versuch, Bericht).

Bericht

Jedes Team schreibt von Anfang an einen Bericht über das Praktikum. Bei jedem Praktikumstermin wird der Fortschritt des Berichtes kontrolliert. Am Ende der Veranstaltung wird der komplette Bericht abgegeben. Damit eine individuelle Notenvergabe erfolgen kann, müssen die von den jeweiligen Teammitglieder geschriebenen Abschnitte im Bericht kenntlich gemacht werden.

Es gibt ein Gerüst für den Bericht im Format Restructured Text bzw. Sphinx. Der Bericht hat ein einheitliches Deckblatt.

Der Bericht ist auch im Gitlab Repositorium enthalten.

Finale Abgabe

Der Bericht muss spätestens am 20.12.2017 bis Mitternacht von allen Teams in elektronischer Form abgeschickt werden an <Hubert.Hoegl@hs-augsburg.de>. Der Bericht enthält einen Link auf das Gitlab Repositorium.

Klausur

Die erfolgreiche Teilnahme am Praktikum ist die Bedingung für die Teilnahme an der Klausur. Vergangene Klausuren finden Sie unter

http://hhoegl.informatik.hs-augsburg.de/es2/Klausuren

4   ESIDE Kurzanleitung zur Installation

git clone https://r-n-d.informatik.hs-augsburg.de:8080/hubert.hoegl/eside.git
cd eside
sudo python3 -m pip install --upgrade .
(evtl. vorher noch python3-setuptools und python3-pip installieren)

wget http://hhoegl.informatik.hs-augsburg.de/es2/tools/openocd-0.10.0.tar.bz2
tar jxvf openocd-0.10.0.tar.bz2
cd openocd-0.10.0
# Achtung: hier evtl. Pakete "pkg-config" und "libusb-1.0-0-dev" nachinstallieren
./configure --enable-stlink --prefix=/opt/openocd-0.10.0/
make
sudo make install
# PATH Umgebungsvariable in ~/.bashrc erweitern

# Udev Regel installieren
cp `eside -p`/etc/49-stlinkv2-1.rules /etc/udev/rules.d/
cp `eside -p`/etc/99-openocd.rules /etc/udev/rules.d/
cp `eside -p`/etc/100-saleae-logic.rules /etc/udev/rules.d/

# Pruefen, ob alle Vorbedingungen erfuellt sind
eside -c

# Demo-Projekt holen
git clone https://r-n-d.informatik.hs-augsburg.de:8080/es2-nucl476/starter.git
cd starter
# eside starten
eside -s

Berichtete Fehler beim Installieren

5   Wöchentliche Termine

  • Mittwoch, 14:00 bis 18:50
  • Allerheiligen 1.11.2017 ist frei

5.1   11.10.2017

Vorlesung: Einfuehrung

Praktikum: Es gibt eine Einfuehrung in git, sphinx, tmux und weiteren wichtigen Programmen. Findet nur an diesem Tag auch im M1.02 statt!

5.2   18.10.2017

Vorlesung: Organisation des Hauptspeichers, "Sections", Abbildung der Bestandteile eines C Programmes auf die Sections, Debuggen mit GDB, haeufig verwendete Funktionsbloecke im STM32L4.

Vorfuehrung des Beispielprogrammes "starter": https://r-n-d.informatik.hs-augsburg.de:8080/es2-nucl476/starter

Praktikum: Gruppe 1 beginnt mit Versuch 1 im G2.16.

5.3   25.10.2017

Vorlesung: Gegenueberstellung "bare metal" und Programmierung mit CubeL4 + libc. Aufbau der Cube Bibliothek (HAL, LL, BSP, Beispiele, CMSIS). Tags erzeugen von allen Quelltexten mit eside -t (Konfiguration in .eside/tagsconf.py). Standard C Bibliothek benoetigt syscalls.c, da kein Betriebssystem-Kernel vorhanden ist. Projekte in stm32cubel4/examples/ in Vim betrachtet. Navigation mit tags. Startup-Code in Assembler startup_stm32l476xx.s (von CMSIS), Interrupt-Handler stm32l4xx_it.c, System-Initialisierung in system_stm32l4xx.c.

Hausaufgabe: Yiu, Kap. 1, 2, 17

Praktikum: Gruppe 2 beginnt mit Versuch 1

5.4   8.11.2017

Vorlesung: Es geht haupsächlich um die Funktionsblöcke im Mikrocontroller, die wichtig bei der Initialisierung sind: RCC, PWR, GPIO/Alternate Functions. Zusätzlich bei Interrupts: NVIC, SCB, SYSCFG, EXTI.

Praktikum: Gruppe 1 gibt Versuch 1 ab und beginnt mit Versuch 2.

5.5   15.11.2017

Vorlesung: Kommentar zum bisherigen Stand der Praktikumsberichte; Demonstration des Beispielprojektes gpio-intr-cmsis: Praktisches Beispiel zu den eher theoretischen Erläuterungen vom 8.11.2017. Das Programm ist auf der CMSIS Abstraktionsebene geschrieben. Es erzeugt einen Interrupt beim Drücken der User-Taste. Der Interrupt führt zum Umschalten der grünen LED.

https://r-n-d.informatik.hs-augsburg.de:8080/es2-nucl476/gpio-intr-cmsis

Praktikum: Gruppe 2 gibt Versuch 1 ab und beginnt mit Versuch 2.

5.6   22.11.2017

Vorlesung: System handler, SysTick, bus fault, usage fault, hard fault, integer division by zero, FPU division by zero interrupt, SVC handler.

https://r-n-d.informatik.hs-augsburg.de:8080/es2-nucl476/syshandler-cmsis

Praktikum: Gruppe 1 gibt Versuch 2 ab und beginnt mit Versuch 3.

5.7   29.11.2017

Vorlesung: Hier ging es hauptsaechlich um Parallelitaet:

Praktikum: Gruppe 2 gibt Versuch 2 ab und beginnt mit Versuch 3.

5.8   6.12.2017

Vorlesung: Low-power

Praktikum: Gruppe 1 gibt Versuch 3 ab.

5.9   13.12.2017

Vorlesung:

Praktikum: Gruppe 2 gibt Versuch 3 ab.

5.10   20.12.2017

Vorlesung:

Praktikum: Zeit fuer Nachholer.

Abgabe der Berichte bis spaetestens 24 Uhr.

EmbeddedSystems1718 (zuletzt geƤndert am 2017-12-06 11:32:45 durch HubertHoegl)