Hårdvaruabstraktionslager (HAL)
Ett tunt programlager som döljer registeradresser och chipskillnader bakom funktioner som uart_write().
Utan HAL skriver applikationen direkt till kringutrustningens register, och varje byte av mikrokontroller betyder att koden skrivs om. Med HAL anropar den ett gränssnitt, och bara lagret under byts. Windows NT byggdes 1993 så — hal.dll skilde kärnan från moderkortets detaljer så att samma system kunde köras på x86, MIPS och Alpha. Android har sina HAL-moduler för kameror och sensorer.
I inbyggda system är det tillverkarens bibliotek, som ST:s STM32Cube HAL, eller gemenskapens, som Rusts embedded-hal, där drivrutiner för en sensor skrivs mot traits i stället för mot ett visst chip. Den eviga invändningen är att generaliteten kostar: en HAL-funktion som slår på en pinne kan ta femtio cykler där en registerskrivning tar en. Därför slutar många projekt med HAL överallt utom i det enda avbrott där det spelar roll.