임베디드 소프트웨어 개발에서는 하위 레이어를 염두에 둔 개발이 여전히 활발합니다젠 토토와 HAL의 차이점을 간략하게 알면 설계 시 더 많은 옵션을 갖게 될 것이라고 생각합니다
운전자란 무엇입니까?
운전사특정 하드웨어(이하 HW)를 제어하기 위한 소프트웨어(이하 SW)이다목적은 대상 HW에 특정한 제어를 수행하는 것인데, 해당 HW에 특정한 제어만 수행하므로 낭비가 없으며 처리 속도가 빠릅니다
그러나 젠 토토의 처리 내용은 HW에 의존하기 때문에 젠 토토가 상위 SW에 노출하는 인터페이스도 HW에 의존하는 경향이 강합니다HW가 변경되면 해당 젠 토토를 사용하는 상위 SW를 수정해야 하는 경우가 많습니다

HAL이란 무엇입니까?
HAL이다하드웨어 추상화 계층의 약어이며 "하드웨어 추상화 계층"이라고도 합니다HW에 접근하기 위한 API를 제공하고 이 API를 사용하면 상위 SW가 차이를 인식하지 못한 채 HW를 제어할 수 있습니다

젠 토토와 HAL의 차이점
젠 토토는 특정 HW에 의존하는 처리를 수행하고 직접 제어 수단을 제공합니다
| 특징 | 운전사 | HAL |
|---|---|---|
| 역할 | 직접 하드웨어 제어 | 하드웨어 추상화 |
| 추상화 수준 | 낮음 | 높음 |
| 이식성 | 낮음(하드웨어에 따라 다름) | 높음(하드웨어 독립적) |
| 우리가 제공하는 것 | 하드웨어 관련 작업 | 기능 단위 제어 인터페이스(API) |
| 혜택 | 빠른 처리 속도 | 상위 SW 변경 비용을 낮게 유지할 수 있습니다 |
| 단점 | 하드웨어에 따라 다름 | 처리 속도가 감소합니다 |
위는 예시입니다 실제 개발에서는 HW, 아키텍처, 디자인에 따라 젠 토토와 HAL의 관계가 바뀔 수 있습니다아는 것부터 시작하는 것이 어떨까요?

