Trotz immer leistungsfähigerer Hardware bleibt die Entwicklung auf eingebetteten Systemen eine eigene Welt. Der Zwang bestimmte Sprachen und Werkzeuge einsetzen und immer wieder spezielle Lösungen finden zu müssen, stellt eine besondere Herausforderung dar. Herstellern mit dem richtigen Know-how bietet sich dadurch eine beträchtliche Chance.
MIKROCONTROLLER PROGRAMMIERUNG
Vom AVR-8-Bitter über C16x, MSP430, Coldfire und Renesas RX bis zur ARM Cortex-M-Reihe kennen wir uns mit Eigenheiten und Tücken verschiedener Mikrocontroller aus. Wo die Library des Chipherstellers unvollständig ist, entwickeln wir maßgeschneiderte anwendungsspezifische Treiber für die vielen in Mikrocontrollern verbauten Funktionseinheiten. Ob I2C, SPI, UART oder Crypto-Beschleuniger, awinia schafft eine sinnvolle Abstraktion. Und natürlich entwickeln wir auch Ihren kompletten Bootloader für Ein- oder Mehrprozessorsysteme.


C++11/14/17/20
Muss Ihre Firmware nicht nur performant und ressourcenschonend, sondern auch deterministisch, plattformunabhängig, modular und flexibel wiederverwendbar sein? C++ bietet Ihnen dies alles und mit jeder neuen Version noch mehr. Mit unserem C++ Know-how lassen Sie geräteübergreifende Bibliotheken und große Applikationen entstehen. Dabei ist Einfachheit unser oberstes Designprinzip. Ist Flexibilität gefordert, setzen wir auf den konsequenten Einsatz objektorientierter Design-Patterns. Von Anfang an achten wir auf gute Testbarkeit durch interfacebasierte Programmierung.
EMBEDDED OS
Vom kleinen Sensor mit wenigen Kilobyte ROM bis zur Hochleistungskamera mit Gigabytes an Speicher, bringt jedes Gerät eigene Anforderungen mit, die sich auf die Auswahl eines Betriebssystems auswirken. Wir helfen zwischen embedded Linux, einem RTOS (z.B. FreeRTOS oder Zephyr) oder einer bare-metal async Runtime mit Eventloops (z.B. embassy) abzuwägen. Durch unsere langjährige Erfahrung wissen wir, welche Laufzeitumgebung genau zu Ihrem Produkt passt und können sowohl Bring-Up und Treiber- als auch Applikationsentwicklung übernehmen.


REALTIME
Steuergeräte, Aktoren und Sensoren müssen oft in sehr kurzer und vor Allem vorhersagbarer Zeit auf Ereignisse reagieren. Um dies sicherzustellen, werden in der Regel Echtzeitbetriebssysteme, wie z.B. FreeRTOS, Zephyr oder embOS eingesetzt. Gute Nebenläufigkeit entsteht durch Message Passing zwischen Tasks oder zwischen Task und Interrupt-Handlern. Durch die Anwendung des Publish-Subscribe-Patterns entstehen lose gekoppelte Softwarekomponenten. Unsere Experten haben jahrzehntelanges Know-How bei Verwendung, Integration und Tuning solcher Betriebssysteme für verschiedenste Geräte, sowie bei der korrekten Konfiguration gängiger MCUs für Echtzeitanwendungen.
FELDBUSSE
Wo zuverlässige Kommunikation zwischen Sensoren, Aktoren und Steuergeräten notwendig ist, werden in der Regel standardisierte Feldbusse genutzt. Je nach Einsatzbereich, kann dies z.B. IO-Link, Modbus, EIP, CAN oder HART sein. Jeder Feldbus besitzt ein eigenes Kommunikationsmodell und bringt spezifische Herausforderungen bei der Integration in die Anwendung mit sich. awinia hat in der Vergangenheit verschiedenste Feldbusstacks in Bestands- und Neugeräte integriert und diese Geräte bis zur Feldbuszertifizierung begleitet. Muss eine Gerätelinie mehrere unterschiedliche Feldbusse unterstützen, setzen wir dafür modellgetriebene Softwareentwicklung ein.
