Wie ook maar een beetje ervaring heeft met embedded-softwareontwikkeling weet dat in deze wereld het oude vertrouwde C nog steeds de onbetwiste heer en meester is. De meeste tooling richt zich op ontwikkeling in C en chipfabrikanten en third-party-softwareleveranciers schrijven hun bibliotheken steevast in deze taal. En omdat ook bij nieuwe ontwikkelingen vaak bestaande componenten en bibliotheken worden gebruikt, is het niet vanzelfsprekend om dit in een andere programmeertaal te doen.
Dat is echter precies wat we bij Sioux wel hebben gedaan. Voor de ontwikkeling van microcontrollergebaseerde embedded systemen hebben we een standaard platform, opgebouwd rond de STM32-microcontrollerreeks van Stmicroelectronics. De softwarecomponent van dit platform, met daarin de nodige drivers en andere standaard functionaliteit, is geschreven in C++.
De keuze hiervoor is gebaseerd op de mogelijkheden van C++ om de onderliggende hardware in code te modelleren en te abstraheren. Dat biedt zo veel voordelen dat de (bescheiden) extra moeite die nodig is om met bestaande bibliotheken en code te integreren ruimschoots wordt terugverdiend. Om een concreet voorbeeld te geven: het is handig om peripherals zoals GPIO-pinnen abstract te definiëren. De applicatiecode hoeft zo niks te weten van de details van de pin, maar alleen van de interface om een pin hoog of laag te zetten.
