티스토리 뷰

HAL?

HAL이란, Hardware Abstraction Layer의 앞 글자를 땄다. 글자 그대로 해석하면, 하드웨어 추상화 레이어라고 한다.

위키피디아에 의하면 HAL은 하드웨어와, 운영체제의 소프트웨어 그 사이에 들어가는 추상계층을 의미한다.

HAL을 사용하는 이유

HAL은 하드웨어의 물리적 차이를 숨겨, 응용프로그램 혹은 코드를 짜는 사람에게 일관성을 제공하게 된다.

예를 들어, 이러한 HAL이 없이 다양한 컨트롤러를 사용해야 한다면, 그 하드웨어에 맞는 특정한 응용프로그램을 작성해야 하고, 작성된 프로그램은 하드웨어 구성이 달라지는 경우 재활용 할 수 없게 된다는 문제를 갖게 된다.

따라서, HAL은 몇 천 페이지나 되는 instruction set을 굳이 참고하지 않더라도 마이크로 컨트롤러의 제어 코드 작성을 가능하게 하는 친구이다.

우리는 HAL을 통해, 하드웨어의 변경에 크게 구애받지 않고 응용프로그램의 재활용성을 높일 수 있다.

알아도 되고 몰라도 되고

마이크로소프트사에서는 Windows NT가 HAL에 기반하고 있다. HAL이 NT에 주는 장점은 NT의 휴대성을 높여주는데 있다. 하드웨어 마다 HAL은 각각 다르게 작성되어야 한다. 하지만, 하드웨어가 달라지더라도 HAL만 다시 작성하면 다른 부분의 운영체제는 특별히 다시 작성될 필요 없이 다시 컴파일만 하면 된다. 그래서 예전처럼 NT가 다른 CPU 구조에 인식되어야 할 때 용이했다.

현재 HAL에서 한 걸음 더 나아가 API가 사용된다. 소프트웨어는 이미 구성되어 있는 API를 가지고 하드웨어를 작동시키면 된다. API는 직접 또는 HAL를 통해 하드웨어를 컨트롤 한다. 예를 들어, GPS라는 API는 어플리케이션이 직접 하드웨어에 명령 하지 않아도 하드웨어 정보를 얻을 수 있도록 도와준다.

 

'제어시스템 (ft.STM32) > 마이크로컨트롤러 입문' 카테고리의 다른 글

[STM32] Timer Interrupts, D/A Conversion  (0) 2024.02.07
[STM32]GPIO  (2) 2024.02.07
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함