## page was renamed from EmbeddedSystem1920 #format rst #language de ============================= Embedded Systems II (WS19/20) ============================= .. `Skript `_ | `ESTOOL Dokumentation `_ | `Alte Klausuren `_ .. contents:: Inhalt .. sectnum:: Moodle-Kurs der Veranstaltung: https://moodle.hs-augsburg.de/course/view.php?id=2866 Termine ------- 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.* 1. 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): http://ti-wiki.informatik.hs-augsburg.de/doku.php?id=rt-labor_benutzerinfo#virtuelle_maschine_rtlab_vm #. 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: http://hhoegl.informatik.hs-augsburg.de/dva/sphinxbericht #. 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. 9. Oktober 2019 ............... Ausgabe der Boards. Besprechen von eventuellen Problemen bei der Vorbereitung des PC. 16. Oktober 2019 ................ 1. Vorlesung (Speicheraufteilung des STM32). 1. 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. 23. Oktober 2019 ................ 2. 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 2. Praktikum (V1, zweiter Teil) 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 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. 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. ``_ 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: ``_ 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 27. November 2019 ................. FreeRTOS * http://hhoegl.informatik.hs-augsburg.de/es2/skript/freertos.html * Programmbeispiele ``FreeRTOS_*`` in https://r-n-d.informatik.hs-augsburg.de:8080/es2/es2-nucl476/cube-demos/ 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: ``_ 11. Dezember 2019 ................. Besprechung der Evaluierung. 18. Dezember 2019 ................. ``_ Tutorials --------- Debuggen mit dem GDB .................... - ``_ - Erstes Kapitel aus dem Buch *The Art of Debugging* (45 Seiten) http://hhoegl.informatik.hs-augsburg.de/es2/gnu/AoD_Ch1.pdf - 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 Sprache C ......... Nick Parlante, Essential C (frei, 45 Seiten), http://cslibrary.stanford.edu/101/ 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 - http://hhoegl.informatik.hs-augsburg.de/pub/make/lj-make-tutorial.pdf Embedded Programmierung mit GNU Werkzeugen - http://www.bravegnu.org/gnu-eprog/ Git - Freies Pro Git Buch https://git-scm.com/book/de/v2 Sphinx - http://www.sphinx-doc.org/en/master/usage/quickstart.html