IT-lexicon › Programmeren › Hardware abstraction layer (HAL)

Hardware abstraction layer (HAL)

Programmeren Svenska → Bijgewerkt: 2026-11-02

Een dunne softwarelaag die registeradressen en chipverschillen verbergt achter functies als uart_write().

Zonder HAL port de applicatie rechtstreeks in de registers van randapparatuur, en elke wissel van microcontroller betekent herschrijven. Met een HAL roept ze een interface aan en verandert alleen de laag eronder. Windows NT werd in 1993 zo gebouwd: hal.dll scheidde de kernel van moederbordspecifieke zaken, zodat hetzelfde systeem op x86, MIPS en Alpha kon draaien. Android kent HAL-modules voor camera's en sensoren.

In embedded werk is het ofwel de bibliotheek van de fabrikant, zoals de STM32Cube HAL van ST, ofwel die van de community, zoals embedded-hal in Rust, waar een sensordriver tegen traits wordt geschreven in plaats van tegen één specifieke chip. De eeuwige klacht is dat algemeenheid geld kost: een HAL-aanroep die een pin schakelt kan vijftig cycli duren waar een registerschrijfactie er één nodig heeft. Veel projecten eindigen dan ook met HAL overal, behalve in die ene interrupt waar het ertoe doet.

← Terug naar het lexicon