[펌웨어설계] 16. 단위별 디바이스 드라이버 설계
- RTOS : 임베디드시스템에서 사용하는 OS
- 실시간성을 중요시 여기는 OS
- OS 종류 : VxWorksm Nucleus, freeRTOS(무료)
HAL 시스템 초기화 드라이버(API)
- 클럭 Init : 시스템 초기 구동을 위해 클럭과 관련된 HAL API 함수를 정리해야함.
- GPIO용 Init 해줘야함
- NVIC(인터럽트), SysTick타이머 Init 해줘야함
- PWR(Power) 드라이버로 전원관리를 위해 Init
- EXTI (외부 인터럽트) Init
HAL 사용 모델
- HAL 드라이버에 전형적인 사용모델이 나눠져있음.
- 기본적으로 사용자 파일, DMA 사용장치의 인터럽트 핸들러에서 호출
HAL 입출력 프로세스
- 폴링모드 : 아무것도 안건든모드, default
- 블로킹 모드이다.
- 함수 수행이 끝날때 까지 멈춰있음_ timeout이 있으며(NVIC,DMA와 다르게) 지정된 시간이 지나면 다른것이 돌아감.
- 인터럽트모드 : NVIC
- 인터럽트 핸들러에서 호출된 콜백함수가 호출되어 실행됨
- DMA모드 : DMA
- CPU를 대신해서 정해진 일을 수행하는 하드웨어 블록
- DMA 인터럽트 이용