Capa de abstracción de hardware (HAL)
Una capa fina de software que esconde direcciones de registros y diferencias entre chips tras funciones como uart_write().
Sin HAL, la aplicación escribe directamente en los registros de los periféricos, y cada cambio de microcontrolador obliga a reescribirla. Con HAL llama a una interfaz y solo cambia la capa de abajo. Windows NT se construyó así en 1993: hal.dll separaba el núcleo de los detalles de la placa para que el mismo sistema funcionara en x86, MIPS y Alpha. Android tiene módulos HAL para cámaras y sensores.
En sistemas embebidos es la biblioteca del fabricante, como la STM32Cube HAL de ST, o la de la comunidad, como embedded-hal en Rust, donde el controlador de un sensor se escribe contra traits y no contra un chip concreto. La queja de siempre es que la generalidad cuesta: una llamada HAL que cambia un pin puede tardar cincuenta ciclos donde una escritura de registro tarda uno. Por eso muchos proyectos acaban usando HAL en todas partes salvo en la única interrupción donde importa.