하드웨어, 인터럽트

with MK·2020년 10월 27일
0

펌웨어

목록 보기
2/3
  • 하드웨어를 제어하기 위해서는 펌웨어에 관련된 기능이 만들어져 있어야 한다.
  • 가장 먼저 할 일은 하드웨어의 레지스터를 코드로 만드는 일이다.
  • 데이터 시트를 참조해 레지스터의 기능을 파악하고, 이를 구조체를 통해 만든다.
  • volatile 선언은 컴파일러의 변수 최적화를 막아 메모리를 참조하도록 만든다.
  • 펌웨어를 다른 하드웨어에 쉽게 이식하기 위해 공용 인터페이스를 만드는 것이 좋다.
  • 그러한 하드웨어 공용 인터페이스를 HAL라 한다.
  • 각 하드웨어를 사용할 때, 공용 인터페이스 API에 맞는 기능을 각각 구현한다.
  • printf의 중요한 기능은 포맷을 지정할 수 있다는 것이다.
  • 컴파일러 빌트인 함수를 사용하여 재정의하여 만든다.
  • 인터럽트는 컴퓨팅 시스템의 꽃이다.
  • 인터럽트 컨트롤러를 만들고 이를 하드웨어와 연결한다.
  • 인터럽트를 처리할 수 있도록 익셉션 핸들러 안에서 인터럽트 핸들러를 호출하게 한다.
  • 하드웨어가 인터럽트 컨트롤러로 신호를 보내고, 인터럽트 컨트롤러는 코어로 신호를 보낸다. 코어는 그 상태에서 익셉션 핸들러를 호출하고, 익셉션 핸들러 내의 인터럽트 핸들러로 간다.

0개의 댓글