9537
Kommentar:
|
9547
|
Gelöschter Text ist auf diese Art markiert. | Hinzugefügter Text ist auf diese Art markiert. |
Zeile 175: | Zeile 175: |
Aufgaben: `<Es2V5>`_ | Aufgaben: `<FreeRTOSAufgabe>`_ |
Embedded Systems II (WS19/20)
Inhalt
Moodle-Kurs der Veranstaltung: https://moodle.hs-augsburg.de/course/view.php?id=2866
1 Termine
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.2 9. Oktober 2019
Ausgabe der Boards. Besprechen von eventuellen Problemen bei der Vorbereitung des PC.
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.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.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.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.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.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.9 27. November 2019
FreeRTOS
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.11 11. Dezember 2019
Besprechung der Evaluierung.
2 Tutorials
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
2.2 Sprache C
Nick Parlante, Essential C (frei, 45 Seiten), http://cslibrary.stanford.edu/101/
2.3 Linux
Linux lernen
- https://www.selflinux.org/selflinux/
- 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
- https://danielmiessler.com/study/tmux
- 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
- http://vim-adventures.com
- https://vimgifs.com
Make
Embedded Programmierung mit GNU Werkzeugen
Git
- Freies Pro Git Buch https://git-scm.com/book/de/v2
Sphinx