#format rst #language de ============================= Embedded Systems II (WS17/18) ============================= **Vorlesung** Mi, 14-15:30 in M1.02 +++ **Praktikum** Mi, 15:40-18:50 in G2.16 .. contents:: Inhalt .. sectnum:: Neuigkeiten =========== * In Fritzing habe ich das STM32 Nucleo Board und ein kleines Steckbrett nebeneinander platziert: - Fritzing Datei (.fzz): http://hhoegl.informatik.hs-augsburg.de/es2/img/es2-template.fzz - PNG Bild: http://hhoegl.informatik.hs-augsburg.de/es2/img/es2-template_bb.png Diese Vorlage dürfen Sie gerne in Ihrem Bericht verwenden. * Nucleo STM32L476RG Arduino Pins http://hhoegl.informatik.hs-augsburg.de/es2/img/nucleo_l476rg_arduino.png 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 . 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 Kursmaterial ============ * Skript http://hhoegl.informatik.hs-augsburg.de/es2/skript * Auszüge aus Datenblättern http://hhoegl.informatik.hs-augsburg.de/es2/stm32l4/Auszuege * `ESIDE Dokumentation `_ (mit Installationsanleitung) * Praktikum mit Aufgaben: http://www.andreas-tschirner.de * Anleitung "Einfache Berichte mit Sphinx schreiben" http://hhoegl.informatik.hs-augsburg.de/dva/sphinxbericht/ 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 . 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** - Fehler: OpenOCD erkennt Nucleo STM32L476 Board nicht. Abhilfe: OpenOCD muss unbedingt Version 0.10 oder neuer sein. - Fehler: ``libusb-1.0-0-dev`` ist nicht installiert. Abhilfe: ``apt-get install libusb-1.0-0-dev`` - Fehler: arm-none-eabi-gdb hat nicht Python eingebaut. Abhilfe: Download des Binaerpaketes von https://launchpad.net/gcc-arm-embedded/. Dabei ist ein ``arm-none-eabi-gdb-py``. Nachtrag: Aktueller Download der 64-Bit Version von https://developer.arm.com/open-source/gnu-toolchain/gnu-rm/downloads Wöchentliche Termine ==================== - Mittwoch, 14:00 bis 18:50 - Allerheiligen 1.11.2017 ist frei .. - Buss- und Bettag 22.11.2017 ist frei 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!* 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. 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``. **Praktikum:** Gruppe 2 beginnt mit Versuch 1 8.11.2017 --------- **Vorlesung:** **Praktikum:** Gruppe 1 gibt Versuch 1 ab und beginnt mit Versuch 2. 15.11.2017 ---------- **Vorlesung:** **Praktikum:** Gruppe 2 gibt Versuch 1 ab und beginnt mit Versuch 2. 22.11.2017 ---------- **Vorlesung:** **Praktikum:** Gruppe 1 gibt Versuch 2 ab und beginnt mit Versuch 3. 29.11.2017 ---------- **Vorlesung:** **Praktikum:** Gruppe 2 gibt Versuch 2 ab und beginnt mit Versuch 3. 6.12.2017 --------- **Vorlesung:** **Praktikum:** Gruppe 1 gibt Versuch 3 ab. 13.12.2017 ---------- **Vorlesung:** **Praktikum:** Gruppe 2 gibt Versuch 3 ab. 20.12.2017 ---------- **Vorlesung:** **Praktikum:** Zeit fuer Nachholer. Abgabe der Berichte bis spaetestens 24 Uhr.