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.

 

 

Zephyr – Die flexible Open-Source-Lösung für kleine Embedded-Systeme

Mit dem Echtzeit-Betriebssystem (RTOS) Zephyr steht Entwicklern eine vielseitige Open-Source-Alternative zur Verfügung, die für kleine Systeme optimiert ist. Anders als Linux, das für leistungsstarke Systeme gedacht ist, eignet sich Zephyr besonders für Mikrocontroller-basierte Anwendungen, bei denen Speicher und Rechenleistung begrenzt sind. Womit überzeugt Zephyr im Einzelnen?

 

Herausforderungen an das Softwaredesign moderner Embedded-Systeme

In den heute eingesetzten Embedded-Systemen spielt die Software eine zunehmend zentrale Rolle. Systeme basierend auf komplexen Mikrocontroller- und Prozessorarchitekturen müssen mehr Funktionalitäten bieten – und das in kürzerer Entwicklungszeit als je zuvor. Dies stellt Entwickler vor die Herausforderung, qualitativ hochwertige Software zu entwerfen, die sowohl effizient als auch zuverlässig ist.

 

Rust für Embedded-Entwicklung: Sicherheit, Geschwindigkeit und Praktikabilität

In der dynamischen Welt der Embedded-Softwareentwicklung sind Zuverlässigkeit und Effizienz von entscheidender Bedeutung. Die Wahl der richtigen Programmiersprache kann einen enormen Einfluss auf den Erfolg eines Projekts haben. Rust hat sich hier als eine der führenden Optionen etabliert, die die Anforderungen von Embedded-Entwicklern perfekt erfüllen.

 

Embedded Software Manager Pattern –
Zentrale Aufgaben skalierbar in der Software etablieren

(Embedded-) Software muss verschiedene zentrale Aufgaben softwareweit koordinieren. Das klassische Beispiel dafür ist die Initialisierung, die auf allen Ebenen der Software stattfinden muss. Bei genauerer Betrachtung lassen sich produktabhängig viele weitere dieser softwareweiten Aktionen identifizieren. In diesem Beitrag stellen wir das Manager Pattern für die Koordination dieser Aufgaben in der Software vor.

 

Rust für Embedded-Entwicklung: Sicherheit, Geschwindigkeit und Praktikabilität

In der dynamischen Welt der Embedded-Softwareentwicklung sind Zuverlässigkeit und Effizienz von entscheidender Bedeutung. Die Wahl der richtigen Programmiersprache kann einen enormen Einfluss auf den Erfolg eines Projekts haben. Rust hat sich hier als eine der führenden Optionen etabliert, die die Anforderungen von Embedded-Entwicklern perfekt erfüllen.

 

C++ Programmierung: Dynamische oder statische Polymorphie?

Mit steigender Komplexität von Embedded-Software erlangt die Erfüllung von Qualitätsmerkmalen, wie Änderbarkeit, Erweiterbarkeit, Anpassbarkeit und Wiederverwendbarkeit, eine immer größere Bedeutung. Ein wichtiges Mittel, um diese Software-Qualitätsanforderungen zu erfüllen, ist die Anwendung von polymorphen Strukturen in der Architektur, im Design und in der Implementierung. Die Softwareentwicklung unterscheidet dynamische und statische Polymorphie.

 

Design for Test und Design for Safety – Software-Architektur nach Maß

Unser Alltag ist heute wie selbstverständlich von miteinander vernetzten Geräten und Systemen geprägt. Ob man mit dem Smartphone unterwegs den schnellsten Weg zum Ziel findet, auf dem Sofa mit dem Tablet die Zeitung liest oder die smarte Heizung über eine App auf dem Smartphone steuert, diese Systeme machen unser Leben komfortabler. Der Gewinn an Komfort erfordert jedoch auch strengere Security- und Safety-Anforderungen, mit denen die Entwickler solcher Systeme Schritt halten müssen. Dies gilt besonders für das autonome Fahren – hier haben schlüssige Safety-Konzepte oberste Priorität.

 

Deshalb lohnt sich ein Upgrade auf den Cortex®-M85

