Lessico IT › Programmazione › Hardware abstraction layer (HAL)

Hardware abstraction layer (HAL)

Programmazione Svenska → Aggiornato: 2026-11-02

Un sottile strato software che nasconde indirizzi di registro e differenze tra chip dietro funzioni come uart_write().

Senza un HAL l'applicazione manipola direttamente i registri delle periferiche, e a ogni cambio di microcontrollore va riscritta. Con un HAL chiama un'interfaccia e cambia solo lo strato sottostante. Windows NT fu costruito così nel 1993: hal.dll separava il kernel dalle specificità della scheda madre, in modo che lo stesso sistema potesse girare su x86, MIPS e Alpha. Android ha moduli HAL per fotocamere e sensori.

Nel mondo embedded è o la libreria del produttore, come l'HAL STM32Cube di ST, o quella della comunità, come embedded-hal di Rust, dove il driver di un sensore è scritto su trait anziché su un chip specifico. La lamentela perenne è che la generalità ha un costo: una chiamata HAL che commuta un pin può richiedere cinquanta cicli, contro uno per una scrittura diretta sul registro. Così molti progetti finiscono con l'HAL ovunque tranne che nell'unica interruzione in cui conta.

← Torna al lessico