1 Embedded Systems II (WS19/20)¶
Moodle-Kurs der Veranstaltung: https://moodle.hs-augsburg.de/course/view.php?id=2866
1.1 Termine¶
1.1.1 2. Oktober 2019¶
Hausaufgaben vom 2. Oktober:
Machen Sie sich bitte Notizen über alle durchgeführten Schritte, so dass Sie später nachschauen können, was Sie gemacht haben. Das ist eine gute Praxis in der täglichen Arbeit. Notieren Sie auch, wenn es zu Problemen kommt. Dann besprechen wir diese Fälle im Praktikum.
Die Virtuelle Maschine für die Arbeit mit Linux installieren. Die Anleitung dazu ist hier (Achtung, sie müssen von einem Rechner aus der Hochschul-Domäne zugreifen oder von zu Hause über VPN an die Hochschule gehen):
Tragen Sie ihren öffentlichen ssh Schlüssel in Ihre Gitlab-Einstellungen ein. Dadurch können Sie in Zukunft Gitlab Repositories mit ssh URL (
ssh://git@r-n-d...
) klonen, ohne die Eingabe eines User- Namen oder Passwortes.Anleitung: https://docs.gitlab.com/ee/gitlab-basics/create-your-ssh-keys.html
Den „sphinxbericht“ von Gitlab holen und nach HTML übersetzen und lesen.
https://r-n-d.informatik.hs-augsburg.de:8080/hubert.hoegl/sphinxbericht
Im HTML-Format finden Sie den Demobericht hier:
Das „starter“ Beispiel holen und untersuchen, so wie in der Vorlesung gezeigt. Am kommenden Mittwoch (9.10.) bekommen Sie das Nucleo-L476 Board. Dann können Sie das „starter“ Beispiel damit testen:
https://r-n-d.informatik.hs-augsburg.de:8080/es2/es2-nucl476/starter
Das ESTOOL Programm installieren (das früherer Werkzeug „eside“ brauchen wir nicht).
https://r-n-d.informatik.hs-augsburg.de:8080/hubert.hoegl/estool
Die Repositories für die Berichte werden nach der Team-Einteilung hier sein:
https://r-n-d.informatik.hs-augsburg.de:8080/es2/ws2019_20/
Die Repositories sind noch leer. Einen Sphinx-Bericht ohne Inhalt mit der richtigen Struktur für das Praktikum finden Sie hier:
http://hhoegl.informatik.hs-augsburg.de/es2/Initialer-Bericht.tar.gz
Dieses tar Archiv wird in das noch leere Repository entpackt:
cd repo tar zxvf ~/Initialer-Bericht.tar.gz rm ~/Initialer-Bericht.tar.gz
Sehen Sie sich an, was in dem Gerüst steckt. Den Inhalt des tar Archivs geben Sie mit
tar ztf Initialer-Bericht.tar.gz
aus.
1.1.2 9. Oktober 2019¶
Ausgabe der Boards. Besprechen von eventuellen Problemen bei der Vorbereitung des PC.
1.1.3 16. Oktober 2019¶
Vorlesung (Speicheraufteilung des STM32).
Praktikum (V1)
https://r-n-d.informatik.hs-augsburg.de:8080/es2/v1
Der Aufgabentext ist in
v1.rst
und kann direkt in Gitlab angeklickt und gelesen werden.
1.1.4 23. Oktober 2019¶
Vorlesung: Einfuehrung in den GDB
http://hhoegl.informatik.hs-augsburg.de/sysprog/gdb_anleitung/quickref.txt
http://hhoegl.informatik.hs-augsburg.de/sysprog/gdb_anleitung/quickref.pdf
Praktikum (V1, zweiter Teil)
1.1.5 30. Oktober 2019¶
Es geht heute nicht wie erwartet um die Cube-Bibliothek, sondern um Exceptions und Interrupts. Die Übungsaufgaben sind direkt in den Code Repositories enthalten:
http://r-n-d.informatik.hs-augsburg.de:8080/es2/es2-nucl476/syshandler-cmsis (V2a)
http://r-n-d.informatik.hs-augsburg.de:8080/es2/es2-nucl476/gpio-intr-cmsis (V2b)
Lesestoff
Diese Beispiele verwenden die „CMSIS“ Abstraktion, näheres dazu findet man im Abschnitt 2.9 des Buches von Yiu: http://hhoegl.informatik.hs-augsburg.de/es2/nonfree/Yiu-Kapitel/
Eine Liste aller Interrupt Vektoren ist hier (aus dem [RM]): http://hhoegl.informatik.hs-augsburg.de/es2/stm32l4/Manuals/RM-Vectors.pdf
Skript http://hhoegl.informatik.hs-augsburg.de/es2/skript/stm32l4.html
Zu Exceptions (= Faults + Interrupts) die Kap. im Yiu die Abschnitte 4.5, 7 und 8: http://hhoegl.informatik.hs-augsburg.de/es2/nonfree/Yiu-Kapitel/
Bilder aus dem Artikel von I.C. Bertolotti, Cortex-M Exception Handling Exc-Prio | Exc-Ablauf
CMSIS Referenz https://arm-software.github.io/CMSIS_5/Core/html/index.html
1.1.6 6. November 2019¶
https://r-n-d.informatik.hs-augsburg.de:8080/es2/es2-nucl476/cube-demos/tree/master/GPIO_IO_TOGGLE (V3a)
https://r-n-d.informatik.hs-augsburg.de:8080/es2/es2-nucl476/cube-demos/tree/master/GPIO_EXTI (V3b)
Die Aufgaben sind wieder in den Repositories enthalten.
1.1.7 13. November 2019¶
Umlenken der Ein- und Ausgabe auf den UART (retargeting)
https://r-n-d.informatik.hs-augsburg.de:8080/es2/es2-nucl476/retarget (V4)
Der Aufgabentext ist im Repository enthalten.
1.1.8 20. November 2019¶
Quasi-parallele Programmierung (und ihre Probleme)
https://r-n-d.informatik.hs-augsburg.de:8080/es2-nucl476/taskswitch
https://r-n-d.informatik.hs-augsburg.de:8080/es2-nucl476/shared-data-problem
Aufgaben: FreeRTOSAufgabe
Lesestoff:
Developing Applications on STM32Cube with RTOS (UM1722)
http://elk.informatik.hs-augsburg.de/es2/stm32l4/Manuals/DM00105262.pdf
Yiu, The Definitive Guide to the Cortex M3 and M4, chap. 19 (Using Embedded Operating Systems)
http://elk.informatik.hs-augsburg.de/es2/nonfree/Yiu-Kapitel/yiu3e-kap19.pdf
1.1.9 27. November 2019¶
FreeRTOS
1.1.10 4. Dezember 2019¶
Low-Power Programmierung
http://hhoegl.informatik.hs-augsburg.de/es2/skript/lowpower.html
http://hhoegl.informatik.hs-augsburg.de/es2/prog/keil_grobe_energyeff.pdf (S. 1-9)
Elecia White, Making Embedded Systems, chap. 10 „Reducing Power Consumption“
STM32L4 ultra-low-power features overview (AN4621), 2017
STM32L4 Reference Manual, chap. 5.3 „Low-power modes“
Aufgaben: Es2V6
1.1.11 11. Dezember 2019¶
Besprechung der Evaluierung.
1.1.12 18. Dezember 2019¶
1.2 Tutorials¶
1.2.1 Debuggen mit dem GDB¶
Erstes Kapitel aus dem Buch The Art of Debugging (45 Seiten)
Peter J. Salzman’s GDB tutorial: http://hhoegl.informatik.hs-augsburg.de/es2/gnu/gdb (die originale Seite www.dirac.org/linux/gdb scheint es nicht mehr zu geben)
RMS’s GDB tutorial: http://www.unknownroad.com/rtfm/gdbtut („RMS“ sind die Initialen des Gruenders des GNU Projektes, Richard M. Stallman. Wer gern mehr ueber diese Person und das GNU Projekt erfahren moechte, dem empfehle ich das folgende freie Buch: https://www.oreilly.com/openbook/freedom/).
Beej’s Quick Guide to GDB: http://beej.us/guide/bggdb
Offizielle GDB Dokumentation: https://www.gnu.org/software/gdb/documentation
1.2.2 Sprache C¶
Nick Parlante, Essential C (frei, 45 Seiten), http://cslibrary.stanford.edu/101/
1.2.3 Linux¶
Linux lernen
LPIC Kurse (mit Angabe freier Literatur) http://hhoegl.informatik.hs-augsburg.de/hhwiki/LPIC
Tmux Tutorials
http://hhoegl.informatik.hs-augsburg.de/elinux/tmux/tmux-lj-3-2016.pdf
Buch „The Tao of Tmux“ https://leanpub.com/the-tao-of-tmux (frei zu lesen)
Vim Tutorials
Auf der Linux Kommandozeile das Kommando
vimtutor
eingeben.Quick Reference http://hhoegl.informatik.hs-augsburg.de/pub/vim/vim_quick_reference_card.pdf
Vim for C Programmers http://hhoegl.informatik.hs-augsburg.de/pub/vim/vim-for-c-programmers.pdf (siehe auch andere Sachen in diesem Ordner: http://hhoegl.informatik.hs-augsburg.de/pub/vim)
Derek Wyatt’s Vim Tutorial Videos http://derekwyatt.org/vim/tutorials/
OpenVIM interactive tutorial http://www.openvim.com/tutorial.html
Steve Oualline, Vim Book ftp://ftp.vim.org/pub/vim/doc/book/vimbook-OPL.pdf
Swaroop CH, A Byte of Vim, https://vim.swaroopch.com
Jesse Goerz, Beginner’s guide to Vi Improved (vim), http://newbiedoc.sourceforge.net/text_editing/vim.html.en
Make
Embedded Programmierung mit GNU Werkzeugen
Git
Freies Pro Git Buch https://git-scm.com/book/de/v2
Sphinx