ES2 Klausurvorbereitung ======================= .. * Die alten Klausuren ansehen: 15/16, 16/17, 17/18, 18/19. Die beiden 18/19 und 19/20 sind identisch. ``_ .. * Das Skript ansehen: ``_ Schauen Sie sich auch die Einfuehrung mit den Fragen am Ende an: ``_ Fragensammlung am Ende: ``_. Die Fragen zu den State-Machines können Sie ignorieren, auch Programmiersprachen und MBed Projekt. .. * Grundlegende Kenntnisse zur UART Kommunikation. .. - Cube Bibliothek https://gitlab.informatik.hs-augsburg.de/es2/es2-nucf446/cube-gpio-iotoggle | * 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: ``_ | * Startup von RESET bis Eintritt von ``main()``. | * Taktversorgung des F446 oder L476 (Übersichtsbild welche Taktquellen es gibt). | * Yiu, Cortex M for Beginners, 2016 ``_ | * In welche Einheiten sind die Funktionsblöcke des F446 bzw. L476 aufgeteilt? Siehe Farben im Bild am Anfang von ``_ | * J. Yiu, The Definitive Guide to ARM® Cortex®-M3 and Cortex®-M4 Processors, 3rd Edition, https://learning.oreilly.com/library/view/the-definitive-guide/9780124080829 - Intro to embedded software development Kap. 2.3, 2.4, 2.5 (vor allem 2.5 über Programmablauf) - CMSIS Core (Kap. 2.9) - GNU Compiler Kap. 17.1 - 17.4 - Retargeting und Semihosting Ende von Kap. 2, Kap. 18 | * Debuggen mit GDB | * Alle Versuche im Praktikum https://gitlab.informatik.hs-augsburg.de/es2/es2-nucf446/ - Starter Beispiel - GDB-Uebung - V1 - V3 | * Was soll an einem Embedded Arbeitsplatz alles vorhanden sein? Nachdenken über Werkzeuge, Messgeräte, Rechner. | * 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/ | **In diesem Semester nicht:** * 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`` und ``gpio-intr-cmsis`` in https://gitlab.informatik.hs-augsburg.de/es2/es2-nucf446. * Yiu, Kap. 7, 8, 12 (freiwillig) | * Low-Power Programmierung - Skript: ``_ - 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!) ``_ * 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: ``_ .. * 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