Mikrocontroller

Mikrocontroller Programmierung am Beispiel von RISC-V und ARM Cortex-M CPU-Cores

Mikrocontroller sind allgegenwärtig. Sie werden immer dann gebraucht, wenn ein elektronisches Gerät besonders wenig Strom verbrauchen, besonders zuverlässig, besonders klein, besonders schnell oder besonders preiswert sein soll und zudem die Funktion durch Software bestimmt werden soll. Diese Schulung wendet sich an Personen, die das faszinierende Gebiet der Mikrocontroller kennenlernen wollen, in dem Soft- und Hardware eng miteinander verknüpft sind.

Im Rahmen dieser Schulung werden Mikrocontroller mit ARM-Cortex-M- und RISC-V-CPU-Cores verwendet. Das sind Controller mit einer Wortbreite von 32 Bit oder mehr, welche sehr weit verbreitet (ARM) bzw. relativ neu (RISC-V) sind und derzeit für alle Anwendungen ohne Embedded Linux o.ä. quasi einen "Standard" darstellen. Die erworbenen Kenntnisse können jedoch leicht auf andere Controller-Typen übertragen werden. Im Gegensatz zu ARM ist bei RISC-V die sog. "Instruction Set Architecture" (ISA) "open source", so dass es nicht nur möglich sondern auch legal ist, eigene Controller auf Basis von RISC-V ohne Zahlung von Lizenzgebühren zu entwickeln und zu vermarkten.

Neben dem Einsatz von Emulatoren zur effizienten Softwareentwicklung mit virtueller Hardware wird in diesem Kurs auch mit realen Controller-Boards gearbeitet.

Dieser Kurs richtet sich an Teilnehmer, die Mikrocontroller kennenlernen möchten sowie die Grundzüge und Besonderheiten der Softwareentwicklung für Mikrocontroller-Systeme lernen und einüben wollen.

Trainer und Dozenten

Dipl-Ing. Cord Elias hat über 30 Jahre Erfahrung im Design von Hard- und Software für Mikrocontroller-basierte Systeme.

Voraussetzungen

  • Der Umgang mit der Linux-Kommandozeile sollte vertraut sein.
  • Solide Kenntnisse der Programmiersprache C sind erforderlich, wie Sie sie in unserer Schulung C Programmierung erlernen können.
  • Grundkenntnisse in Elektronik sind hilfreich.
  • Manuals und Datenblätter der im Kurs eingesetzten Hardware liegen nur in englischer Sprache vor.

Inhalt

Einführung

  • Funktionsweise von Mikrocontrollern
  • Unterschied zu Mikroprozessoren
  • Hard- und Software-Plattformen zum Kennenlernen von Mikrocontrollern

Toolketten zur Softwareentwicklung für Mikrocontroller

  • Cross-Compiler-Toolchain
  • Simulations- und Emulations-Tools
  • Debugger
  • Programmer
  • IDEs
  • Erstes Beispiel: Blinkende LED

Kurzeinführung in Assembler

Technik: Subsysteme von Mikrocontrollern, u.a.:

  • Speicher: RAM, Flash
  • Pins: Beschaltung, Eigenschaften
  • Timer/Counter
  • Kommunikation: U(S)ART
  • Kommunikation: I2C-Bus
  • Kommunikation: SPI-Bus

Hardwarenahes Programmieren in C, u.a.:

  • GPIO
  • Analog-Digital-Wandler
  • UART
  • PWM

Programmiertechniken, u.a.

  • Numerik: (scaled) Integer, Gleitkomma
  • Interrupts und Exceptions
  • Scheduling
  • Interaktion mit Benutzern

Debugging, u.a.:

  • Die LED, Dein Freund und Helfer
  • Debug-Interface zwischen Host-PC und Target-Board
  • Sinnvoller Einsatz eines Debuggers

optional (Beispiele):

  • Kommunikation mit Bit Bang
  • LC-Display-Ansteuerung

Aus den optionalen Teilen kann je nach Zeit und Vorlieben der Teilnehmer etwas ausgewählt werden.

Kurszeiten

Wer möchte, reist bis 22 Uhr am Vortag an und nutzt den Abend bereits zum Fachsimpeln am Kamin oder im Park.

An den Kurstagen dann von 9-18 Uhr (mit 2 Kaffee- und 1 Mittagspause) etwa 60% Schulungen und 40% Übungen. Selbstverständlich arbeitet jeder Teilnehmer am von uns gestellten Notebook oft parallel zum Referenten mit.

Anschließend Abendessen und Angebote für Fachsimpeln, Ausflüge uvm. Wir schaffen eine Atmosphäre, in der Fachleute sich ungezwungen austauschen. Wer das nicht will, wird zu nichts gezwungen und findet auch jederzeit Ruhe.