개요 | |
STM32 개발시 FreeRTOS를 사용가능하게 하는 STM32CubeMX에서의 셋팅. | |
|
방법 | |
1. STM32CubeMX 신규프로젝트 생성. STM32CubeMX 실행하고 신규 프로젝트 생성한다
2. Pinout탭에서 FreeRTOS 선택한다.
Configuration 탭을 보면 MiddleWare 에 FreeRTOS가 들어와있다.
FreeRTOS의 옵션 설정은 FreeRTOS클릭하여 설정가능하다. 지금은 그냥 기본 옵션으로 두자.
3. 자동코드 생성. 기타 다른 GPIO등 설정하고 나서 자동코드생성하자. 우리는 KEIL MDK-ARM용으로 생성한다. 자동생성된 프로젝트를 KEIL MDK-ARM에서 연 모습.
FreeRTOS 없는 상태에서 생성된것 대비 추가된것들. 1. 프로젝트 소스에 붉박에 해당하는것들이 추가됨. 2. main.c 에 파박에 해당하는 것들 추가됨. FreeRTOS 사용하기 위하여 추가되는 것은 크게 많지 않으며, non-OS에서 생성되는것은 그대로 있는 상태에서 추가되는 개념이다. 기존 non-OS에서 코딩방식 그대로 해도 되며, FreeRTOS에서 제공되는 기능을 이용하는 방식으로도 코딩가능하다.
개념이해 - CMSIS-RTOS 본 프로젝트는 FreeRTOS 활용할때 (예 FreeRTOS에서 제공하는 함수호출) 직접 FreeRTOS에 접근하지 않고 중간에 CMSIS-OS 라는 것을 거쳐서 FreeRTOS를 사용하는 방식이다. CMSIS-OS란 여러종류의 RTOS 들을 사용할때 표준적인 입출력수단으로 중간계층에 해당한다. 즉, 우리는 현재 FreeRTOS를 사용하긴 하지만 실제 앱에서 호출되는 함수들은 CMSIS-OS에서 제공되는 함수를 호출하는 것이다. 만일 FreeRTOS가 아닌 다른 RTOS를 사용하게 된 경우 우리의 앱측에서의 RTOS처리함수는 변경하지 않아도 된다. 이에 대한 상세한 설명 : STM사에서 제공하는 pdf문서인 http://www.st.com/st-web-ui/static/active/en/resource/technical/document/user_manual/DM00105262.pdf 의 페이지 12를 볼것.
한편, 위와 같이 CMSIS-RTOS 를 거쳐서 FreeRTOS를 사용하는 구조가 달성되어있지만 개발자가 반드시 CMSIS-RTOS API를 호출해서 FreeRTOS기능을 구현하지 않아도 된다. FreeRTOS API를 직접 호출해도 되며 당연히 정상동작한다.
| |
|
본 글이 포함된 상위 정리장소 : http://igotit.tistory.com/244
|
///466.
'임베디드.일렉트로닉스 > STM32' 카테고리의 다른 글
STM32 DFU 모드에서 PC측 USB 장치드라이버. (0) | 2016.01.31 |
---|---|
STM32 DMA 개념잡기. (0) | 2015.12.01 |
STM32L4 개발 보드 : NUCLEO-L476RG (0) | 2015.11.30 |
SW4STM32. System Workbench for STM32. 무료 IDE.설치법. (0) | 2015.11.30 |
STM32L4, 저전력, ARM Cortex M4, DSP, FPU (0) | 2015.11.27 |
댓글