De term 'embedded firmware' staat voor software die werkt in microcontrollers. Embedded firmware kenmerkt zich doordat het meestal een real-time (gegarandeerde responstijd) taak uitvoert.
De meeste embedded firmware wordt door ons in de programmeertaal C geschreven. In een heel enkel geval gebruiken we nog weleens assemblertaal. De C-compilers zijn tegenwoordig dermate goed dat het haast niet mogelijk is om in assemblertaal betere/snellere software te schrijven.
Een groot nadeel van assemblertaal is dat een in assemblertaal geschreven programma slechts geschikt is voor 1 processorarchitectuur. Als het programma op een andere processorarchitectuur moet gaan werken, dan moet het volledig opnieuw worden geschreven. Aangezien de software doorgaans een groot deel van de investering in een nieuw electronisch product 'opslokt' is het logisch de software zodanig te schrijven dat er zoveel mogelijk van de software (=investering) kan worden hergebruikt in opvolgende producten.
De taal C is een goed keuze voor embedded firmware omdat het voor iedere processorarchitectuur beschikbaar is. Deze taal is tevens dermate gestandariseerd dat het vrij eenvoudig is om een programma geschikt te maken voor een andere processorarchitectuur. Door C te gebruiken wordt de investering in de embedded software maximaal beschermd.
Digitale signaalverwerking
Met behulp van digitale signaalverwerking kunnen ingangssignalen worden verwerkt en bewerkt. Traditioneel was digitale signaalverwerking het domein van DSPs (digitale signaalprocessors). Tegenwoordig zijn ook microcontrollers snel genoeg voor de meest uiteenlopende signaalverwerkingstaken zodat er ook met low-cost oplossingen zeer goede resultaten te behalen zijn. Het voordeel van het gebruik van een microcontroller is tevens dat het signaalverwerkingsgedeelte te combineren is met de andere besturingstaken van een apparaat zoals het aansturen van een display. Traditioneel zijn DSPs minder geschikt voor besturingstaken omdat deze zeer beperkte I/O mogelijkheden hebben.
Er is bij NCT Developments ruime ervaring met diverse toepassingen van digitale signaalverwerking voor onder andere het verwerken van audiosignalen en sensordata.