Experience Embedded

Professionelle Schulungen, Beratung und Projektunterstützung

Embedded- und Echtzeit-Softwareentwicklung

Embedded- und Echtzeit-Softwareentwicklung -
Training & Coaching:

 

Embedded- und Echtzeit-Softwareentwicklung - Fachwissen:

Embedded-Software: Analyse, Design, Architektur

Mittlerweile hat es sich herumgesprochen, dass die VHIT-Methode (vom Hirn ins Terminal) mit der heutigen und in Zukunft noch weiter steigenden Komplexität von Embedded- und Echtzeit-Software/ Echtzeit-Systemen nicht mehr vereinbar ist.

Echtzeit: Embedded-Programmierung, Betriebssysteme

Auf Basis der im Software-Design verfeinerten Software-Architektur implementieren Sie als Softwareentwickler diese strukturiert, prozedural, objektbasiert oder objektorientiert mit der Programmiersprache C oder C++.

Embedded Software Engineering als Schlüsselkompetenz

Gerade die Betrachtung der verschiedenen Aspekte des Internet of Things (IoT) zeigt die hohe Bedeutung des Embedded Software Engineering.

 

Mit durchdachter Software-Usability Wettbewerbsvorteile erzielen

Die Qualität von industrieller Software stellt für Unternehmen einen entscheidenden Wettbewerbsfaktor dar. Der Projekterfolg steht dabei im direkten Zusammenhang mit einer hohen Bedienqualität. Die Kommunikation zwischen Mensch und Computer basiert auf Kenntnissen der Informatik, Psychologie, Ergonomie und Arbeitswissenschaft. Entwickler können auf bewährte Prozesse, Tests und Analysen zugreifen, die ihnen wertvolle Einsichten liefern.

 

Hinweise auf drohende Software-Erosion und was Sie dagegen tun können

Erfolgreiche Embedded-Software wird meist über einen langen Zeitraum hinweg entwickelt. Dabei kann es passieren, dass hin und wieder Beziehungen in den Code eingebaut werden, die dort nichts zu suchen haben. Mit der Zeit weicht die Software immer stärker von der geplanten Architektur ab – die Software-Erosion befindet sich in vollem Gange.

 

Neuen Schwung ins Embedded-Projekt mit C++11

Viele Embedded-Projekte arbeiten noch mit älteren (und veralteten) Umgebungen, die den Entwicklern nicht die Möglichkeit bieten, einen neuen C++ Standard zu nutzen. Das ist ein Versäumnis. Denn damit fehlen den Programmierern nicht nur die neu hinzugefügten Features – in C++11 wurden einige Dinge grundlegend verbessert.

 

Sensoren mit Linux ansprechen – Setzen Sie aktuelles Embedded-Linux-Knowhow direkt in Ihren Projekten ein

Ihre Aufgabe ist der erfolgreiche Einsatz des Betriebssystems Linux in Ihrem Embedded-Projekt. Die Herausforderung beim Einsatz realer Hardware unter Echtzeitbedingungen besteht darin, die korrekte Nutzung von Embedded-Linux zu verstehen und die verfügbaren Linux-Betriebssystem-Mechanismen richtig auszuwählen.

 

Software-Architektur braucht Verantwortung und Können: Welche Themen sollte der Software-Architekt beherrschen?

Mit der steigenden Produktkomplexität und immer leistungsfähigerer Hardware erhöhen sich ebenfalls der Umfang und die Komplexität der Software von Embedded-Systemen. In vielen Produkten setzt die Software den wesentlichen Teil der Funktionalität um. Die Abteilungen, die Embedded-Software entwickeln, wachsen kontinuierlich. Dies spiegelt sich auch am aktuellen Arbeitsmarkt wider. Software wird nicht mehr in einer "One-Man-Show" entwickelt, sondern in Teams, verteilt auf verschiedene Standorte, u.U. rund um die Welt.

 

Größer und universeller: Alles über "Modernes C++"

Mit C++11 hat vor sechs Jahren eine neue Zeitrechnung für C++ begonnen. MicroConsult bringt Licht ins Dunkel der modernen C++ Standards und bringt Sie mit einem eigens dafür entwickelten Training auf den neuesten Stand zu C++17.

 

So sieht zukunftsfähige Embedded-Softwareentwicklung aus

Welche Trends werden Embedded-Softwareprojekte in nächster Zeit besonders beeinflussen? Welche Konsequenzen hat das für das notwendige Wissen, die geforderten Erfahrungen und die Art, wie Projekte und ihr Umfeld gestaltet werden? Dazu wurden die Experten von MicroConsult befragt, die seit vielen Jahren Embedded-Softwareentwickler aus praktisch allen Industriebranchen ausbilden, beraten und in Projekten begleiten. Dabei wurde das Thema Softwareengineering aus den verschiedensten Blickwinkeln beleuchtet.

 

