Ein Angebot von

Fachbeiträge

C und C++ in einer Embedded-Anwendung mischen

C und C++ in einer Embedded-Anwendung mischen

Viele Embedded-Anwendungen sind noch in C geschrieben, doch immer mehr Entwickler programmieren inzwischen in C++. In einigen Applikationen werden sogar beide Sprachen gemeinsam verwendet. Ist das sinnvoll? lesen

Der Rete-Algorithmus: Speed für Mustererkennung

Der Rete-Algorithmus: Speed für Mustererkennung

Geschäftsregeln halten zahlreiche Unternehmensprozesse am Laufen, deshalb können sie mitunter sehr umfangreich werden. Der Umfang macht ihre Ausführung zeitaufwendig, weshalb jede Methode, sie zu beschleunigen, willkommen ist. Der Rete-Algorithmus beschleunigte 1979 die damals bestehenden Systeme für die Verarbeitung von Business Rules um den Faktor 3.000. Er ist bis heute die Grundlage zahlreicher Expertensysteme, etwa in der Mustererkennung. lesen

Softwaremigration für klassische Applikationen

Softwaremigration für klassische Applikationen

Der Begriff der Systemmigration oder Portierung impliziert in der IT die Anpassung einer bestehenden Technologie an den aktuellen Stand. Diese erfolgt meist schrittweise und kann sowohl Hard- als auch Software umfassen. In diesem Artikel betrachten wir verschiedene Szenarien der Softwaremigration. lesen

Vergleich von Gleitkommazahlen – knifflig, aber machbar!

Vergleich von Gleitkommazahlen – knifflig, aber machbar!

Gleitkomma-Mathematik ist mit recht diffizilen und subtilen Problemen belastet. Der Vergleich von Werten macht da keine Ausnahme. In diesem Artikel diskutieren wir häufige Fallstricke, untersuchen mögliche Lösungen und versuchen, „Boost“-Probleme zu überlisten. lesen

So verfeinert das Bayes-Theorem Spam-Filter – und mehr

So verfeinert das Bayes-Theorem Spam-Filter – und mehr

Mithilfe des Satzes von Bayes lassen sich Parameter schätzen und Hypothesen induktiv testen. In einem Spamfilter können so wahrscheinliche Spam-Mails ermittelt werden. Und aus den Symptomen, die bei einem bekannten Test auftreten, lassen sich wahrscheinliche Krankheitsursachen aufspüren. Der Satz von Bayes ist ein nahezu universell nutzbares Werkzeug der Statistik. lesen

Bildverarbeitung mit dem Smartphone

Bildverarbeitung mit dem Smartphone

In der industriellen Bildverarbeitung wird meist speziell zugeschnittene Hardware und eigens dafür entwickelte Software eingesetzt. Mit ihrer steigenden Leistungsfähigkeit on können aber auch Smartphones für Bildverarbeitungsaufgaben genutzt werden. lesen

Automatisches Firmware-Update für Embedded-Linux

Automatisches Firmware-Update für Embedded-Linux

In Embedded Systemen wird die Notwendigkeit, die Firmware des Systems durch Updates auf dem neuesten Stand zu halten, immer wichtiger – nicht nur aus Sicherheitsgründen. Doch wie lässt sich ein automatisches Firmware-Update für Embedded-Linux elegant und auch für Nutzer leicht handhabbar implementieren? lesen

C++ für Echtzeit-Anwendungen

C++ für Echtzeit-Anwendungen

Die Objektorientierte Programmierung in C++ hat unter vielen Embedded-Programmierern den Ruf, gegenüber der Strukturierten Programmierung in C weniger performant zu sein. Hierdurch wird C++ für zur Erreichung harter Echtzeit meist von vornherein ausgeschlossen. Aber ist das auch berechtigt? lesen

C++ programmieren: Wer hat Angst vor dem bösen „++“?

C++ programmieren: Wer hat Angst vor dem bösen „++“?

Manche Vorurteile halten sich hartnäckig. Zum Beispiel dieses: C++ ist für extrem ressourcenarme Systeme nicht geeignet. Dabei stimmt das schlichtweg nicht! Vielmehr bringt der Einsatz der richtigen C++-Sprachmittel gerade für Systeme mit extrem begrenzten Ressourcen unschätzbare Vorteile. lesen

Wiederverwendbare Softwaremodule: Anpassbare Software geschickt umsetzen

Wiederverwendbare Softwaremodule: Anpassbare Software geschickt umsetzen

Bei der erfolgreichen Realisierung von wiederverwendbaren und konfigurierbaren Softwaremodulen ist einer der wichtigsten Schritte die Auswahl von geeigneten Variabilitätsmechanismen. Prominente Vertreter sind hier die bedingte Kompilierung mit dem Präprozessor, die Modulauswahl oder die Parametrierung in Verbindung mit bedingter Ausführung. lesen

Go und Rust: Einsatz moderner Programmiersprachen

Go und Rust: Einsatz moderner Programmiersprachen

Rust und Go sind zwei moderne Vertreter von Programmiersprachen, die sich an Anforderungen und Bedürfnisse richten, die mit etablierten Sprachen wie Fortran, C oder C++ nicht so leicht umzusetzen sind. Was ist beim Programmierne mit Go oder Rust zu beachten? lesen

Lokale Benutzeroberflächen unabhängig vom Endgerät entwickeln

Lokale Benutzeroberflächen unabhängig vom Endgerät entwickeln

Die Ansprüche an die Benutzeroberflächen von Embedded Systemen steigen. Existierende lokale Bedienoberflächen sollen möglichst ohne Probleme und Aufwand auf nahezu jedem denkbaren Endgerät. Ein Ansatz: Die GUI als Webanwendung gestalten und die Visualisierung der Oberflächenlogik auf den Webbrowser verlagern. lesen

