In der Embedded-Entwicklung wird das "klassische" C gegenüber C++ oft noch vorgezogen, da die "++"-Programmiersprache als vergleichsweise ressourcenhungrig betrachtet wird. Aber ist diese Annahme grundlegend richtig? (gemeinfrei/Pixabay)

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.

Weiterlesen
Wahre Freiheit verspricht vermutich nur die Beerware-Lizenz von Poul-Henning Kamp. (mnm.all)

Copyleft oder Permissive – was darf es sein?

Auf den ersten Blick sind Open-Source-Lizenzen generell ein Segen: Man darf alles mit so lizenziertem Code anstellen, ihn verändern und sogar weitergeben. Und dennoch tobt seit Jahrzehnten der Zwist: Copyleft gegen Permissive, Politik gegen Technik, FSF gegen OSI oder schlicht GPL gegen BSD, Apache & Co.

Weiterlesen
 (gemeinfrei/Pixabay)

Programmierung zur Compilezeit

Was haben klassische Template-Metaprogrammierung, die Funktionen der Type-Traits Bibliothek und konstante Ausdrücke gemein? Sie werden alle zur Compilezeit ausgeführt. Damit vereinen sie höhere Performanz mit erweiterter Funktionalität. Höhere Performanz, da Berechnungen zur Lauf- auf die Compilezeit verlegt werden. Doch wie funktioniert die ganze Magie?

Weiterlesen
Bild 6: Security-Angriffsvektoren verändern sich. (ETAS GmbH)

Automotive Software: Vertikalisierung versus Horizontalisierung

Die Automobilindustrie kämpft weiterhin mit den Veränderungen und den einhergehenden Herausforderungen. Der Übergang von klassischen Embedded-Steuergeräten hin cloudbasierten Lösungen stellt die entwickelnde Bereiche vor enorme Herausforderungen. Die Revolution der Automobil-Software-Industrie schreitet – zwangsweise – weiter voran.

Weiterlesen
 (gemeinfrei/Pixabay)

Automatische Multi-Core-Echtzeitvalidierung

Dieser Beitrag zeigt am Beispiel des freien Echtzeitbetriebssystemes Erika Enterprise einen modellbasierten Ansatz, um die Einhaltung von sicherheitskritischen Echtzeitanforderungen mittels Tracing über den kompletten Entwicklungsprozess zu überwachen.

Weiterlesen
Test und Entwicklung müssen ineinandergreifen: Das ist das Ziel der Continuoius Integration. (gemeinfrei/Pixabay)

Safe Continuous Integration

Ein manueller Software-Integrationsprozess kann nicht immer mit der Geschwindigkeit der Änderungen in der Entwicklung mithalten. Deshalb gehen mehr und mehr Hersteller dazu über, einen Continuous Integration (CI) Prozess aufzusetzen: Build-Zyklen erfolgen früh und iterativ zusammen mit automatisierten Tests.

Weiterlesen
Dynamic memory allocation in a fault-tolerant system – is this a good idea? It can be, if  the right provisions are made. (gemeinfrei/Pixabay)

Dynamic Memory Allocation: Justifiably Taboo?

Fault-tolerant systems should employ custom memory allocators that are more precisely suited to the application’s specific allocation patterns. Custom memory managers presented in the paper include block, stack, bitmap and thread-local allocators. The solutions presented retain the power and flexibility of dynamic memory management while mitigating common risks such as fragmentation and memory leaks, and improving efficiency and performance.

Weiterlesen
 (gemeinfrei/Pixabay)

How to Measure RTOS Performance

Why Make Measurements? Desktop or laptop computers are extremely powerful and available at amazingly low cost. This means that developers of software for desktop systems assume that there is infinite CPU power, so they worry very little about the speed of their code. They also assume that indefinite amounts of memory are available, so they do not worry about code size either.

Weiterlesen
Ein Sechskern-Xeon-Prozessor von Intel (Ausschnitt) aus dem Jahr 2010. Die Multicore-Technik bricht sich auch im Embedded-Umfeld Bahn und stellt Entwickler vor neue Herausforderungen. (Nick Knupffer/Intel)

Quo vadis, Multicore?

Welche Lehren sind aus den ersten Einsätzen von Multicore-Systemen zu ziehen, und welche Richtung wird in naher Zukunft eingeschlagen, um den Hunger nach mehr Rechenleistung bei gleichzeitiger Energie-Diät zu stillen?

Weiterlesen