9932
Kommentar:
|
10311
|
Gelöschter Text ist auf diese Art markiert. | Hinzugefügter Text ist auf diese Art markiert. |
Zeile 213: | Zeile 213: |
Die Aufgabe 3 beschäftigt sich mit der ST Micro "Cube" Bibliothek. Die zwei Verzeichnisse GPIO_IO_TOGGLE und GPIO_EXTI sind im Repository | Die Aufgabe 3 beschäftigt sich mit der ST Micro "Cube" Bibliothek an Hand der zwei Beispiele GPIO_IO_TOGGLE und GPIO_EXTI. Beide Verzeichnisse sind im Repository |
Zeile 219: | Zeile 220: |
enthalten. | enthalten. Die Aufgaben finden Sie jeweils in der README.md. |
Zeile 232: | Zeile 233: |
In der virtuellen Maschine (Xubuntu) finden Sie die Cube Bibliothek an der Stelle ``/opt/rtlab/share/stm32cubel4``. Prüfen Sie auch hier den korrekten Wert von ``CUBE_HOME``. Wie die Installation erfolgte, entnehmen Sie dem Text http://ti-wiki.informatik.hs-augsburg.de/doku.php?id=rt-labor_rtvm. |
Embedded Systems II (WS20/21)
Inhalt
Bitte melden Sie sich im Moodle Kurs an: https://moodle.hs-augsburg.de/course/view.php?id=4116
Am Mittwoch um 14 Uhr ist unser Zoom Meeting:
Zoom Meeting: https://hs-augsburg.zoom.us/j/98633783218?pwd=V1JncHJZT21aUmtwaDNoUHVnMEJyZz09 Meeting-ID: 986 3378 3218 | Kenncode: 925295
1 7.10., Vorbesprechung
7.10.2020, 14 Uhr
Ziele
- Mikrocontroller in C programmieren
- Wie läuft ein C Programm auf unterster Ebene ab? (Zusammenhänge klar machen)
- Elementares Debuggen eines C Programms mit GDB (Link)
- Verwendung eines Logikanalysators (Saleae Logic https://www.saleae.com)
- Exceptions und Interrupts
- Programmieren mit Bibliotheken (CMSIS und Cube)
- Umlenken der Ein-/Ausgabe
- Quasi-parallele Programmierung mit RTOS (FreeRTOS)
- Low-power Programmierung
Skript (leider nicht vollständig) http://hhoegl.informatik.hs-augsburg.de/es2/skript
Arbeitsumgebung
- Linux, Kommandozeile, freie Werkzeuge
- Virtuelle Maschine http://ti-wiki.informatik.hs-augsburg.de/doku.php?id=rt-labor_rtvm
- estool - Hilfsprogramm zum Flashen, Debuggen, ... https://r-n-d.informatik.hs-augsburg.de:8080/hubert.hoegl/estool
Experimentierboard "Nucleo STM32L476" https://www.st.com/en/evaluation-tools/nucleo-l476rg.html
- ARM Cortex M4
- Bild: http://hhoegl.informatik.hs-augsburg.de/es2/img/NUCLEO-L476RG.webp
- Preis nur ca. 12 Euro
"Board Server" (wg. Covid-19), vier Nucleo Boards hängen mit allen Schnittstellen an einem Server an der Hochschule. Einloggen per ssh, Board reservieren - arbeiten - freigeben. Man kann einige Pins lesen, setzen, sowie mit einem Logikanalysator betrachten (Saleae Logic). Die Bedienung erfolgt über das "estool".
http://hhoegl.informatik.hs-augsburg.de/es2/img/Aufbau-im-Kaefig.jpg
Nucleo Board und ESP8266 (ERC - Embedded Remote Controller) http://hhoegl.informatik.hs-augsburg.de/es2/img/Nucleo-und-ESP.jpeg
Praktikum
Teamarbeit
6 Versuche (auch im gitlab, z.B. https://r-n-d.informatik.hs-augsburg.de:8080/es2/v1)
Alle zwei Wochen ein Versuch. Vorbereitung und Nachbereitung nötig.
Berichte mit Sphinx schreiben. Abgabe mit Code in Gitlab.
Sphinx Vorlage: https://r-n-d.informatik.hs-augsburg.de:8080/es2/ws2020_21/team_demo
Wegen Covid-19 können wir nicht wie gewohnt im Labor G2.16 arbeiten. Maximal 7 Personen plus 2 Betreuer.
Hoffnung: Manche Experimente aus der Ferne mit dem Board-Server machen. Möglich wäre auch, dass nur ein Team-Mitglied im Labor ist, und die anderen über Video teilnehmen.
Gitlab Repositories
Ausarbeitung jedes Teams (Bericht, Bilder, Videos, Code, ...)
Issues
Beispielprogramm, z.B. "starter"
https://r-n-d.informatik.hs-augsburg.de:8080/es2/es2-nucl476/starter
Lesestoff
- 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/
Hausaufgabe bis 14.10.
- Rechner/Notebook für Linux startklar machen. Z.B. obige virtuelle Maschine installieren.
- Einarbeiten in Sphinx
- Einarbeiten in Gitlab (https://r-n-d.informatik.hs-augsburg.de)
- Öffentlichen ssh Schlüssel in Gitlab anlegen: http://hhoegl.informatik.hs-augsburg.de/hhwiki/GitSpicker#git-im-www-gitlab
- Sphinx Demobericht klonen, kompilieren nach HTML, lesen https://r-n-d.informatik.hs-augsburg.de:8080/hubert.hoegl/sphinxbericht http://hhoegl.informatik.hs-augsburg.de/dva/sphinxbericht
- Die Sphinx Vorlage "team_demo" für Ihr Team anpassen und in das Team Repository aufnehmen.
2 14.10., 14 Uhr
"RTLAB-Remote" EmbeddedSystemsAnleitungen
Beispiel "starter": https://r-n-d.informatik.hs-augsburg.de:8080/es2/v1
Hausaufgaben
Im Buch von Yiu das Kapitel 19 lesen (Getting Started with the GNU Compiler Collection).
oder hier: http://hhoegl.informatik.hs-augsburg.de/es2/gnu/DGCM3-2e-ch19.pdf
Heutige Vorfuehrung nachvollziehen und in Bericht aufnehmen (siehe EmbeddedSystemsAnleitungen, Abschnitt "RTLab-Remote")
Versuch/Aufgabe 1: https://r-n-d.informatik.hs-augsburg.de:8080/es2/v1
Aufgabenteile 1.1 und 1.2 bearbeiten, auch in Bericht aufnehmen!
Die Beispielprogramme darin (blinky, startupcode und serial) haben noch Zeit!
3 21.10., 14 Uhr
Ausführliche Besprechung des "starter" Beispiels und der drei Programme von Versuch/Aufgabe 1. Siehe das Vorlesungs-Video es2-21-oct-20.mp4 unter http://hhoegl.informatik.hs-augsburg.de/video.
Als Hausaufgabe ist die Aufgabe 1 bis 28.10 auf.
4 28.10., 14 Uhr
Die zweite Aufgabe besteht aus drei Teilen:
https://r-n-d.informatik.hs-augsburg.de:8080/es2/es2-nucl476/starter-cmsis
https://r-n-d.informatik.hs-augsburg.de:8080/es2/es2-nucl476/syshandler-cmsis
https://r-n-d.informatik.hs-augsburg.de:8080/es2/es2-nucl476/gpio-intr-cmsis
In jedem Teil ist ein Aufgabentext mit dem Dateinamen Aufgaben.rst.
Beim Versuch gpio-intr-cmsis muss man den User-Button B1 auf dem Nucleo Board drücken. Wenn man den Versuch auf dem RTlab-Remote Server macht, dann sieht man hier, wie die Ansteuerung des Nucleo-Boards mit dem ERC gemacht wurde:
http://hhoegl.informatik.hs-augsburg.de/es2/stm32l4/rtlab-remote-nucleo-signals.svg
5 4.11., 14 Uhr
Aufgabe 1 ist bei den meisten fertiggestellt.
Aufgabe 2 ist bis naechste Woche (11.11.) auf.
Lesestoff:
STM32 Exception Processing stm32_exc_prog.svg | stm32_exc_prog.pdf
Hervorragender Artikel von I.C. Bertolotti zum Cortex-M Exception Handling (10 Seiten, nicht Pflicht, aber wer es genauer wissen mag, sollte ihn lesen) http://hhoegl.informatik.hs- augsburg.de/es2/exceptions/bertolotti/
Yiu, Kap. 2 (Introduction to Embedded Software Development)
https://learning.oreilly.com/library/view/the-definitive-guide/9780124080829/xhtml/CHP002.html
6 11.11., 14 Uhr
TODO: V2 heute zu Ende bringen und den Bericht updaten.
Die Aufgabe 3 beschäftigt sich mit der ST Micro "Cube" Bibliothek an Hand der zwei Beispiele GPIO_IO_TOGGLE und GPIO_EXTI. Beide Verzeichnisse sind im Repository
https://r-n-d.informatik.hs-augsburg.de:8080/es2/es2-nucl476/cube-demos
enthalten. Die Aufgaben finden Sie jeweils in der README.md.
Damit man diese Beispiele kompilieren kann, muss die Cube Bibliothek installiert sein. Auf dem RTLab-Remote Server ist das in /opt/stm32cubel4/.
Wichtig ist, dass Sie die Umgebungsvariable CUBE_HOME auf das Cube Installationsverzeichnis setzen. Nehmen Sie dazu auf dem RTLab-Remote Server in ~/.profile noch die Zeile
export CUBE_HOME=/opt/stm32cubel4
Danach müssen Sie die Datei neu einlesen mit source ~/.profile.
In der virtuellen Maschine (Xubuntu) finden Sie die Cube Bibliothek an der Stelle /opt/rtlab/share/stm32cubel4. Prüfen Sie auch hier den korrekten Wert von CUBE_HOME. Wie die Installation erfolgte, entnehmen Sie dem Text http://ti-wiki.informatik.hs-augsburg.de/doku.php?id=rt-labor_rtvm.
7 Zum Nachschlagen
- Alle relevanten Handbücher/Manuals/Datenblätter sind hier: EmbeddedSystemsDocs
- Zum GDB
- GDB Quickref quickref.txt, quickref.pdf
- GNU Debugger Text User Interface main.svg | main.pdf
- GDB Anleitung/Übung https://r-n-d.informatik.hs-augsburg.de:8080/es2/es2-nucl476/gdb-uebung (siehe Aufgaben.rst)
- Info zu tmux
- Eine Seite mit den wichtigsten Kommandos http://hhoegl.informatik.hs-augsburg.de/pub/tmux/tmux-quickref/tmux-quickref.pdf
- Guter Artikel vom Linux Journal (2016) http://hhoegl.informatik.hs-augsburg.de/pub/tmux/tmux-lj-3-2016.pdf
- http://hhoegl.informatik.hs-augsburg.de/hhwiki/tmux
- Git Spicker http://hhoegl.informatik.hs-augsburg.de/hhwiki/GitSpicker