그라운드 임베디드 EN 유튜브 구독

노트 / 펌웨어 설계와 품질

계층 구조: 위는 아래만 부른다

HAL, 드라이버, 서비스, 애플리케이션으로 나누고 의존 방향을 한쪽으로 정합니다. 칩이 바뀌어도 위쪽 코드가 살아남는 구조.

GROUND EMBEDDED · 정리 노트설계·품질 01계층 구조계층하는 일예애플리케이션제품의 동작 규칙밸런싱 상태 머신, 모드…서비스재사용 가능한 기능PID, 필터, 프로토콜…
계층 하는 일 예
애플리케이션 제품의 동작 규칙 밸런싱 상태 머신, 모드 전환
서비스 재사용 가능한 기능 PID, 필터, 프로토콜 파서, 로그
디바이스 드라이버 외부 칩 하나를 다룸 MPU6050, HC-05, 모터 드라이버
HAL / MCAL MCU 주변장치 GPIO, I2C, 타이머, ADC
애플리케이션무엇을 할지서비스통신 프로토콜, 필터드라이버센서, 모터HAL · 레지스터하드웨어
위 계층은 바로 아래 계층만 부릅니다. 하드웨어가 바뀌면 맨 아래만 고칩니다.

규칙

  • 위는 아래를 부르고, 아래는 위를 모른다. 드라이버가 애플리케이션 함수를 직접 부르면 안 됩니다. 아래에서 위로 알릴 일은 콜백이나 이벤트로 합니다.
  • 같은 계층끼리의 호출도 최소화합니다.
  • 애플리케이션에는 레지스터 이름, 핀 번호가 나오면 안 됩니다.

얻는 것

  • MCU를 STM32F4에서 G4로 바꿔도 HAL만 고치면 됩니다.
  • 서비스와 애플리케이션 계층은 하드웨어 없이 PC에서 테스트할 수 있습니다.
  • 여러 사람이 계층별로 나눠 작업할 수 있습니다.

자동차 소프트웨어와의 연결

AUTOSAR의 MCAL, ECU 추상화, 서비스, RTE, SWC 구조가 바로 이 생각을 표준으로 정한 것입니다. BSW와 ASW를 나누는 것도 같은 원리입니다.

영상으로 이어 보기RC카 만들기 시리즈 6편대기업 임베디드 개발자 Lego RC카 메이킹 시작합니다. 【RC카 개발1】PROJECT COURSE요구사항부터 소프트웨어 구조까지 한 프로젝트로 해 보고 싶다면밸런싱 로봇 하나를 요구사항, 회로와 PCB, 펌웨어, 앱까지 실무 순서대로 만드는 강의입니다. 10파트 165강.강의 살펴보기 →FREE PDF무료 전자책 3권 받기이 주제를 한 권으로 이어서 읽고 싶다면. BLDC 모터 제어, 직렬통신, 센서를 책 분량으로 묶었습니다. 이메일만 남기면 바로 받습니다.무료로 받기 →