ES2 Klausurvorbereitung¶
WS23/24: https://tha.de/homes/hhoegl/home/EmbeddedSystems2324
Die alten Klausuren ansehen: 15/16, 16/17, 17/18, 18/19. Die beiden 18/19 und 19/20 sind identisch.
Das Skript ansehen: es2/skript/
Schauen Sie sich auch die Einfuehrung mit den Fragen am Ende an: es2/skript/intro.html
Fragensammlung am Ende: es2/skript/fragen.html. Die Fragen zu den State-Machines können Sie ignorieren, auch Programmiersprachen und MBed Projekt.
Grundlegende Kenntnisse zur UART Kommunikation.
Startup von RESET bis Eintritt von
main()
.
Taktversorgung des F446 oder L476 (Übersichtsbild welche Taktquellen es gibt).
Yiu, Cortex M for Beginners, 2016 es2/Yiu-WP-Cortex-M-Beginner-2016.pdf
In welche Einheiten sind die Funktionsblöcke des F446 bzw. L476 aufgeteilt? Siehe Farben im Bild am Anfang von
Yiu, Kapitel 2.3, 2.4, 2.5 (vor allem 2.5 über Programmablauf)
https://learning.oreilly.com/library/view/the-definitive-guide/9780124080829
GNU Compiler
Yiu, Kapitel 17.1-17.4, https://learning.oreilly.com/library/view/the-definitive-guide/9780124080829
Wer möchte, kann auch mal in das Buch von Lacamera hineinschauen (nicht relevant fuer Prüfung): Kap. 1 und 2
https://learning.oreilly.com/library/view/embedded-systems-architecture/9781803239545/
Exceptions, Interrupts, Faults
Übersichtsblatt
Zweiteiliger Artikel von Bertolotti (Pflicht!)
Wie findet man die Exception-Nummer eines Interrupts heraus?
Wie programmiert man einen Systick Handler?
Welche Funktionsblöcke spielen eine Rolle, wenn man externe Interrupts verwenden will?
Beispiele
syshandler-cmsis
undgpio-intr-cmsis
in https://gitlab.informatik.hs-augsburg.de/es2/es2-nucf446.Yiu, Kap. 7, 8, 12 (freiwillig)
Alle Themen und Beispiele aus der Vorlesung (siehe die einzelnen Termine in EmbeddedSystems2324)
Welche Programmteile in C kommen in welchen Speicherbereichen zu liegen? Betrachten Sie Vektoren, Maschinencode, initialisierte globale Daten, nicht initialisierte globale Daten, globale read-only Daten, Stack und Heap. Das Bild am Anfang des folgenden Abschnittes im Skript dient zur Verdeutlichung: es2/skript/prog.html
https://gitlab.informatik.hs-augsburg.de/es2/es2-nucf446/starter
Debuggen mit GDB. Siehe die GDB Quickref unter EmbeddedSystemsDocs.
Grundlegende Kenntnisse zu CMSIS-Core
Cube Bibliothek
https://gitlab.informatik.hs-augsburg.de/es2/es2-nucf446/cube-gpio-iotoggle
Retargeting und Semihosting
Yiu Kap. 2, interessant ist auch das Kap. 18
Nebenläufige Programmierung (Yiu, Kap. 19)
Der Artikel von Bill Earl, „Multi-tasking the Arduino“, beschreibt sehr anschaulich, wie man mehrere Sachen auf dem Mikrocontroller quasi-gleichzeitig erledigen kann, ohne einen echten Multi-Tasker zu haben. Wie funktionieren die einzelnen Evolutionsstufen der Anwendung mit ihren Vor- und Nachteilen?
Wie funktioniert der simple kooperative Multitasker in folgendem Beispielprogramm? https://gitlab.informatik.hs-augsburg.de/es2/es2-nucl476/taskswitch Wie kann man ihn erweitern, so dass ein präemptiver Multitasker entsteht?
Welches Problem verdeutlicht folgendes Beispiel? Auf welche Arten kann man es lösen? https://gitlab.informatik.hs-augsburg.de/es2/es2-nucl476/shared-data-problem
FreeRTOS/CMSIS-RTOS im Skript: es2/skript/rtos.html
Low-Power Programmierung
Skript: es2/skript/lowpower.html
Wie lange läuft ein Board, das bei 5V etwa 80 mA Strom aufnimmt, an einem 3,7V Li-Polymer Akku mit 550 mAh Kapazität? Zum Anheben der 3,7V auf 5V wird ein Schaltwandler mit fast 100% Wirkungsgrad verwendet.
Fragen zum Artikel von R. Keil, F. Grobe, Designing energy efficient systems with Cortex-M Microcontrollers, 2009:
Welche Betriebsarten zum Stromsparen hat ein moderner Mikrocontroller? Gerne in die Antwort eine Tabelle aufnehmen.
Mit welchem Trick bei der Programmierung kann man ein Gerät mehrere Jahre aus einer kleinen Batterie betreiben? Zeichnen Sie die Leistungsaufnahme über der Zeit hin.
Ist es besser, zum Stromsparen einen langsamen oder einen schnellen Mikrocontroller zu nehmen? (Hinweis: Die Stromaufnahme erhöht sich proportional mit der Taktfrequenz!)
Alle Versuche im Praktikum
Was soll an einem Embedded Arbeitsplatz alles vorhanden sein? Nachdenken über Werkzeuge, Messgeräte, Rechner.