3. Free RTOS - CMSIS_RTOS vs FreeRTOS

728x90
반응형

CMSIS?

ARM 코어를 다루다 보면 자주 보이는 단어다. Common Microcontroller Software Interface Standard의 약자로 "마이크로 컨트롤러에서 공통적으로 사용되는 표준 소프트웨어 인터페이스"정도로 해석할 수 있다.

 

아래 그림은 ARM 홈페이지에 나와있는 MCU 리스트다.

 

그럼 CMSIS_RTOS는? FreeRTOS의 API 함수를 호출하는 함수로 구현되어 있다.

 

 

Project Explorer - Middlewares - Thrid_Party - FreeRTOS - Source - CMSIS_RTOS 

 

위 경로를 확인해보면 cmsis_os.c파일을 확인할 수 있다. 하나만 예를 들어 살펴보면,

 

 

cmsis_os.c에 선언되어 있는 osKernelStart 함수다. 함수의 내용을 살펴보면 FreeRTOS의 함수 vTaskStartScheduler()을 호출한다. 

osKernelStart 함수를 호출하면 vTaskStartScheduler 함수를 호출하는것과 같다. 

 

이렇게 OS API를 직접 호출하지 않고 CMSIS를 거쳐 호출하게 되면 향후에 OS가 변경되더라도 cmsis_os.c 파일의 함수 내용만 변경해주면 되기 때문에 개발자 입장에서는 편리하다.

하지만, CMSIS_RTOS에서 FreeRTOS를 이용하기 때문에 메모리 소모가 조금더 있다는 단점이 있다.

 

 

CMSIS RTOS는 구글에 검색하면 바로나오고, FreeRTOS 또한 "FreeRTOS manual"로 검색하면 최신 버전의 manual을 확인할 수 있다.

 

 

이제 진짜 RTOS를 이용해 구현해보자.

 

- 끝 -

 

728x90
반응형