Software-Entwicklung für Multicore-Systeme

Software-Entwicklung für Multicore-Systeme

Der Anteil an Multicore-Prozessoren in Embedded Systemen steigt stetig. Die Entwicklung und Software-Migration auf diese Architekturen wird immer leichter, Tools zur Entwicklung von Software für Multicore-Systeme sind inzwischen sehr ausgereift. Dieser Beitrag betrachtet vor allem die Bereiche Code-Generierung, Echtzeitbetriebssysteme und Debugging näher. lesen

Migration auf Python 3

Migration auf Python 3

Am 4. März 2019 erschien mit Version 2.7.16 das letzte Update für Python 2. Am 1. Januar 2020 wird der Support für die zweite Generation der Programmiersprache endgültig eingestellt. Eine Migration der Codebasis von Python 2 nach Python 3 ist daher unvermeidlich. Der Einsatz von Tools und Skripten kann hierbei helfen. lesen

Eine offene Plattform für vernetzte Fahrzeuge – Einführung in APPSTACLE und Eclipse Kuksa

Eine offene Plattform für vernetzte Fahrzeuge – Einführung in APPSTACLE und Eclipse Kuksa

Mit Eclipse Kuksa und dem europäischen Forschungsprojekt APPSTACLE entsteht derzeit eine leistungsstarke und zugleich offene Plattform für Connected Cars, welche auch die Eingliederung älterer Fahrzeuge in ein Ökosystem für vernetzte Fahrzeuge einfach gestalten will. lesen

Anatomie eines Plattformtreibers unter Linux

Anatomie eines Plattformtreibers unter Linux

Wie entsteht ein generischer GPIO-Treiber unter Linux? Um einen eigenen Plattformtreiber entwickeln zu können, sollte man sich einmal deren grundsätzlichen Aufbau näher betrachten. lesen

C++11: Aufwand und Nutzen der 'auto' und 'range-based'-Features

C++11: Aufwand und Nutzen der 'auto' und 'range-based'-Features

C++ 11 und seine Nachfolger bieten Entwicklern zahlreiche neue Eigenschaften. Features sind aber mit 'Kosten' verbunden: entweder in der Geschwindigkeit oder bei der Code-Größe. Um die Sprache C++ effektiv nutzen zu können, ist es für Entwickler wichtig zu wissen, welchen Aufwand einzelne Features bergen. lesen

Wiederverwendung von Embedded-Software in Safety-kritischen Automotive-Systemen

Wiederverwendung von Embedded-Software in Safety-kritischen Automotive-Systemen

Wenn es um Safety-Zertifizierung geht, können ursprünglich für andere Projekte entwickelte Standardelemente nicht so einfach in neuen Code implementiert werden. ISO 26262 spricht hierbei von „Safety Elements out of Context“ (SEooC). Wobei handelt es sich hier genau, und was gibt es bei der Implementierung solcher Elemente zu beachten? lesen

10 kleine Dinge, die C++ einfacher machen

10 kleine Dinge, die C++ einfacher machen

Die Einführung der Standards C++11/14/17 hat C++ merklich modernisiert. Nebst Sprachfeatures wie smart-pointers, move semantics und varaidic templates gibt es auch noch eine ganze Menge an kleineren Erweiterungen, die oftmals unter dem Radar fliegen. Aber gerade diese Features können helfen, C++ Code merklich zu vereinfachen und wartbarer zu machen. lesen

Automatischer Einklang von Architektur und Implementierung

Automatischer Einklang von Architektur und Implementierung

Die Architekturbeschreibung eines Software-Systems erlaubt, auf abstraktem Niveau über die Software zu sprechen und Erweiterungen an der Software zu analysieren, zu planen und zu bewerten. Damit dies gut funktioniert, muss die Architektur unter anderem zur Implementierung passen. lesen

Karriere

Hitex GmbH

Applikationsentwickler (m/w/d) Functional Safety Embedded Systems

Selbstständig kundenspezifische Applikationen mit Schwerpunkt Functional Safety im Bereich Mikrocontroller-basierende Embedded-Systeme entwickeln

Events:

MicroConsult Microelectronics Consulting & Training GmbH

Clean Code für C-Programme

Lernen Sie die wichtigsten Prinzipien, Regeln und Praktiken für die Erstellung von praxisgerechter, ...

Firmen stellen vor:

MicroConsult Microelectronics Consulting & Training GmbH

TCP/IP: TCP/IP/Ethernet Protokoll IPv4/IPv6

Das TCP/IP Training beleuchtet die TCP/IP-Protokollwelt als Ganzes. So beurteilen Sie die Leistungen und Funktionen der einzelnen Protokolle. ...

Hitex GmbH

TESSY - das leistungsstarke Unittest-Tool

Werkzeug zum automatisierten Modul-, Unit- und Integrations-Test von eingebetteter Software

Lauterbach GmbH

PowerTrace Serial

Das modulare Konzept der Lauterbach Tools basiert auf universellen und architekturunabhängigen Basismodulen. ...

Downloads:

MicroConsult Microelectronics Consulting & Training GmbH

Requirements Engineering und Management Teil 1: Anforderungen - Eine Checkliste zur Reife?

Anforderungen erfassen und verwalten ist ein wesentlicher Schlüssel zu erfolgreichen Projekten. ...

Parasoft® Deutschland GmbH

The Forrester Wave™: Modern Application Functional Test Automation Tools, Q4 2016

The 11 Providers That Matter Most And How They Stack Up - This report shows how each provider measures up and helps application development and delivery (AD&D) ...