본문 바로가기
임베디드.일렉트로닉스/STM32

STM32 FreeRTOS 사용가능 프로젝트 생성방법.

by i.got.it 2015. 12. 1.

 

 

 

개요

 

 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.

댓글



 

비트코인




암호화폐       외환/나스닥/골드         암호화폐/외환/나스닥/골드
     
현물 |선물 인버스 |선물 USDT       전략매니저(카피트레이딩)         프랍 트레이더 온라인 지원가능. MT4,MT5