Während sich der Cortex-M23 und der M33 als Nachfolger für den Cortex-M0+ und den M4 im Markt sukzessive durchsetzen, blieb der Cortex-M55 als erstes Familienmitglied der im Jahr 2019 veröffentlichten Armv8.1-Architekturerweiterung beinahe unbeachtet. Mit dem Cortex-M85 schließt Arm diese Lücke nach oben.

 

Kompaktes Videotraining für Automotive Body-Control-Anwendungen

Lernen Sie bequem von zuhause aus, wie man TRAVEO™ T2G-basierte Body-Control-Anwendungen für Automotive entwickelt. In einem spezialisierten Online-Video-Training bauen Sie Ihre Grundkenntnisse aus und entwickeln direkt auf einem für Kursteilnehmer kostenfreien Infineon TRAVEO™ T2G Starter Kit.

 

Trends in der Mikroelektronik: Neue Perspektiven und Anforderungen für mobil agierende Geräte

Jedes Jahr werden neue, noch leistungsfähigere Mikrocontroller- Architekturen angekündigt. Dies ebnet den Weg für immer komfortablere und sogar autonom arbeitende Transportgeräte für unseren Alltag. Neben der gesteigerten Rechenleistung – MIPS per Watt – sind die enormen Anforderungen an Safety und Security eine der größten Herausforderungen.

 

Software-Entwicklung neu gedacht

Das rasante Wachstum des Internet of Things, des 5G-Netzes, künstlicher Intelligenz und Cloud- bzw. Edge-Computing haben große Auswirkungen auf die Entwicklung von Embedded-Software.

 

Boom bei Embedded-Technologie hält an - die wichtigsten Trends

Das rasante Wachstum des Internet of Things, des 5G-Netzes, künstlicher Intelligenz und Cloud- bzw. Edge-Computing haben große Auswirkungen auf die Entwicklung von Embedded-Software.

 

Interface-Designs und ihre Implementierung

Der Einsatz von Software-Interfaces ist ein elementares Mittel zur Entwicklung von langlebigen und tragfähigen Software-Architekturen. Deshalb sollten sie so früh wie möglich in der Architektur etabliert werden, um diese zu stabilisieren.

 

Embedded-Software-Redesign Guide

Manchmal ist es nicht mehr damit getan, alten Code zu erweitern: Eine Rundumerneuerung muss her. Diese Beitragsreihe beschreibt Vorgehen rund um das Embedded-Software-Redesign und erläutert dabei die Begriffe Reverse-Engineering, Refactoring und Reengineering.

 

Interview: Clean Code und der ideale Ablauf eines Embedded-Projektes

Bei der objektorientierten Entwicklung von Software-Architektur und Software-Design sowie der objektorientierten Programmierung (OOP) einer strukturierten Software-Entwicklungsmethode stößt man immer wieder auf ähnliche Aufgaben und Probleme. Der Einsatz von wiederverwendbaren Entwurfsmustern (praxisbewährten Lösungsschablonen) kann dabei einen sich wiederholenden Software-Programmieraufwand verhindern.

 

Design Patterns in der Praxis richtig anwenden

Design Patterns sind Lösungen für häufig wiederkehrende Aufgabenstellungen des objektorientierten Softwareentwurfs. So gesehen spielen sie eine ähnliche Rolle wie das kleine Einmaleins, das man auswendig lernt, um die Ergebnisse für häufig vorkommende Rechenaufgaben nicht immer wieder neu berechnen zu müssen.

 

Mit Design Patterns Entwicklungszeit einsparen

Bei der objektorientierten Entwicklung von Software-Architektur und Software-Design sowie der objektorientierten Programmierung (OOP) einer strukturierten Software-Entwicklungsmethode stößt man immer wieder auf ähnliche Aufgaben und Probleme. Der Einsatz von wiederverwendbaren Entwurfsmustern (praxisbewährten Lösungsschablonen) kann dabei einen sich wiederholenden Software-Programmieraufwand verhindern.

 

Qualitätsanforderungen an Embedded-Software

