RTOS란? 

내가 사용한 STM32H735IG 는 앞서 말했듯 Cortex - M7 시리즈의 싱글코어 프로세서를 사용하는데, RTOS를 테스크를 기반으로 여러 작업을 동시에 수행하는 스케줄링이 가능하게 된다. 

RTOS로 태스크를 빠르게 전환하여 다중작업이 실행되게 하는 것처럼 보이는 것이다. 여러 코어면 다중 프로세스로 가능할 수 있지만, 싱글코어에서는 이처럼 단일 프로세스에서 태스크 단위로 나눠 사용해야한다. 

 

 

 

 

 

아무튼 위와 같이 RTOS 설정에서 Task를 추가할 수 있는데, 기본 테스크 이외에 하나더 추가해보겠다. 

 

기본으로 위의 3개가 설정되어있으며, 마지막 myTask04가 내가 추가한 Task이다. 

기본적으로  Task는 위처럼 이름, 사용할 스택사이즈 크기, prioirty로 나타는데, 여기서 priority 의 설정을 통해 스케줄링에서 Task의 우선순위를 높여 줄 수 있다. 

 

우선순위가 높을수록 해당 태스크가 다른 태스크보다 더 자주 실행되거나 즉시 실행될 가능성이 높아진다. 실시간 운영체제(RTOS)에서는 우선순위가 높은 태스크가 실행 준비 상태가 되면, RTOS는 현재 실행 중인 우선순위가 낮은 태스크를 중단(suspend)하고, 우선순위가 높은 태스크를 즉시 실행한다.

 

 

 

 

 

 

Touch GFX 실습 - 3에서 했던 Touch 스크린을 통한 LED 제어에서 PWM 신호 출력만 다른 Task로 뺐다. 

 


 

그리하여 default task에서 LCD로 111 입력했을시 UART 출력 111

그리고  myTask 04에서 

PWM신호로 LED ON되는 것을 볼 수 있다. 

 

다락공방