#language de #format rst ES2 Klausurvorbereitung ======================= WS23/24: https://hhoegl.informatik.hs-augsburg.de/hhwiki/EmbeddedSystems2324 | * Die alten Klausuren ansehen: 15/16, 16/17, 17/18, 18/19. Die beiden 18/19 und 19/20 sind identisch. https://hhoegl.informatik.hs-augsburg.de/es2/Klausuren/ | * Das Skript ansehen: https://hhoegl.informatik.hs-augsburg.de/es2/skript/ Schauen Sie sich auch die Einfuehrung mit den Fragen am Ende an: https://hhoegl.informatik.hs-augsburg.de/es2/skript/intro.html Fragensammlung am Ende: https://hhoegl.informatik.hs-augsburg.de/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 https://hhoegl.informatik.hs-augsburg.de/es2/stm32l4/Manuals/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 https://hhoegl.informatik.hs-augsburg.de/es2/skript/stm32l4.html | * Yiu, Kapitel 2.3, 2.4, 2.5 (vor allem 2.5 über Programmablauf) https://learning.oreilly.com/library/view/the-definitive-guide/9780124080829 .. https://hhoegl.informatik.hs-augsburg.de/es2/nonfree/Yiu-Kapitel/yiu3e-kap2.pdf | * GNU Compiler Yiu, Kapitel 17.1-17.4, https://learning.oreilly.com/library/view/the-definitive-guide/9780124080829 .. https://hhoegl.informatik.hs-augsburg.de/es2/nonfree/Yiu-Kapitel/yiu3e-kap17.pdf 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/ .. 1. Auflage: https://hhoegl.informatik.hs-augsburg.de/es2/nonfree/Lacamera-ESA-2018/9781788832502-EMBEDDED_SYSTEM_ARCHITECTURE.pdf | * Exceptions, Interrupts, Faults * Übersichtsblatt https://hhoegl.informatik.hs-augsburg.de/es2/exceptions/stm32_exc_proc/stm32_exc_proc.svg * Zweiteiliger Artikel von Bertolotti (Pflicht!) https://hhoegl.informatik.hs-augsburg.de/es2/exceptions/bertolotti/ * 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`` und ``gpio-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 https://hhoegl.informatik.hs-augsburg.de/hhwiki/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: https://hhoegl.informatik.hs-augsburg.de/es2/skript/prog.html | - https://gitlab.informatik.hs-augsburg.de/es2/es2-nucf446/starter | - Debuggen mit GDB. Siehe die GDB Quickref unter https://hhoegl.informatik.hs-augsburg.de/hhwiki/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? https://learn.adafruit.com/multi-tasking-the-arduino-part-1 * 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: https://hhoegl.informatik.hs-augsburg.de/es2/skript/rtos.html .. * Programmbeispiele FreeRTOS_* in https://gitlab.informatik.hs-augsburg.de/es2/es2-nucl476/cube-demos/ .. * Constantin Gonzalez, Amazon FreeRTOS -- Brücke in die IoT-Welt, Elektronik 24 2018 (4 Seiten). https://hhoegl.informatik.hs-augsburg.de/es2/prog/rtos/aFreeRTOS-Elektronik-24-2018.pdf | - Low-Power Programmierung - Skript: https://hhoegl.informatik.hs-augsburg.de/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: 1. Welche Betriebsarten zum Stromsparen hat ein moderner Mikrocontroller? Gerne in die Antwort eine Tabelle aufnehmen. 2. 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. 3. Ist es besser, zum Stromsparen einen langsamen oder einen schnellen Mikrocontroller zu nehmen? (Hinweis: Die Stromaufnahme erhöht sich proportional mit der Taktfrequenz!) https://hhoegl.informatik.hs-augsburg.de/es2/prog/keil_grobe_energyeff.pdf | * Alle Versuche im Praktikum | * Was soll an einem Embedded Arbeitsplatz alles vorhanden sein? Nachdenken über Werkzeuge, Messgeräte, Rechner.