Anforderungen zu erfassen und zu verwalten ist ein wesentlicher Schlüssel zum Projekterfolg. Die Embedded-Software-Funktionalität lässt sich einfacher in Anforderungen beschreiben als die Qualitätsmerkmale. Dennoch: Qualitätsmerkmale lassen sich nicht am Ende einfach "hineintesten”. Je abstrakter sie sind, desto aufwendiger ist ihre Erfassung. Welche Herausforderung stellt das für ein Projekt dar?

 

Programmierrichtlinien – Fluch oder Segen?

In Vorträgen, Artikeln und Büchern wird immer darauf hingewiesen, dass die Qualität des Codes ein entscheidender Faktor für den Erfolg des Projektes ist. Deshalb wird immer wieder versucht, Regularien einzuführen, die die Codequalität verbessern. Doch der Code, der von vielen Entwicklern abgeliefert wird, sieht alles andere als schön aus. Ein Ansatz, um die Qualität des Codes zu sichern, ist das Verwenden von Programmierrichtlinien.

 

Entwicklungsprozesse als Basis moderner Softwareentwicklung

Im professionellen Software Engineering sind die Entwicklungs- und Prozess-Schritte vor der Software-Implementierung essentiell. Begriffe wie Softwareanalyse und Softwaredesign bzw. Software-Grobdesign und Software-Feindesign aus den Entwicklungsprozessen (beispielsweise dem V-Modell XT oder dem branchenspezifischen V-Modell Automotive) stehen genau dafür.

 

Architekturmuster im Embedded-Umfeld erfolgreich einsetzen

Embedded-Projekte starten meistens sehr klein. Und oft wird im Anfangsstadium kein Gedanke an die Software-Architektur verschwendet. Die Anwendung soll bald funktionieren – und die Probleme mit der neuen Hardware sind ja auch noch zu lösen.

 

Embedded-Software-Design:
Anforderungen entwickeln und Architekturen verfeinern

"Predictable Maintenance" wird laut Experten in den nächsten fünf bis zehn Jahren bei so gut wie allen rotierenden Maschinen die Norm sein. Die rasante Entwicklung der Sensortechnologie und der künstlichen Intelligenz beschleunigt dieses Tempo zusätzlich. Die hierzu mit dem Internet of Things (IoT) verbundenen Embedded-Systeme stellen immer komplexere Anforderungen an das Design. Wer im Vorfeld durchdachte Anforderungen entwickelt und die Architektur konsequent mit Software-Design verfeinert, sichert Software- und Produktqualität.

 

Moderne Low-Level-Treiberprogrammierung:
CMSIS, MCAL und Co. – Low-Level-Treiber von der Stange

Embedded-Systeme trifft man heute in vielen Bereichen an. Oft sind sie ein entscheidender Faktor für Komfort, Sicherheit, Nachhaltigkeit und Innovation. Der Anteil der Software in Embedded-Systemen steigt weiter an. Und auch die Hardware, ob Mikroprozessor mit externer Peripherie oder Mikrocontroller, wird immer komplexer. Multicore-Systeme sind bereits Realität, und immer mehr Hersteller bringen neue Multicore-Derivate auf den Markt. Diese komplexe Hardware selbst bis in das letzte Bit zu kennen – und zu programmieren – ist in der dafür zur Verfügung stehenden Zeit nicht mehr möglich. Das macht eine Abstraktion der Hardware unumgänglich.

 

Requirements Engineering und Management

Anforderungen erfassen und verwalten ist ein wesentlicher Schlüssel zu erfolgreichen Projekten. Egal ob im klassischen oder agilen Prozessumfeld – professionelles Requirements Engineering und Management für Embedded- und Echtzeitsysteme verkürzt Ihre Projektlaufzeiten und spart Entwicklungs- sowie Wartungskosten ein. Stellen Sie sich dieser Herausforderung!

 

Moderne Low-Level-Treiberprogrammierung

Lernen Sie anhand eines konkreten Implementierungsbeispiels für einen Infineon-Mikrocontroller mit Cortex-Core die Nutzung von CMSIS (Cortex Microcontroller Software Interface Standard) kennen. Erfahren Sie, welche Vorteile - zum Beispiel Wiederverwendbarkeit und Erweiterbarkeit - aber auch welche Nachteile die Nutzung fertiger Treiberschichten mit sich bringt.

 

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.

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.

 

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.