Embedded C: Programmiermethoden und -tools für Embedded-Anwendungen

07.03.2018

12.11.2018 - 15.11.2018

Veranstaltungsort: München, MicroConsult

Embedded C: Programmiermethoden und -tools für Embedded-Anwendungen

Im Mittelpunkt der Embedded C Schulung steht die hardwarenahe C-Programmierung von 8-, 16- oder 32-Bit Mikrocontroller-Architekturen.

Im Mittelpunkt der Embedded C Schulung steht die hardwarenahe C-Programmierung von 8-, 16- oder 32-Bit Mikrocontroller-Architekturen. Fallstricke und Stolpersteine der Programmiersprache C lernen Sie kennen und vermeiden. Sie lernen die Programmierung einer Hardware-Abstraktionsschicht gemäß eines Software-Architekturmodells kennen. Sie erhalten in der Embedded C Schulung zudem einen Überblick über den gesamten Lifecycle eines Produktes: von der Idee über den Projektplan, Software-Entwicklungsplan, Testplan, Qualitätsplan, die Abnahme, Inbetriebnahme und den Betrieb bis hin zur Außerbetriebnahme.

Sie entwickeln effektiv und effizient Programme in der Programmiersprache "C" für ein Embedded-System nach den Regeln des modernen Software Engineerings. Die Anwendung von Pointern, Function Pointern und Strukturen sind Ihnen geläufig. Die Kenntnis von Programmier-/Codier-Richtlinien und von Software-Qualitätsmerkmalen, funktionelle und nichtfunktionelle Anforderungen sowie innere Qualität ermöglicht es Ihnen, wiederverwendbare, erweiterbare und leicht testbare Software zu erstellen. Zusätzlich kennen Sie nach Teilnahme an der Embedded C Schulung alle Schritte eines Software-Entwicklungsprozesses, von der Idee bis hin zur Abnahme des Systems.

Inhalt

Das A&O der hardwarenahen C-Programmierung

  • Datentypen
  • Pointer, Funktionspointer
  • Strukturen, verkettete Listen
  • Ringpuffer (circular buffer), Warteschlange (queue), FIFO, LIFO
  • Programmierregeln und -richtlinien
  • Fallstricke und Stolpersteine in C

Software-Architektur

  • Auswahl eines Software-Schichtenmodells passend zu den Anforderungen
  • Kommunikationsmöglichkeiten zwischen den Schichten
  • Synchrone und asynchrone Interfaces

Treiberprogrammierung

  • HW-Abstraktion, Treiberprogrammierung: Zugriff auf HW-Register aus "C"
  • Interfaces, Callback Interfaces, Queues
  • Interrupt-Behandlung/-Serviceroutine, Callback-Funktion

Anwendung von Pointern, Funktionspointern und verketteten Listen

  • Beispiel: Programmierung eines Schedulers
  • Taskverwaltung als verkettete Liste

Programmieren einer Finite State Machine FSM

  • Philosophie und Realisierung einer FSM in C

Lokatieren von Code und Daten im (µC-) Speicher (Flash-, RAM-Adressraum)

  • Sectioning (.text, .data, .bss)
  • Linker Description File

Bibliotheksmanagement

  • Anpassung von Standard-Bibliotheksfunktionen an die Hardware
  • Generierung und Verwaltung von User-Bibliotheken

Real-Time Operating Systeme (RTOS) im Überblick

  • Typen, Funktionen, Auswahlkriterien

Ausblick OOP-Techniken

  • Vorteile und Herausforderungen der objektorientierten Programmierung
  • Die wichtigsten UML-Diagramme

Einführung in strukturierte Methoden für die Projektplanung

  • Vorstudie, Projektstart, Projektplanung, Projektdurchführung

Software-Entwicklungsprozessmodelle

  • V-Modell, Spiralmodell, RUP, COPES
  • Iterativ-inkrementell
  • Agile Softwareentwicklung, XP

Qualität von Embedded-Systemen

  • Wie designt und entwickelt man Qualität?
  • Überblick Standards und Normen; Überblick MISRA, IEC61508

Software-Testprozess für Entwickler im Überblick

  • Testphasen und Testmethode
  • Statische Prüfung, dynamischer Test
  • Review, Whitebox Test, Blackbox Test