본문 바로가기

공부

[KOSTA 프로젝트 정리] STM32를 활용해 RTOS 개발환경을 구축해보자

주제 : 차량용 AEB 기능 프로젝트 구현

 

 

STM32와 아두이노 MCU, 여러 주변 I/O장치를 활용해서 차량용 AEB 기능을 구현하는 프로젝트를 진행했습니다. 

AEB : Anti Emergencfy Brake 쉽게 말해서 차량이 외부 물체를 센서를 통해 인지했을 때 급정거하는 시스템입니다. 

 

 

BluePill 깃헙에서 받아야함→ 오래된 버전임.

여기 안에 FreeRTOS 프로젝트가 따로있는데 얘를 참고해서 clock configuration을 똑같이 설정해주어야 합니다

-> MCU에서 clock 심장박동과 같은 역할입니다. 인간에게 심장이 일정한 박동을 유지해야 신체가 정상적으로 움직이듯, MCU도 일정한 클록 주파수를 설정해주어야만 제대로 기능이 동작합니다.

내부 타이머를 쓸건지, 외부 타이머를 쓸건지 등등…

내부 클럭을 쓸건지, 외부 클럭을 쓸건지 결정해야 한다

 

위와 같이 설정해줘야 하는데 git을 통해 받은 외부파일과 동일하게 클럭을 세팅해주었다

 

 

system core를 하드웨어 모델에 맞게 세팅해주어야 합니다 -> 개발자의 몫

Timer도 1,2,3,4 총 4개가 있는데 어떤 타이머를 쓸건지도 사용자가 정의해주어야 한다

Task를 설정해줄 수 있다. 우선 defaultTask1개를 만드는 연습을 진행하였다.

 

임베디드 시스템에서는 동적 할당을 하는 것보다는 Static을 선호하는 편입니다. 힙을 사용할 수도 있지만 일단 스택을 쓰도록 하겠습니다. 스택 사이즈를 너무 작게 하면 스택 오버플로우가 발생할 수 있습니다. 일단 128까지만 설정하고 넘어갔습니다. 

CMSIS_V1과 CMSIS_V2 두 가지 중에 선택

 

이제 FREERTOS를 통해 task 만든 것을 확인하기 위해서 미들웨어 쪽으로 가보면 FREERTOS 관련 함수들이 include된 것을 볼 수 있습니다.

 

 

 

 

 

***개인적으로 공부한 것을 메모한 것입니다. 틀린 부분이 있을 수 있습니다***