Firmware Entwicklung


Die meisten heutigen Kommunikationsgeräte basieren auf Mikrokontrollereinheiten (MCUs) und Transceivern (ICs). Die Funktionalität der Geräte ist in ihrer Firmware definiert, was deren Entwicklung zu unserer Kerndisziplin macht. Wir verfügen über einen kompletten Firmware-Entwicklungsprozess, welcher auf den folgenden Elementen basiert, aber natürlich nicht auf diese limitiert ist:

 

Wiederverwendbarkeit

Im Laufe der Zeit haben wir eine große Palette an Elementen und Design-Mustern gesammelt, welche die Entwicklung gängiger Funktionalitäten erleichtern und beschleunigen und darüber hinaus die Code Qualität verbessert.

Portabilität

Wir sind es gewohnt, mit vielen verschiedenen Mikrokontrollern und Transceiver-Plattformen zu arbeiten. Eine saubere Hardware-Abstraktion ist für uns daher ein Muss. Mit der Zeit haben wir die notwendige Erfahrung gesammelt, um viele verschiedene Halbleiter be- und verarbeiten zu können, sowie die Kenntnis darüber erlangt, flexible und komplett ausgestattete Oberflächen-Designs der Hardware zu gestalten.

Projekt und Source Code MANAGEMENT

Die Leitung komplexer Projekte bedarf hoher Anforderungen. Intern arbeiten wir mit einer agilen Entwicklung, teilweise auf SCRUM, teilweise auf anderen agilen Ansätzen basierend. Diese kombinieren wir wann immer notwendig mit testgesteuerter Entwicklung. Zusätzlich nutzen wir GIT-basierte Versionskontrollen, Fehlersuchen und kontinuierliche Integration via Gitlab, sowie ein Projekemanagement mit BlueAnt (by proventis).

TEST & VERIFIKATION

Die meisten unserer Softwareprodukte werden mit Unit-Tests in den kleinsten sinnvollen Einheiten entwickelt. Zusätzlich nutzen wir automatisierte Testsysteme auf Systemlevel, um verlässliche Regressionstests sicherzustellen. Diese Systemtests werden in simulierten, nachgeahmten und reelen Umgebungen durchgeführt.