[펌웨어분석] 15. 디바이스 드라이버 API 구조

Sireal·2022년 2월 11일
0

펌웨어 설계

목록 보기
15/16
  • API : 응용프로그램 인터페이스
    • 특정한 작업의 집합체

디바이스 드라이버

  • 하드웨어 장치를 제어하기 위한 소프트웨어
  • 운영체제시스템에서는 운영체제에 포함되어있음
  • 하드웨어를 제어하는 툴들을 그냥 디바이스 드라어바고 함.
  • 리눅스나 윈도우가 같은하드웨어를 써도 각자의 드라이버를 써야함.

리눅스 커널

  • 리눅스 커널 = 커널 코어 + 디바이스 드라이버
    • 커널 코어 : 멀티 프로세서 제어와 같은 운영체제 본연의 역할을 하는 소프트웨어
    • 디바이스 드라이버 : 하드웨어 디바이스를 직접 제어하는 소프트웨어
  • 사용자영역 어플리케이션을 시스템콜이라 불리는 인터페이스로 통신함.
  • 각 디바이스들을 제어하는 디바이스 드라이버가 존재함.
  • 솔라리스 커널의 디바이스 드라이버의 예
    • 드라이버라는 이름의 모듈로
      블록 드라이버, 캐릭터 드라이버, 네트워크(NIC) 드라이버 등이 있음.
    • 블록드라이버 : HDD< USB 등 저장매체와 연관 동작
    • 캐릭터 드라이버 : 시리얼 포트와 같은 전반적인 장치를 다룸
    • NIC : 네트워크 관련

STM32 드라이버_ HAL드라이버

  • OS를 사용할수도, 사용안할수도있는 드라이버
  • HAL : Hardware Abstraction Layer 약자. 추상화 계층으로 해석된 인터페이스
  • CPU를 교체하더라도 소프트웨어(HAL)을 그대로 쓸수있도록 구성됨.
  • 각 통신, 블럭 별 드라이버가 존재함.
  • HAL드라이버 이름 규칙( Naming Rule )
  • 주변장치 핸들구조체가 있음.
  • 콜백함수도 사용됨.
profile
🚄계속 앞으로🚄

0개의 댓글

관련 채용 정보