이전 포스트에서 ChibiOS/RT를 적용하는 방법을 알아봤습니다.
프로젝트 디렉토리를 만들고 제일 먼저 했던 일은 Makefile, chconf.h, halconf.h, mcuconf.h, main.c를 레퍼런스 디렉토리로부터 복사했던 것입니다.
Makefile에 대한 설명은 일반적이기도 하거니와 이전 포스트에서 이미 했었습니다.
1. chconf.h
chconf.h는 ChibiOS/RT 커널에 대한 설정을 가지고 있는 헤더입니다.
doxygen을 이용해서 문서를 생성했다면 해당 파일에 대한 내용을 브라우저에서 볼 수 있습니다.
간략하게 설명하자면 커널의 기본적인 설정과 여러 설비들에 대한 설정을 할 수 있는헤더입니다.
열어보면 CH_USE_xxxx 형태의 #define이 많이 있습니다.
xxxx는 내용만 딱 봐도 알 수 있도록 구성되어 있습니다. 세마포어를 사용할거냐, 뮤텍스를 사용할거냐 등등등.
이런 설비(대부분은 쓰레드간 통신을 위한 설비입니다.)를 사용하기 위해서 해당 #define을 TRUE로 변경하면 됩니다.
자세한 내용은 ChibiOS/RT의 문서 참고 바랍니다.
2. halconf.h
hal은 Hardware Abstract Layer의 약자이며 마이크로 컨트롤러의 여러 기능 들에 대해서 동일한 API를 제공하기 위한 모듈이라고 생각하면 됩니다.
열어보면 역시 HAL_USE_xxxx 형태로 구성되어 있으며 여기에서 정확하게 설정을 해야만 ChibiOS/RT에 이미 구현되어 있는 드라이버들이 활성화 됩니다.
예를 들어, GPIO(ARM Cortex에서는 PAL이라고 보통 부릅니다.)를 사용하기 위해서는 HAL_USE_PAL을 TRUE로 해야 컴파일은 물론이고 동작도 정상적으로 됩니다.
파일 자체가 설명이므로 사용하는 데 큰 어려움이 없을 것입니다.
3. mcuconf.h
halconf.h가 큰 카테고리라면 mcuconf.h는 좀 더 세밀한 카테고리라고 생각하면 됩니다.
mcuconf.h의 메인 주석에도 설명이 되어 있듯이, halconf.h에서 설정하지 않으면 mcuconf.h의 설정 내용이 적용되지 않습니다.
예를 들어, UART를 사용하고 싶다면 halconf.h에서 HAL_USE_UART를 먼저 활성화하고, mcuconf.h에서는 3개의 UART 중 어떤 것을 사용할 지 선택할 수 있습니다.
사용하지 않을 기능에 대해서는 애초에 비활성화하는 것이 크기, 사용성에 있어서 더 좋을 것입니다.
오늘은 간략하게 ChibiOS/RT의 설정에 대해서 알아봤습니다.
보다 자세한 내용은 제공되는 문서 또는 ChibiOS/RT 공식 홈페이지, 포럼 등을 참고 바랍니다.
댓글 없음:
댓글 쓰기