본문 바로가기

FreeRTOS3

FreeRTOS와 Semaphore, Queue를 이용한 시리얼 통신 FreeRTOS RTOS(real time Operating System)는 프로세스와 주변 자원을 공유하거나 동작 여부를 보장해주는 방법들의 집단입니다. 여기에는 thread를 기본으로 task를 구성하는 방법과, 자원을 공유하는 뮤텍스 세마포어등이 기본으로 들어갑니다. 향후에 이에 관한 세부 내용을 정리하겠습니다. 이글에서는 RTOS 중에서 마이크로프로세서에 많이 사용되는 FreeRTOS를 이용해서 Arduin 에서 시리얼 통신을 구현하는 방법을 알아보겠습니다. Arduino의 FreeRTOS Arduino에서 FreeRTOS를 이용해서 시리얼 수신하는 방법을 알아보겠습니다. 우선 다른 글에서 다루었던 Queue 생성 내용을 먼저 참조해야 합니다. 먼저 아두이노에서 라이브러리 매니저에서 FreeRTO.. 2021. 10. 24.
Arduino, FreeRTOS, semaphore, mutex 개요 RTOS 동기화 RTOS에서 태스크 동기화(task synchronization)는 한마디로 특정 자원을 여려 태스크가 공유해 사용할 때 발생하는 교착상태(deadlock)를 해소하는 방법을 의미합니다. 교착상태는 하나의 자원을 여러 태스크가 서로 사용하겠다고 또는 어떤 이유에서 인지 태스크가 반환하지 못하는 경우에 발생해서 관련된 태스크들이 동작을 멈추는 현상으로 RTOS가 가지는 문제 중 하나입니다. 예를 들어 아두이노에서 Serial.pintln()을 두 개의 태스크가 서로 사용하려 하면 둘 중에 하나의 태스크만 사용할 수 있거나, 둘 다 사용하지 못하는 경우가 발생합니다. 이와 같은 문제를 해결하는 방법이 동기화이고 FreeRTOS는 세마포어(semaphore)와 뮤텍스(mutex)를 사용합니다... 2021. 10. 23.
Arduino, FreeRTOS, LED Toggle RTOS 임베디드 장치에서 RTOS(real time Operating system)의 활용은 이미 정착된 기술입니다. ARM을 비롯해서 아두이노에서도 이를 이용하는 것이 기초처럼 되었습니다. 특히 FreeRTOS를 사용하는 경우가 많습니다. 이 글을 포함에서 몇 번에 걸쳐서 FreeRTOS의 활용방법에 대해서 알아볼 것이고, 이글에서는 가장 기초적인 내용인 LED를 운영하는 방법을 알아보겠습니다. FreeRTOS로 LED를 토글 아두이노는 LED_BUILTIN 이미 정의된 LED와 포트가 있습니다. 이를 이용해서 현재 펌웨어가 잘 진행 중인지를 표시하는 방법이 있습니다. FreeRTOS로 LED를 계속 토글(Toggle)하여 이를 표시하는 방법이 가장 많이 사용됩니다. FreeRTOS로 스레드를 하나 .. 2021. 10. 23.