• 카테고리

    질문 & 답변
  • 세부 분야

    임베디드 · IoT

  • 해결 여부

    미해결

HAL할 드라이버와 LL드라이버 뜻은 뭔가요?

20.05.17 04:00 작성 조회수 2.5k

2

HAL할 드라이버와 LL드라이버 뜻은 뭔가요?

이 부분에 대해 설명이 없습니다

답변 1

답변을 작성해보세요.

1

안녕하세요.

HAL은 Hardware Abstraction Layer 의 약자이고

LL은 Low Level 의 약자입니다.

마이크로컨트롤러를 동작시키기 위해서 칩 내부에 고유의 주소를 갖는 레지스터에 어떤 값을 읽거나 쓰는 작업을 해야하는데,

과거 8bit MCU의 경우는 레지스터 종류도 적고 간단해서 데이터시트를 직접 찾아보며 프로그램 작성이 가능한 수준이었습니다.

하지만 32bit MCU는 워낙 방대하고 복잡한 레지스터를 가지고 있어서 사용자가 일일이 데이터시트를 찾아보며 구현하기엔 생산성이 떨어지고 time to market이 오래걸리는 문제가 있습니다. (CubeMX 같은 GUI를 제공해주는 것도 같은 이유입니다.)

따라서 칩 제조사에서는 자사의 MCU를 빠르고 쉽게 사용할 수 있도록 레지스터와 통신 함수등을 제공해주기 시작했는데, 그 종류가 HAL과 LL이 있는겁니다.

이 둘의 차이점은 LL은 아주 기본적인 하드웨어레벨 함수등을 제공해주지만, 함수 내부 구조가 단순하고, HAL은 응용어플리케이션 함수까지 제공해주지만, 함수 내부 구조가 복잡하고 흐름 파악이 어렵습니다.