IT-словарь › Программирование › Слой абстракции оборудования (HAL)

Слой абстракции оборудования (HAL)

Программирование Svenska → Обновлено: 2026-11-02

Тонкий программный слой, скрывающий адреса регистров и различия между чипами за функциями вроде uart_write().

Без HAL приложение напрямую обращается к регистрам периферии, и при каждой смене микроконтроллера его приходится переписывать. С HAL оно вызывает интерфейс, а меняется только слой под ним. Windows NT в 1993 году строилась именно так: hal.dll отделял ядро от особенностей материнской платы, и одна и та же система работала на x86, MIPS и Alpha. В Android есть HAL-модули для камер и датчиков.

В embedded это либо библиотека производителя, например STM32Cube HAL от ST, либо общественная, как embedded-hal в Rust, где драйвер датчика пишется под трейты, а не под конкретный чип. Вечная жалоба: универсальность стоит дорого — вызов HAL, переключающий пин, может занимать полсотни тактов вместо одного на запись в регистр. Поэтому во многих проектах HAL используется везде, кроме того единственного прерывания, где это важно.

← Назад к словарю