Safety & Security: Auf bekannte und bewährte Methoden setzen

Die Betriebssicherheit von softwareintensiven Embedded-Systemen ist eng mit dem Schutz vor unbefugtem Zugriff oder einem gezielten Angriff verbunden. Die dazu notwendigen Maßnahmen stellen Software- und Hardwareentwickler gleichermaßen vor hohe Herausforderungen.

 

Wichtiger denn je: In Systemen und Architekturen denken

Der Blick in die Gegenwart und die Zukunft zeigt deutlich, dass die Embedded-Welt und die IT-Welt miteinander verflochten sind und sich immer mehr verflechten werden. Embedded-Systeme werden zum Bestandteil des Internet of Things, das sich zu einem Internet of Everything entwickelt und Brutstätte vieler neuer Geschäftsideen sein wird. Die große Herausforderung liegt darin, in immer komplexeren und dynamischeren Systemen zu denken und die immer rasanteren technischen und unternehmerischen Aspekte zu neuen Systemen und Geschäftsideen zu kombinieren. Unsere Trainer haben sich dazu ein paar Gedanken gemacht.

 

Von C nach Embedded-C: Das Ziel bestimmt den Weg

Natürlich ist Embedded-C auch C. Der Umstieg von C auf Embedded-C bedeutet aber, dass der Programmierer sich beim Einsatz an den Erfordernissen der jeweiligen Embedded-Anwendung orientieren muss. Dies sind beispielsweise Echtzeitfähigkeit, geringer Speicherbedarf oder hohe Betriebssicherheit. Gleichzeitig stellt die Wiederverwendbarkeit von Software auch in der Embedded-Welt ein wichtiges Qualitätsmerkmal dar. Die richtige Anwendung der C-Schlüsselwörter spielt dabei eine bedeutende Rolle.

 

Betriebssystem: mit oder ohne? - Vergleich und Auswahl von Software-Laufzeitarchitekturen

Zur Beantwortung der Titelfrage gibt es inzwischen unzählige Publikationen und Theorien. Jede Embedded-Software benötigt zum Ablauf eine Laufzeitarchitektur. Jede Laufzeitarchitektur enthält eine Art von "Betriebssystem", auch wenn es nur der Kernteil zur Ablaufsteuerung ist – der Scheduler. Somit ist die Antwort auf die ursprüngliche Frage klar – natürlich immer mit "Betriebssystem". Mit dieser Tatsache geht dieser Beitrag einen Schritt weiter und beantwortet die Frage: Welche Art von Laufzeitarchitektur ist für meine Applikation die geeignetste?

 

MyOS - Kochbuch für ein Mini-Betriebssystem: C-Implementierung eines eigenen Kernels auf dem Cortex-Mx

In kleineren Anwendungen setzen Sie normalerweise kein Betriebssystem ein, weil Sie den Overhead scheuen? Geht ja auch noch ganz gut ohne, bis dann die Änderungen kommen…  Hier finden Sie eine einfache Anleitung, wie Sie auch für solche Anwendungen ein ganz auf Ihre Bedürfnisse zugeschnittenes Mini-Betriebssystem realisieren können. Das Rad muss dazu nicht neu erfunden werden; der lauffähige Beispielcode steht zum Download zur freien Verfügung. Es ist gar nicht so schwer, sich für seine kleineren Projekte ein "Betriebssystem" zu schaffen.

 

Objektbasiert oder objektorientiert? -
Moderne Low-Level-Treiberprogrammierung mit C/C++

Die Programmiersprache C ist in der Embedded-Welt sehr weit verbreitet. Eine Vielzahl von Embedded-Systemen wurde in der Vergangenheit – und wird sicher auch noch in Zukunft – in C programmiert. Der Zugriff auf die im Mikrocontroller vorhandenen Peripheriemodule (Steuer-, Status- und Arbeitsregister) kann in unterschiedlichsten Formen durchgeführt werden. Für die modernen, zum Teil sehr komplexen Embedded-Systeme muss darauf geachtet werden, dass gut lesbarer, wiederverwendbarer, leicht erweiterbarer Code entsteht. Hier kommt als Programmier-Paradigma die "objektbasierte Programmierung" ins Spiel. Und dann stellt sich als nächstes die Frage, ob nicht gleich "objektorientiert" programmiert werden soll.

 

Implementierung von Zustandsautomaten in C++

