상세 컨텐츠

본문 제목

RTOS 맛보기 (1) - 인터럽트로 시작하기

펌웨어 설계

by Zin9 2023. 1. 26. 20:09

본문

728x90

 

우리는 드라이버를 사용할 때 MCU를 사용한다.

MCU를 사용하면서 일반적인 인터럽트나 타이머 등을 사용한다.

그런데 2개 이상의 함수를 실시간으로 동작하고싶을 때 RTOS(Real Time Operation System)을 사용한다.

MCU 자체에도 OS가 있는 경우가 있지만, STM32 보드와 같이 freeRTOS를 지원한다.

RTOS는 실시간성을 보장하고, 여러 함수가 동작하는 동안 비정상적인 응답이 나오지 않는 처리를 해주는 여러 기능이 있다.

이 기능들은 맛보기가 지나면 개념과 용어를 설명하도록 한다.

 

맛보기 순서는 다음과 같다.

 

1, LED와 UART를 인터럽트를 사용하여 제어한다. - (1)~(4)
2. RTOS를 사용하여 LED와 UART를 제어한다. - (5)~

 

RTOS만 보고 싶다면 (2)장까지만 보고 바로 (5)장으로 바로 넘어가는 것을 추천한다.

 

 

이제 개발 환경을 소개한다.

 

1. STM32F429I-DISC1 보드 - 링크
2. IAR - 링크
3. STM32CubeMX - 링크
4. UART 케이블 - 링크
5. UART 케이블 드라이버 - 링크
6. Teraterm - 링크

 

IAR은, KickStart 버전을 사용하면 된다. 코드 사이즈가 32K가 넘지 않는다면 무료이다.

내가 다니던 회사에서도 무료버전으로 개발품을 만들기도 했으니 충분한 사이즈이다.

 

STM32CubeMX는 STM사의 MCU를 사용하는 경우 자동으로 코드를 생성해주는 프로그램이다.

UI 설정만으로 HAL(Hardware Atraction Layer) 라이브러리를 생성해주는 고마운 프로그램이다.

 

STM32F429I-DISC1 보드를 사용할 땐, STM32CubeMX가 있어야 좋다.

없다면, 일일이 데이터시트보면서 시간과 싸워야 하니깐.

 

UART케이블은 시중에서 아무거나 사면 된다.

링크에 있는 케이블을 사용하고 있는데 너무 저렴해서 금방 망가질지도 모른다.

전자제품은 약간의 운이 필요하다.

 

마지막으로 UART로 전송된 데이터를 볼 수 있는 Teraterm이다.

이 프로그램은 시리얼 통신을 모니터링용도로 사용할 것이다.

 

 

이제 위의 재료들로 셋팅한 환경을 살펴보자.

그림 1에 UART 케이블과 보드를 연결한 것을 볼 수 있다.

 

<그림 1. LED 및 UART 제어를 위한 하드웨어 세팅>

 

나는 이 개발 보드의 초기 설정을 STM32CubeMX(이하 CubeMX라 부름)의 기본 설정으로 했기 때문에,

UART5를 사용했다.

(소프트웨어 설정은 다음 글에서 소개한다.)

 

UART 케이블의 핀을 보자.

아래와 같이 케이블을 접속해주면 된다.

그림 1에 5V 연장선의 백색 케이블은 UART 케이블의 적색 케이블과 연결되있음을 잊지 말자!

 

UART 케이블          |   STM보드

Red Wire(VCC)      => 5V
Black Wire(GND)   => GND
Green Wire(TXD)   => PD2(RxD)
White Wire(RXD)   => PC12(TxD)

 

이로써 하드웨어 설정이 끝났다.

소프트웨어 설정은 다들 잘 하실거라 믿고 바로 CubeMX 설정으로 넘어간다.

 

 

 

 

 

 

728x90

관련글 더보기