Embedded Systems II (WS24/25)¶
Tragen Sie sich bitte in den Moodle Kurs #8558 ein. In den „Ankündigungen“ im Kurs finden Sie aktuelle Nachrichten.
Wir starten am Mittwoch den 9. Oktober, 14 Uhr, J3.19.
Zur Info, hier sind die Inhalte vom letzten Jahr: ES2 WS23/24.
Ein paar Begriffe und Bilder: https://hhoegl.informatik.hs-augsburg.de/es2/doc/es2-intro.pdf
Installationsanleitung: es2/doc/Installation.html
Repos für Übungen: https://gitlab.informatik.hs-augsburg.de/es2/ws24
Skript: es2/skript/index.html (Vorsicht, da ist noch viel für den STM32L476 enthalten, den wir früher verwendet haben)
Terminübersicht¶
#1 09.10.24 J3.19 Einfuehrung
#2 16.10.24 J3.19 Besprechung der Installation; GDB Uebung
#3 23.10.24 J3.19 + Labor Teams 1x
#4 30.10.24 J3.19 + Labor Teams 2x
#5 06.11.24 J3.19 + Labor Teams 1x
#6 13.11.24 J3.19 + Labor Teams 2x
#7 20.11.24 J3.19 + Labor (Projekte)
#8 27.11.24 J3.19 + Labor (Projekte)
#9 04.12.24 J3.19 + Labor (Projekte)
#10 11.12.24 J3.19 + Labor (Projekte)
#11 18.12.24 Abschluss
Stichpunkte zu den Terminen¶
#1 - 09.10.
Hausaufgabe bis nächstes Mal: Installationsanleitung abarbeiten, so dass das Starter Beispiel funktioniert:
https://gitlab.informatik.hs-augsburg.de/es2/es2-nucf446/starter
Empfohlener Lesestoff:
Lacamera, Kap. 1 (Embedded Systems - A Pragmatic Approach) und 2 (Work Environment and Workflow Optimization)
Yiu, Kap. 2 (Introduction to Embedded Software Development)
https://learning.oreilly.com/library/view/the-definitive-guide/9780124080829/xhtml/CHP002.html
#2 - 16.10.
Einteilung der Teams
Besprechung der Probleme bei der Installation
GDB Übung: https://gitlab.informatik.hs-augsburg.de/es2/es2-nucf446/gdb-uebung
#3 - 23.10.
Was kann man tun wenn SWD (Serial Wire Debug) Schnittstelle nicht mehr erreichbar ist? Lösung: Mit STM CubeProgrammer den Flash Speicher löschen (Option „after reset“ …).
Estool Update 0.32 (2024-10-23):
pip install -U .
im Repo eingebenDokumentation zum STM32F446: es2/stm32f4/
GDB Übung
V1 (GNU Umgebung kennenlernen - Code enthalten)
V2 (STM32 Interrupts - verweist auf Repos
starter-cmsis
,syshandler-cmsis
,gpio-intr-cmsis
)Alle Repos für Nucleo F446: https://gitlab.informatik.hs-augsburg.de/es2/es2-nucf446/
cube-gpio-iotoggle
: Demo wie man Cube Bibliothek mitestool
in das Projekt bekommt.Erstellen der
compile_commands.json
. Entweder mitcompiledb
oderbear
compiledb make
(vorherpip install compiledb
)bear -- make
(vorherapt install bear
)
Diese Datei benötigt der „Language Server“, z.B.
clangd
oderccls
.Vorschlag für kleinere Projekte in der zweiten Semesterhälfte
Nuttx https://nuttx.apache.org
Elektor Bare Metal Guide https://github.com/cpq/bare-metal-programming-guide
Zephyr https://zephyrproject.org
PyOCD, SWO, Semihosting https://pyocd.io
Starkstrom, Code für STM32F4 über CLI Programme verwalten
Embedded Rust https://github.com/rust-embedded, https://docs.rust-embedded.org
#4 - 30.10.
Literatur¶
Diverse Doku zu GDB
Quickref es2/gnu/gdb-quickref-es2.pdf
GDB Dokumentation
OpenOCD
OpenOCD Manual (0.12.0) es2/openocd/openocd-0.12.0.pdf
Bücher zum Thema
Daniele Lacamera, Embedded Systems Architecture - Second Edition, 2nd ed., Packt 2023. https://learning.oreilly.com/library/view/embedded-systems-architecture/9781803239545
Joseph Yiu, The Definitive Guide to ARM® Cortex®-M3 and Cortex®-M4 Processors, 3rd Edition, Newnes 2013. https://learning.oreilly.com/library/view/the-definitive-guide/9780124080829/
Cem Ünsalan, Hüseyin Deniz Gürhan, Mehmet Erkin Yücel, Embedded System Design with ARM Cortex-M Microcontrollers. Applications with C, C++ and MicroPython, Springer 2022. https://link-springer-com.ezproxy.hs-augsburg.de/book/10.1007/978-3-030-88439-0
Norman Matloff, Peter Jay Salzman, The Art of Debugging with GDB, DDD, and Eclipse, No Starch Press 2008. https://learning.oreilly.com/library/view/the-art-of/9781593271749/
Hinweis auf A bare metal programming guide von Sergey Lyubka (Autor von https://mongoose-os.com, https://mongoose.ws, https://vcon.io, Fa. Cesanta in Irland). Das Repository enthält eine Einführung in die Bare-Metal Programmierung von ARM Mikrocontrollern mit Open-Source Werkzeugen. Der Text ist in den Sprachen Englisch, Türkisch und Chinesisch vorhanden. Es gibt viele Beispielprogramme. Diese Software ist in den Produkten von „Shelly“ (https://www.shelly.com) enthalten.