Für Steuerungsaufgaben werden heutzutage in vielen Programmen Zustandsautomaten eingesetzt. Die Programmiersprache C++ setzt sich auch im Embedded-Bereich immer mehr durch, viele Projekte steigen von C auf C++ um. Das Kompaktseminar vermittelt einen Einblick in die Programmierung von Zustandsautomaten mithilfe der Programmiersprache C++. Es wird gezeigt, welche Alternativen zu Switch-Case und Zustands-Pattern existieren. Weiterhin werden Vor- und Nachteile der einzelnen Lösungen diskutiert.

 

Prinzipien für Embedded-Softwarearchitekturen

Dieser Beitrag stellt Prinzipien vor und zeigt beispielhaft deren Anwendung auf Architekturen in Embedded-Software.

 

Renesas Synergy™

Im stetig wachsenden Markt der Internet-of-Things-Anwendungen legen viele Entwickler Wert auf eine flexible Lösung, die sich schnell und unkompliziert an immer komplexere Anforderungen anpassen lässt. Renesas reagierte auf diese Nachfrage mit der Synergy™ Plattform.

 

Die SOLID-Prinzipien: 5 Grundsätze für bessere Software

Die Qualität der Software ist nicht in allen Projekten ideal, und deshalb werden in vielen Bereichen Anstrengungen unternommen, eine Verbesserung zu erreichen. Der Einsatz von Software Engineering soll den Code in allen seinen Aspekten verbessern.

 

Programmierung einer Betriebssystem-Abstraktionsschicht (OSAL)

Konzepte und Umsetzung eines Operating System Abstraction Layers mit C++

 

Das Rad nicht immer neu erfinden - Architekturmuster im Embedded-Umfeld

Da Embedded-Projekte sehr klein starten, wird dort oft kein Gedanke an die Software-Architektur verschwendet. Etwas soll schnell funktionieren – und die Probleme mit der neuen Hardware sind ja auch noch zu lösen. Solch ein Vorgehen rächt sich schnell. Spätestens bei der nächsten Kundenanforderung merkt man, dass ein bisschen Struktur in der Applikation die Änderungen erleichtert hätte – aber wir haben ja jetzt keine Zeit mehr, etwas zu ändern, denn der Kunde wartet. So geht es dann weiter - und jedes Mal wird der Aufwand immer größer.

 

Das Embedded Software Engineering Kochbuch

 

Anti-Aging für Embedded-Software - Tipps für langlebige Software

 

Software-Paradigmen: Was programmiere ich da eigentlich?

Ein SW-Paradigma ist ein grundsätzlicher Programmierstil - also die Art und Weise, wie ein Programmierer seinen Code schreibt. Die Unterschiede der Paradigmen liegen im Umgang mit den Daten und ihrer Repräsentation bzw. in der Darstellung des Kontrollflusses. Die verschiedenen Paradigmen schließen sich nicht grundsätzlich gegenseitig aus, sondern lassen sich häufig miteinander kombinieren. Bei der Bezeichnung der Paradigmen herrscht oft Verwirrung. Einige Namen werden falsch verwendet, bei anderen herrscht Unklarheit, wo neben der großen Ähnlichkeit nun der Unterschied besteht. Dieser Artikel erläutert einige der heute gebräuchlichen SW-Paradigmen.

 

Software Engineering mit UML & C:
Praxisgerechter Einsatz für kleine Embedded-Systeme

In vielen Köpfen ist die UML verknüpft mit objektorientierter Programmierung und Hochsprachen wie C++, Java oder C#. Das ist natürlich auch richtig, aber die UML ist ebenso bestens für die Modellierung und Implementierung von kleinen Embedded-Applikationen mit prozeduraler Programmierung in ANSI-C einsetzbar. Wie das im Einzelnen für typische Software-Elemente aussieht und wie die Vorgehensweise dazu ist, zeigt dieser Beitrag.

 

Gesunde Software

 

Wissenswertes zur Entwicklung & Programmierung von Embedded-Software

 

Embedded- und Echtzeit-Softwareentwicklung - Presse

MicroConsult und Renesas: Zusammenarbeit bei Trainings für Renesas Synergy™ Plattform

MicroConsult bietet Training für die neue Renesas Synergy™ Plattform an. Die Teilnehmer bekommen einen Überblick über Synergy™ und lernen die wesentlichen Application Programming Interfaces (API) des Synergy™ Software Packages (SSP) kennen. Über die Hälfte der Trainings besteht aus praktischen Übungen. Mit diesem praxisorientierten Einstieg können Entwickler sofort erste eigene Applikationen basierend auf der Synergy™ Plattform realisieren.

Merkzettel


Sie haben derzeit keine Trainings auf dem Merkzettel.