Skip to main content

Embedded Softwareentwicklung

Embedded Softwareentwicklung aus Stuttgart für Kunden in aller Welt

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

Unser Skillset

Bei der Softwareentwicklung ist eine schnelle Umsetzung ohne lange Einarbeitungszeiten wichtig. Folgende Tools, Platformen und Programmiersprachen sind bei uns im Einsatz und können somit schnell und erfolgreich angewandt werden.

Programmiersprachen

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

Plattformen und Hersteller

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

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

Einige der umgesetzten Aufgaben aus vergangenen embedded Software Projekten:

  • Treiberentwicklung für Displays, Sensoren, UI-Elemente und Aktoren
  • Visualisierung einer Benutzeroberfläche mit Qt / TouchGFX
  • Einbindung von Kommunikationsprotokollen 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) Stack
  • 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 und Erstmuster

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. Wir unterstützen Sie bei der richtigen Updatestrategie und der Umsetzung. Somit bleiben sie selbst nach der Auslieferung flexibel mit Softwareänderungen.
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.

Unverbindliches Angebot einholen

Sie haben Interesse an unseren Dienstleistungen? Fragen Sie uns gerne für ein unverbindliches Angebot an. Wir helfen Ihnen gerne weiter und beraten Sie vorab kostenlos.

Sie haben weitere Fragen zu unserem Leistungsspektrum oder möchten einen ersten Termin vereinbaren? Dann nehmen Sie gerne Kontakt mit uns auf. Wir stehen bei Ihrem Anliegen beratend zur Seite und gehen sorgfältig auf individuelle Wünsche ein.

Maximilian Pohl

Ansprechpartner: Maximilian Pohl

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

Kontakt

Referenzen

Viele Unternehmen vertrauen auf unsere Dienstleistungen und auf unser Expertenwissen aus zahlreichen Branchen. Wir sind außerdem Gewinner des Gründerpreis Baden-Württemberg (ausgezeichnet als herausragendes Jungunternehmen). Wir freuen uns auf Sie!