Die hardwarenahe oder embedded Entwicklung kommt zum Einsatz, sobald eigenständige Systeme mit beschränkten Ressourcen eingesetzt oder echtzeitkritische Anwendungen realisiert werden müssen.
Echtzeitsysteme
Multithreading und Schutz von Datenstrukturen
Abhängig von der Komplexität und Aufgabe des Systems ist oft die Verwendung von schlanken Echtzeit-Betriebssystemen (RTOS) sinnvoll, um die "parallele" Abarbeitung von Prozessen sicherstellen zu können (Multithreading).
Diese Anforderung setzt den Einsatz von Verfahren zum wechselseitigen Schutz von Speicherstrukturen und Ressourcen voraus (Mutexe, Semaphore), die durch eine Thread-Synchronisation zur Sicherstellung der Datenintegrität dienen.
Anbindung an System-Busse und Schnittstellen
Die Ansteuerung lokaler System-Busse wie I2C und SPI gehört genauso zur hardwarenahen Entwicklung wie die Anbindung externer Schnittstellen wie CAN und Ethernet oder Funkschnittstellen wie WiFi-, Bluetooth- und GSM/GPRS.
Bei der Inverkehrbringung von Funkmodulen ist allerdings die Konformität zur RED-Richtlinie (Radio Equipment Directive) sicherzustellen.
Alles aus einer Hand? Gerne entwickeln wir auch Ihre Elektronik/Hardware!
Elektronik-/ Hardwareentwicklung
Aktualisierbarkeit im laufenden System
Over-the-Air Firmware-Updates und Updates über Bootloader
Durch den Einsatz systemspezifischer Bootloader und Update-Funktionen kann die Übertragung von Firmware-Updates "im laufenden System" z.B. über den CAN-Bus oder WiFi ermöglicht werden.
Skalarmultiplikation in NEON Registern
Prozessorspezifische Optimierungen
SIMD Performance durch Intrinsics
Für rechenintensive Operationen in der Signalverarbeitung, wie z.B. FFT-Berechnungen mit Millisekunden-Fensterung, bietet sich die Verwendung von plattformspezifischen SIMD Optimierungen wie z.B. NEON oder VFPv3 an.
Durch den Einsatz von Intrinsics kann prozessorspezifischer Assembler Code dafür eingesetzt werden, um beispielsweise Vektoroperationen wie Matrixmultiplikationen in speziellen, hochperformanten Registern zu berechnen.