Objektorientierter Zugriff auf Hardware-Devices mit C++


Zielgruppe:

Softwareentwickler/innen, die Hardwarebausteine in Embedded-Systemen objektorientiert nutzen wollen.

Vorkenntnisse:

Gute Kenntnisse der objektorientierten Programmierung mit C++, wie sie z.B. im Kurs „Objektorientierte Embedded-Programmierung mit C++“ vermittelt werden. Generelle Kenntnisse bezüglich hardwarenaher Programmierung sind vorteilhaft, aber nicht erforderlich.

Dauer:

1 Tag (mit praktischen Übungen)

Beschreibung:

Auch wenn die Applikation einer Embedded-Anwendung objektorientiert programmiert ist, wird für den Zugriff auf die Hardwarebausteine oft ein Treiber im klassischen C-Stil verwendet. D.h., die Vorteile der objektorientierten Programmierung werden nicht genutzt und es besteht ein Bruch in der Struktur der Gesamtapplikation.
In diesem Kurs lernen Sie, wie Sie dieses Problem lösen können, indem Sie Hardwarebausteine objektorientiert abbilden, um sie dann wie alle anderen Objekte Ihrer Applikation benutzen zu können. Dabei werden bewusst keine Kenntnisse in Bezug auf die hardwarenahe Programmierung vorausgesetzt, um es auch reinen Anwendungsprogrammierer/innen zu ermöglichen, in die hardwarenahe Programmierung einzusteigen. Die praktischen Übungen werden bei Präsenzkursen auf einer ARM-basierenden Target-Hardware, bei Onlinekursen mithilfe eines entsprechenden Softwareemulators durchgeführt.


Inhalt:

Objektorientierte Abbildung von Hardwarebausteinen

  • Memory mapped I/O / Port mapped I/O
  • Traditionelle Arten des Registerzugriffs
  • Polling und volatile
  • Register als Datenelemente einer Klasse
  • Register als Elemente einer pointeraddressierten Datenstruktur
  • Registerzugriff über Datenelement-Pointer oder -Referenz
  • Interrupts
  • Aufruf einer Interrupt Service Routine (ISR)
  • Interrupt Controller
  • Implementierung und Installation einer ISR
  • Bausteine mit mehreren Interrupt-Quellen
  • Interruptbehandlung bei mehreren Bausteinen derselben Art

PRAKTIsche Übungen

 

Nicht genau was Sie suchen?

Wir nutzen Cookies auf unserer Website. Einige von ihnen sind essenziell für den Betrieb der Seite, während andere uns helfen, diese Website und die Nutzererfahrung zu verbessern (Tracking Cookies). Sie können selbst entscheiden, ob Sie die Cookies zulassen möchten. Bitte beachten Sie, dass bei einer Ablehnung womöglich nicht mehr alle Funktionalitäten der Seite zur Verfügung stehen.