Skip to main content

Embedded Softwareentwicklung

Wir übernehmen für Sie den komplette Softwareentwicklungslebenszyklus (SDLC) und arbeiten dabei nach Entwicklungsmodellen wie Wasserfall, Agile, Scrum oder Lean.

Embedded Software oder auch Firmware ist Software, die in eingebetteten Systemen wie Mikrocontrollern, Sensoren und Aktoren in Geräten wie Autos, Smartphones und Haushaltsgeräten läuft.

Kontakt
Solidworks Logo
Altium Designer Logo

Embedded Softwareentwicklung in 7 Steps

Während die grundlegenden Schritte des Softwareentwicklungslebenszyklus (SDLC) ähnlich bleiben, gibt es spezifische Herausforderungen und Überlegungen, die für Embedded Software charakteristisch sind:

1

Anforderungsanalyse

Diese Phase ist wie bei jeder Softwareentwicklung kritisch, aber bei Embedded Software muss besonders auf die Einschränkungen der Hardware, Echtzeitanforderungen und Umgebungsbedingungen geachtet werden. Die Anforderungen müssen sehr präzise definiert werden, um Spezifikationen wie Leistungsbedarf, Speichergröße und Energieverbrauch zu berücksichtigen.
2

Systemdesign

Neben der Softwarearchitektur wird hier auch das Design des gesamten Systems einschließlich der Hardware berücksichtigt. Die Entwickler müssen entscheiden, wie die Software mit der Hardware interagieren wird, was oft die Entwicklung von Treibern und Middleware umfasst.
3

Implementierung

Die Codierung von Embedded Software erfolgt oft in Programmiersprachen wie C, C++ oder Rust, die für die Entwicklung von Low-Level-Operationen geeignet sind. Entwickler müssen Code schreiben, der effizient mit der Hardware arbeitet und dabei die Ressourcenbeschränkungen beachtet.
4

Hardware-Software-Integration

In diesem Schritt wird die entwickelte Software auf der Zielhardware getestet. Dies ist eine kritische Phase, in der die Interaktion zwischen Software und Hardware verifiziert und optimiert wird. Probleme wie Hardwaredefekte, Timing-Probleme und Speicherverletzungen müssen hier identifiziert und behoben werden.
5

Testen

Das Testen von Embedded Software umfasst nicht nur Softwaretests, sondern auch Hardwaretests. Dies kann Unit-Tests, Integrationstests, Systemtests und spezielle Tests für Echtzeitfähigkeit, Leistungsverhalten und Fehlertoleranz beinhalten.
6

Deployment

Die Bereitstellung von Embedded Software kann das Flashen der Software auf das Gerät oder das Durchführen von Firmware-Updates umfassen. In vielen Fällen ist die Software fest in die Hardware integriert, was Änderungen nach der Auslieferung erschwert.
7

Wartung und Updates

Aufgrund der oft engen Integration mit der Hardware und der langen Lebensdauer vieler eingebetteter Geräte ist die Wartung von Embedded Software besonders wichtig. Updatemöglichkeiten (z.B. Firmware over the Air = „FotA“ Updates) sollten von Beginn an eingeplant werden, um die Integrität des Systems zu gewährleisten und Updates so einfach wie möglich zu gestalten. Updates können nötig sein, um Fehler zu beheben, Leistungsverbesserungen vorzunehmen oder neue Funktionen hinzuzufügen.

Jeder dieser Schritte ist wichtig für die Entwicklung einer qualitativ hochwertigen, funktionellen und benutzerfreundlichen Software. Der Entwicklungsprozess kann je nach Projektgröße, Komplexität und gewähltem Entwicklungsmodell variieren.

Einige der umgesetzten Aufgaben aus vergangenen Projekten:

  • Treiberentwicklung für Displays, Sensoren, UI-Elemente und Aktoren
  • Visualisierung einer Benutzeroberfläche mit Qt / TouchGFX
  • Einbindung von Kommunikationsprotokolle wie CAN-Bus, CANopen, SPI, I2C, UART, IO-Link
  • Mikrocontrollerseitige Implementierung für Firmware Updates über Bluetooth Low-Energy (FotA), CAN-Bus und UART
  • Softwareentwicklung mit FreeRTOS (Real-time operating system for microcontrollers)
  • Desktop Applikation zum Senden von Firmware Updates über UART und Bluetooth
  • Desktop Programm zum Auslesen der auf dem Mikrocontroller geloggten Daten
  • Programmierung und Inbetriebnahme eines LoRaWAN Gateways
  • Automatisierung eines Platinentesters
  • Ethernet-Anbindung durch den Lightweight IP (lwIP) Stacks
  • Implementierung eines Zeitsynchronisierungsprotokolls basierend auf PTP
  • FOTA-Update für mehrere vernetzte Mikrocontroller über Bluetooth
  • Firmware Update über CAN-Bus
  • Zertifizierte Sicherheitssoftware für Sicherheitsrelevante Elektronik
  • Code Check / Analyse zur Fehlersuche bzw. Codeoptimierung
  • Portierung von Software auf neue Hardware-Plattformen
  • Rapid Prototyping Software für eilige Prototypen / Erstmuster

Programmiersprachen

  • C/C++
  • Python
  • Rust
  • Matlab

Embedded Software-Entwicklung für Plattformen folgender Hersteller:

  • Microchip (PIC16/18/24/dsPIC etc. )
  • ST Microelectronic (STM8 / STM32)
  • ESP32
  • Raspberry Pi
  • Cypress Semiconductor (PSOC, Bluetooth/ARM SOCs)
  • Atmel (diverse)
  • Nordic Semiconductor (Bluetooth/ARM SOCs)
  • Zynq-7000
  • Andere ARM-Plattformen auf Anfrage sehr gerne möglich

Softwareentwicklung mit folgenden Entwicklungsumgebungen

  • Eclipse
  • STM32CubeIDE / STM32CubeMX
  • ARM-GCC Toolchain
  • Atollic True Studio for ARM
  • Microchip MPLAB-X IDE / IPE
  • Qt GUI Framework
  • freeRTOS
  • touch GFX
  • neovim
  • make / CMake
  • CLion
  • (embedded) Linux
  • Cypress PSoC Creator
  • Keil μVision 4/5
  • Visual Studio Code
  • PyCharm
  • CLion
  • Segger Embedded Studio
  • Git / GitBash / GitLab / GitAhead
  • XtratuM Next Generation (XNG) Hypervisor

Unverbindliches Angebot einholen

Interesse an unseren Dienstleistungen? Frage uns gerne für ein unverbindliches Angebot an. Wir helfen dir gerne weiter und beraten dich vorab kostenlos.

Oder du hast weitere Fragen zu unserem Leistungsspektrum oder möchtest einen ersten Termin vereinbaren? Dann nehme gerne Kontakt mit uns auf. Wir stehen dir bei deinen Anliegen beratend zur Seite und gehen sorgfältig auf deine Wünsche ein.

Maximilian Pohl

Ansprechpartner: Maximilian Pohl

max@rp-engineering.de
+49 (0) 711 / 3513 3875

Kontakt

Referenzen

Bereits einige Unternehmen vertrauen auf unsere Dienstleistungen und auf unser Expertenwissen in verschiedenen Branchen. Wir sind außerdem Gewinner des Gründerpreis Baden-Württemberg (ausgezeichnet als herausragendes Jungunternehmen). Wir freuen uns auf dich!