Wat is Embedded software?
Madelief
Embedded software is een term die veel voorkomt in de .NET vacatures op onze website, maar wat is embedded software en hoe wordt het ontwikkeld? Wij vertellen het je hieronder!
EMBEDDED SOFTWARE, WAT IS HET?
Heb je je weleens afgevraagd hoe apparaten zoals je wasmachine, bluetooth headset, e-reader, vaatwasser of verkeerslicht weten wat ze moeten doen zonder zichtbare computer?Ze beschikken vaak maar over één of enkele knoppen, ze hebben geen monitor waarop je precies kan zien welke opdracht je geeft of waar je op moet klikken. Toch weten ze allemaal exact wat er van ze wordt verwacht als je ze gebruikt.
De reden hiervoor is dat ze allemaal beschikken over embedded software. Embedded softwareapplicaties zijn gespecialiseerde programma’s die draaien op apparaten die geen pc zijn. Dit kan zijn in de vorm van microchips, maar ook als deel van een andere applicatie op de chip om specifieke functies aan te sturen.
Embedded software is over het algemeen specifiek geschreven voor één (type) apparaat waarop het gebruikt zal worden, in tegenstelling tot software voor computers die vaak op meerdere verschillende apparaten, configuraties en soms ook verschillende besturingssystemen werkt.
WAT IS C++?
C++ is volgens de TIOBE Index de nummer 4 programmeertaal wereldwijd. Het is een general-purpose programmeertaal met een lange, succesvolle historie. Tegenwoordig wordt C++ als low-level taal gezien, echter bevat C++ ook veel elementen van mid- en high-level talen. Door deze combinatie kan C++ op een brede manier worden ingezet, bijvoorbeeld voor het ontwikkelen van games, operating systems, machine learning tools en embedded systems.
WAAROM GEBRUIK JE C++ VOOR EMBEDDED SOFTWARE?
De hierboven genoemde brede inzetbaarheid is meteen één van de voornaamste redenen dat C++ zo geschikt is voor gebruik in embedded software. C++ kan worden gebruikt voor praktisch elk benodigde functie. Driver schrijven? Kan in C++. Software schrijven die input/output verwerkt? C++. Verbinding met benodigde databases? Kan ook met C++. Optimalisatie voor weinig geheugen of beperkte energie? Het punt is ongetwijfeld inmiddels duidelijk, ook dat kan in C++.
Door de mogelijkheid zoveel verschillende elementen in dezelfde taal te ontwikkelen is code sneller en overzichtelijker te schrijven. Niet alleen dat, op het gebied van performance scoort C++ ook hoog. Optimalisatie is ook makkelijker en effectiever te bewerkstelligen doordat alles binnen dezelfde programmeertaal mogelijk is.
ALTERNATIEVE TALEN VOOR EMBEDDED
Los van C++ zijn er ook veel andere talen geschikt voor gebruik in embedded software. Enkele voorbeelden:
- C: De voorloper van C++, een taal die op een nog iets lager level ligt dan C++. In het verlengde van C ligt ook een specifieke versie voor embedded software, namelijk Embedded C. Dit is onder andere gebruikt voor de software van Tesla auto’s.
- Rust: Een modernere taal die net als C++ over high-level functies beschikt. Doordat dit een nieuwere taal is, is er minder support beschikbaar. Rust is onder meer gebruikt voor de software voor sensoren in medische apparatuur.
- Java: Door de JVM cross-platform beschikbaar. Onder andere gebruikt om de software voor de Kindle e-reader te ontwikkelen.
- Python: Minder snel en meer geheugen nodig, maar als populaire high level taal enorm toegankelijk. Vaak gebruikt voor microcontrollers.
IS C# EEN ALTERNATIEF VOOR C++
Zoek je een alternatief voor C++ dat te gebruiken is om embedded software te ontwikkelen op het .NET platform, dan kijk je logischerwijs meteen naar C#. In hoeverre is dit een passend alternatief?
In de juiste situatie is C# een prima alternatief. Voor het .NET platform is er het .NET nanoFramework beschikbaar dat het makkelijk moet maken om met C# embedded software te schrijven die zeer efficiënt is.
Het nanoFramework is de vernieuwde en verbeterde opvolger van het voormalige .NET Micro Framework. Het is in staat om te werken met 128 flash en 64KB RAM-geheugen. Hiervoor maakt nanoFramework gebruik van een speciale verkleinde versie van de Common Language Runtime. De belangrijkste elementen om effectief met gelimiteerde hardware (geheugen, energie, etc) te werken zijn beschikbaar in bekende of geoptimaliseerde vorm. Natuurlijk is ook integratie met andere Internet of Things diensten binnen .NET mogelijk.
Ben jij enthousiast geworden en lijkt het je leuk om te werken met C++ of een vergelijkbare taal? Neem contact met ons op of neem zelf een kijkje tussen onze vacatures.