๊ฐ์ ํ๋๋ก ์ ๋ฆฌํ๋ FreeRTOS!
๊ฐ๋
๋ถํฐ ์ค์ ๋
ธํ์ฐ๊น์ง ํ์ธํ์ธ์.
๊ฐ์ ์ฃผ์ ๐
RTOS๋?
Real-Time Operating System?
RTOS๋ ์ค์๊ฐ ์ด์์ฒด์ ์ ์ฝ์๋ก,
์ ํ๋ ์๊ฐ ๋ด์ ์ํ๋ ์์
์ ์ฒ๋ฆฌํ ์ ์๋๋ก
๋ง๋ค์ด์ง ์ด์์ฒด์ ์
๋๋ค.
RTOS๋ ์ค์๊ฐ ์์ฉ ํ๋ก๊ทธ๋จ์ ์ํด ๊ฐ๋ฐ๋ ์ด์์ฒด์ ์
๋๋ค. ๊ณ ์ฑ๋ฅ ๋ฐ ์ ๋ขฐ์ฑ์ด ํ์์ ์ธ ํ๊ฒฝ๊ณผ ์๋์ฐจ, ๊ฐ์ , ์๋ฃ, ํญ๊ณต ์ฐ์ฃผ, ๊ตญ๋ฐฉ, ์ฐ์
์ ์ด ๋ฐ ์๋ํ๋ฅผ ๋น๋กฏํ ๋ค์ํ ๋ถ์ผ์ ์๋ฒ ๋๋(Embedded) ์ ํ์ ์ฌ์ฉ๋ฉ๋๋ค.
๋์ ์์ค(Hard-Realtime)์ ์๊ตฌํ๋ ์์
์ญ์ ์ค์๊ฐ ์ด์ ์ฒด์ ๋ฅผ ํตํด ์ ํ๋ ์๊ฐ ์์ ๊ฒฐ๊ณผ๋ฅผ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
FreeRTOS๋?
์ฌ๋ฌ ๋ถ์ผ์ ์ ์ฉ๋๋ ๋งํผ RTOS๋ ๊ทธ ์ข
๋ฅ์ ๋ผ์ด์ผ์ค ํํ๊ฐ ๋ค์ํฉ๋๋ค. FreeRTOS๋ ๋ง์ดํฌ๋ก ์ปจํธ๋กค๋ฌ ๋ฐ ์ํ ๋ง์ดํฌ๋ก ํ๋ก์ธ์๋ฅผ ์ํ ์ต๊ณ ์ ์ค์๊ฐ ์ด์ ์ฒด์ (RTOS)์
๋๋ค. FreeRTOS ์์ค ์ฝ๋๋ ๋ฌด๋ฃ๋ก ๋ฐฐํฌ๋๋ฏ๋ก FreeRTOS๋ฅผ ๋ค์ด๋ก๋ํ์ฌ ๊ฐ๋ฐ์ ์์ํ ์ ์์ต๋๋ค.
FreeRTOS๋ ์ผ๋ฐ์ ์ผ๋ก ์๋ฒ ๋๋ ์ ํ๋ฆฌ์ผ์ด์
์ ํ์ํ ๋ชจ๋ ๊ตฌ์ฑ ์์์ ํจ๊ป ์ปดํ์ผ๋ ๋จ์ผ ์ด๋ฏธ์งํํ๋ก ๋ฉ๋ชจ๋ฆฌ์ ํ๋์๋์ด ์ฌ์ฉ๋ฉ๋๋ค.
์ฌ์ฉ๋ ๋ง์ดํฌ๋ก ํ๋ก์ธ์์ ๊ด๊ณ์์ด ์๋ฒ ๋๋ ์ ํ๋ฆฌ์ผ์ด์
๊ฐ๋ฐ์๋ FreeRTOS ์ปค๋ ๋ฐ ๋ชจ๋ FreeRTOS ์ํํธ์จ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํด ๋์ผํ ํ์คํ๋ ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค
FreeRTOS ์ปค๋์ ์๊ณ ๊ฐ๋จํ๋ฉฐ ์ฌ์ฉํ๊ธฐ ์ฝ๊ฒ ์ค๊ณ๋์์ต๋๋ค. ์ผ๋ฐ์ ์ธ RTOS ์ปค๋ ๋ฐ์ด๋๋ฆฌ ์ด๋ฏธ์ง ํฌ๊ธฐ๋ 4~9K๋ฐ์ดํธ์
๋๋ค.
FreeRTOS ํธํ $100 ๋ฏธ๋ง์ ๋ง์ดํฌ๋ก์ปจํธ๋กค๋ฌ ๋ณด๋๋ฅผ ์ฝ๊ฒ ๊ตฌํ ์ ์์ต๋๋ค. ์ผ๋ฐ์ ์ผ๋ก FreeRTOS ๊ธฐ๋ฐ ์ ํ๋ฆฌ์ผ์ด์
์ Linux ๊ธฐ๋ฐ ์์คํ
๋ณด๋ค ํจ์ฌ ๊ฐ๋จํ๋ค๋ ์ด์ ์ด ์์ต๋๋ค
Freeertos.org๋ ๋น ๋ฅธ ์์ ๊ฐ์ด๋(ํด๋ฆญ)๋ฅผ ํฌํจํ์ฌ FreeRTOS ์ปค๋ ์ฌ์ฉ์ ๋ํ ์ผ๋ จ์ ์์ธํ ์์ต์ ๋ฐ ๊ฐ์ด๋๋ฅผ ์ ๊ณตํฉ๋๋ค. Tickless ์ธํฐ๋ฝํธ๋ฅผ ์ง์ํจ์ผ๋ก์จ ๋ง์ดํฌ๋ก ์ปจํธ๋กค๋ฌ๋ ์ธํฐ๋ฝํธ๊ฐ ๋ฐ์ํ๊ฑฐ๋ RTOS ์ปค๋์ด ์์
์ ์ค๋น ์ํ๋ก ์ ํํ ๋๊น์ง DEEP SLEEP์ ์ ์ ์ํ๋ฅผ ์ ์งํ ์ ์์ต๋๋ค.
Amazon์ IoT ๋๋ฐ์ด์ค๊ฐ ์์ฌ์ ํด๋ผ์ฐ๋์ ์์ ํ๊ฒ ์ฐ๊ฒฐํ ์ ์๋๋ก ์ง์ํ๋ ์๋ง์ ์ํํธ์จ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ FreeRTOS ์ปค๋์ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌํํ๊ณ ์์ต๋๋ค. Amazon FreeRTOS๊ฐ ์ฌ๋ฌผ์ธํฐ๋ท ๋๋ฐ์ด์ค์ ์ ์ฉ๋๋ฉด AWS IoT Core์ ๊ฐ์ ํด๋ผ์ฐ๋ ์๋น์ค์ ์์ ํ๊ฒ ์ฐ๊ฒฐํ๊ณ OTA ์
๋ฐ์ดํธ ๊ธฐ๋ฅ์ ์ฌ์ฉํ์ฌ ์๊ฒฉ์ผ๋ก ์
๋ฐ์ดํธํ ์ ์์ต๋๋ค.
๋ค์ ๋ด์ฉ์ ํ์ตํฉ๋๋ค ๐
FreeRTOS๊ฐ ๋ฌด๋ฃ์ด๋ฉด์ ์์ค์ฝ๋ ๊ธฐ๋ฐ์ ์ปค๋์ ๊ฐ์ถ๊ณ ์๋ค๋ ์ ์ ์ฃผ์ง์ ์ฌ์ค์
๋๋ค.
๊ทธ๋ ๋ค๋ฉด ์ปค๋์ ์์ค๋ฅผ ํ์ฉํ ์ ์๋ค๋ ๊ฒ์ ์ง์ ํ ์ฅ์ ์ ๋ฌด์์ผ๊น์?
๋ด๊ฐ ์ฌ์ฉํ๋ ์ปค๋์ด ์์ค ์ฝ๋๋ฅผ ์ ๊ณตํด์ค๋ค๋ ๋ง์ ์ฌ์ฉ์๊ฐ ์ํ ๊ฒฝ์ฐ ์ธ์ ๋ ์ง ๊ทธ ๋ด์ฉ์ ๋ค์ฌ๋ค๋ณผ ์ ์๋ค๋ ๊ฒ์ ๋งํ์ฃ . ํ์ง๋ง, ์ฐ๋ฆฌ์ ๊ถ๊ทน์ ์ธ ๋ชฉ์ ์ด RTOS๋ผ๋ ์๋์ฐจ๋ฅผ ์ ์ดํํ๋ ๊ฒ์ ์๋ค๋ฉด ๋ด์ฐ๊ธฐ๊ด ์ฐจ๋์ ๊ตฌ์กฐ๋ ์๋ฆฌ์ ํ์ต์ ๊ทธ ์์๋ฅผ ๋ ๊ฒ์ด ์๋๋ผ ๋ฐฉํฅ ์ง์๋ฑ ์ค์, ํก๋จ๋ณด๋ ์์ ์๋ฌด ์ค์, ๋ฐฑ๋ฏธ๋ฌ ์ ๊ด์ฐฐํ๊ธฐ, ๊ธ๊ฐ์ํ์ง ์๊ธฐ ๋ฑ์ ๋ ๋ง์ ์๊ฐ๊ณผ ๋
ธ๋ ฅ์ ๋ค์ด๋ ๊ฒ์ด ๋์๊ฒ ๋ ํฐ ๋์์ด ๋์ง ์์๊น์?
๋ ์ปค๋ ์์ค๋ฅผ ๋ถ์ํ์ฌ ์ปค๋์ ๋์ฑ ์ข๊ฒ ์ฑ๋ฅ์ ๊ฐ๋ํ ์๋ ์๊ฒ ์ง๋ง, ๋ชจ๋ ์ฝ๋ ์์ ์๋ ์ฑ
์์ด ๋๋ฐ๋๋ ํฐ๋ผ ๊ฐํ ์ถ์ฒ๋๋ฆด ์๋ ์์ต๋๋ค. ๊ทธ๋ณด๋ค๋ ๋ด๊ฐ ์์ฑํ ์ ํ๋ฆฌ์ผ์ด์
์ด ๊ฐ์ง ๋ฌธ์ ๋ฅผ ์ฐพ์๋ด๊ณ ์์ ํจ์ ์์ด ์ปค๋ ์์ค์ ๋์์ ๋ฐ๊ฑฐ๋ ์ปค๋์ ๋์์ ๋ํ ์ดํด๋ฅผ ๋์ด๋ ์ฉ๋๋ก์ ๊ฐ์น๊ฐ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ง๊ธ๋ถํฐ FreeRTOS๋ผ๋ ์๋์ฐจ๋ฅผ ์ ์ดํํ๊ธฐ ์ํด ์ฐ๋ฆฌ๊ฐ ํ์์ ์ผ๋ก ์์์ผ ํ ๋ด์ฉ์ ์ ๋ฆฌํด๋ณด๊ฒ ์ต๋๋ค.
RTOS์ 6๊ฐ์ง ํซ ํ ํฝ โ
- ํ๋ ๋ฆฌ์ผํ์์ ๊ตฌํํ๋ ๋ฒ
- ์ธํฐ๋ฝํธ๋ฅผ ์์ ์ , ํจ์จ์ ์ผ๋ก ์ด์ํ๋ ๋ฒ
- ์ฆ์ ์ํธ๋ฐฐ์ ๋ก ์ธํ ์์คํ
์ฑ๋ฅ ์ ํ๋ฅผ ๊ทน๋ณตํ๋ ๋ฒ
- ํ์คํฌ ์ฐ์ ์์ ๊ฒฐ์ ์ ํ์คํ ํ๋ ๋ฒ
- ๋ด๊ฐ ๋ง๋ ํ์คํฌ๊ฐ ์ค์๊ฐ์ผ๋ก ๋์ํ๋์ง ํ
์คํธํ๊ธฐ
- ํฌํ
๋
ธํ์ฐ
์์ ๋ด์ฉ์ ๋ชจ๋ ์ด๋ฒ ๊ฐ์์ ํต์ฌ ์ฃผ์ ์
๋๋ค. ์, ์ธ๋ถ ๋ด์ฉ์ ์์๋ณผ๊น์.
์ฒซ์งธ, RTOS๋ฅผ ์ฌ์ฉํ๊ธฐ๋ง ํ๋ฉด ์๋์ผ๋ก ์ค์๊ฐ ์ฒ๋ฆฌ๊ฐ ๋๋ค๊ณ ์คํดํ๊ณ ์์ง ์๋์?
๋๊ฐ์ ์ฌ๋ฃ๋ฅผ ๊ฐ์ง๊ณ ์ง์ ์ง๋๋ผ๋ ์ด๋ค ๋ชฉ์๊ฐ ์ง์ ์ง์ ๊ฐํ์ด๋ ๋์์๋ ํ๋ค๋ฆผ ์์ด ์์ ํ ๋ฐ๋ฉด, ๋ ๋ค๋ฅธ ๋ชฉ์๊ฐ ์ง์ ์ง์ ๋น๊ฐ ์กฐ๊ธ๋ง ์ค๋๋ผ๋ ์ฒ์ฅ์์ ๋ฌผ์ด ๋จ์ด์ง๊ณ , ๊ฒจ์ธ์๋ ๋จ์ด๋ ์ ์ ๋ผ ๋๋ฐฉ๋น๊ฐ ๋ง์ด ๋์ฌ ์ ์์ฃ . ๋ฌด์จ ์ฐจ์ด์ผ๊น์? RTOS๋ฅผ ์ฌ์ฉํ๋ค๊ณ ํด์ ์๋์ ์ผ๋ก ๋ด๊ฐ ๋ง๋ ํ๋ก๊ทธ๋จ์ด๋ ์ ํ์ ์ค์๊ฐ์ฑ์ด ๋ณด์ฅ๋๋ ๊ฒ์ด ์๋๋๋ค. ๋น๋จ FreeRTOS ๋ฟ๋ง์ด ์๋๋ผ RTOS ๋ชจ๋์ ํด๋น๋๋ ๋ง์
๋๋ค. ํ๋ ๋ฆฌ์ผํ์์ ๋ณด์ฅํ๊ธฐ ์ํด, ํน์ ๋๋ฌํ๊ธฐ ์ํด์ ์ด๋ค ๋
ธ๋ ฅ์ด ํ์ํ์ง๋ฅผ ์ด ๊ฐ์๋ฅผ ํตํด ์๋ ค๋๋ฆฝ๋๋ค.
๋์งธ, ์ธํฐ๋ฝํธ(Interrupt)๋ฅผ ๋น ๋ฅด๊ฒ ์ฒ๋ฆฌํด์ผ๋ง ํ๋ ์์
์ผ๋ก ๋จ์ ์ง๊ณ ์์ง๋ ์์๋์?
์ฐ๋ฆฌ์ ๊ทธ๋ฐ ๊ณ ์ ๊ด๋
์ด ๋ด๊ฐ ๋ง๋๋ ์ ํ์ด๋ ํ๋ก๊ทธ๋จ์ ์ผ๋ง๋ ์
์ํฅ์ ๋ฏธ์น๋์ง์ ๋ํด ์ฌ๋ก๋ฅผ ํตํด ์์๋ณด๊ณ , ๊ทธ ํด๊ฒฐ ๋ฐฉ์๊น์ง ์ดํด๋ด
๋๋ค.
์
์งธ, ์์ฑํ๊ณ ์๋ ์์ค์ฝ๋ ํจ์ ๋ด์ ์๊ณ ๊ตฌ์ญ์ด ๋ณด์ด๋ฉด ๋ฐ๋ก ๋ฎคํ
์ค๋ฅผ ์ฌ์ฉํ๋ ค ํ์์ง๋ ์๋์?
์ ๊น๋ง์. ๋ฎคํ
์ค(Mutex)๊ฐ ์์คํ
์ฑ๋ฅ ์ ํ๋ฅผ ์ ๋ฐํ๋ค๋ ์ ์ ์๊ณ ๊ณ์๊ฒ ์ฃ ? ์ด๋ฅผ ๋ณด์ํ ์ ์๋ ๋ฐฉ๋ฒ ํน์ ๊ทธ ๋์์ ์์๋ด
๋๋ค.
๋ท์งธ, ์ค์ํ ํ์คํฌ(์์
)์ ๋์ ์ฐ์ ์์๋ฅผ ํ ๋นํ๊ณ ๊ณ์์ง ์๋์?
ํ์คํฌ๋ค์ ์ฐ์ ์์๋ฅผ ํ ๋นํด ๋ณด์ ๋ถ๋ค์ ์ ์์ค ๊ฒ๋๋ค. ์ฐธ ์ด๋ ต์ฃ . ์ค์ํ ์์
์ ๋์ ์ฐ์ ์์๋ฅผ ๋ฐฐ์ ํ๋ ๊ฒ์ ํจ์ ์ ๋ํด ๋ง์๋๋ฆฌ๊ณ , ๊ทธ ๋์์ ์ ์ํฉ๋๋ค.
๋ค์ฏ์งธ, ํ๋ก๊ทธ๋จ์ ๊ตฌํ๋งํผ์ด๋ ์ค์ํ ๊ฒ์ด ๋ด๊ฐ ์๋ํ ๋๋ก ํ์คํฌ๊ฐ ์ค์๊ฐ์ผ๋ก ๋์ํ๋์ง๋ฅผ ๊ฒ์ฆํ๋ ์ผ์
๋๋ค.
ํ์ํ๋ค๋ฉด ๋๋ฒ๊ฑฐ ์ธ์๋ ๊ณ์ธก๊ธฐ๋ ์ด์ ์์ํ๋ ์ฅ๋น๊ฐ ํ์ํ ์๋ ์์ต๋๋ค. ๋ฌผ๋ก ์ด๋ฌํ ์ฅ๋น๊ฐ ์์ด๋ ๊ฐ๋ฐํ๊ณ ํ
์คํธํ ์๋ ์์ง๋ง, ๋ ์์ฝ๊ฒ ๋ฌธ์ ๋ฅผ ํ์ธํ๊ณ ๋์ฑ
์ ๋ง๋ จํ ์ ์์ต๋๋ค. ๋ด๊ฐ ๋ง๋ ํ์คํฌ๊ฐ ํ๋ ๋ฆฌ์ผํ์์ผ๋ก ๋์ํ๋์ง ์ฌ๋ถ๋ฅผ ํ์ธํ๋ ๋ฐฉ๋ฒ์ ์๋ ค๋๋ฆฝ๋๋ค.
์ฌ์ฏ์งธ, ๋ด๊ฐ ๋ง๋ ํ๋ก๊ทธ๋จ์ด ํญ์ ๋์ผํ ํ๋์จ์ด์์ ๋์ํ๋ฆฌ๋ผ๊ณ ๊ธฐ๋ํ ์ ์์ต๋๋ค.
๋ด๊ฐ ๋ง๋ ์ ํ ํ๋์จ์ด ์ฑ๋ฅ์ด ์
๊ทธ๋ ์ด๋๊ฐ ๋๋ฉด ๋น์ฐํ ํฌํ
(Porting) ์์
์ ์๊ตฌํ๊ฒ ๋ฉ๋๋ค. ๋ค๋ฅธ ์ฌ๋์ ๋์ ์์ด ๋ด๊ฐ ์ง์ ์ปค๋ ํฌํ
์ ํ ์ ์๋๋ก ์ค๋ซ๋์ ์๋ จ๋ ๊ฒฝํ๊ณผ ๋
ธํ์ฐ๋ฅผ ์๋ ค๋๋ฆฝ๋๋ค.
13๋
์ด์ ์๋ จ๋ RTOS ๊ฐ์ ๋
ธํ์ฐ ๐ก
์ฌ๋ฌ๋ถ์ ์๊ฐ์ ๋ด ์๊ฐ์ฒ๋ผ ์์คํ ์๊ฐํ๋ฉฐ ๊ฐ์๋ฅผ ๋ง๋ค์์ต๋๋ค.
13๋
๊ฐ RTOS ํ์ฅ ๊ฐ์๋ฅผ ํด์ค๋ฉด์ ๋ ๋ง์ ํ์ต์๋ค๊ณผ ๋ง๋จ์ ๊ฐ๊ธฐ ์ํด์ ์ด๋ ๊ฒ ์จ๋ผ์ธ์์๋ ๊ฐ์๋ฅผ ๋ง๋ค๊ฒ ๋์์ต๋๋ค. ํ์ฅ ๊ฐ์ ์์
์ผ์ ๊ธฐ์ค 4์ผ ๋ถ๋์ ๋ด์ฉ์ 8์๊ฐ ๋ด๋ก ์ต์ ํํ ์จ๋ผ์ธ ๊ฐ์๋ก ์ฌ๋ฌ๋ถ์ ์ฐพ์๊ฐ๋๋ค.
์ด๋ฐ ๋ถ๋ค๊ป ์ถ์ฒํฉ๋๋ค! ๐
RTOS๋ฅผ ์ฒ์
๋ฐฐ์ฐ๋ ์
๋ฌธ์
FreeRTOS ๊ธฐ๋ฐ ์ ํ์
์ต์ ํ๋ฅผ ๊ณ ๋ฏผํ๋ ๋ถ
๊ฒฝ๋ํ OS๋ฅผ ์ ํ์
์ ์ฉํ๊ณ ์ ํ๋ ๋ถ
IoT(์ฌ๋ฌผ์ธํฐ๋ท)
๊ฐ๋ฐ์
์ด์ธ์, ์ด๋ฐ ๋ถ๋ค๋ ๋ฐฐ์ฐ๋ฉด ์ข์ต๋๋ค!
๐ ์ ํ์ ํ๋ ๋ฆฌ์ผ ํ์๊ณผ ์์ ์ฑ, ๋ ๋ง๋ฆฌ ํ ๋ผ๋ฅผ ๋ค ์ก๊ณ ์ถ์ผ์ ๋ถ
๐ ๋ฆฌ๋
์ค ์ด์์ฒด์ ์ ๋น๊ต, ๊ฒํ ๋ฅผ ์ํ์๋ ๋ถ
๐ ์ด์์ฒด์ ์ ๋ํ ์ดํด๋ฅผ ๋์ด๊ณ ์ ํ๋ ๋ถ
๐ ์คํ๋ผ์ธ ์์
์ ์ฐธ์ฌํ ์๊ฐ์ ์ธ ์ฌ์ ๊ฐ ์์ผ์ ๋ถ
์ ์ ์ง์์ ํ์ธํด์ฃผ์ธ์!
- ํ์ต์ ์ํ ์ ์ ์ง์์ผ๋ก C์ธ์ด๋ฅผ ์๊ณ ์์ด์ผ ํฉ๋๋ค.
์ด ๊ฐ์๋ง์ ํน๋ณํ ์ โจ
- ํน์ง 1. ์์์ 180๊ฐ ์์ฑํฐ๋ก ์ชผ๊ฐ, ๋์ค์ ์ฐพ์๋ณด๊ธฐ์๋ ๋์์ด ๋๊ฒ๋ ๊ตฌ์ฑํ์ต๋๋ค.
- ํน์ง 2. 2D ์ ๋๋ฉ์ด์
์ ์ ๊ทน ํ์ฉํด ์ดํด์ ๋์์ด ๋๋๋ก ๋ง๋ค์์ต๋๋ค.
- ํน์ง 3. ๋ชจ๋ ์ค์ต ์์ ๋ TO-DO์ ํจ๊ปํฉ๋๋ค. ์๊ฐ์์ด ์ง์ ์ค์ต์ ์ฐธ์ฌํ๋ ๊ฐ์๊ฐ ๋ ์ ์๋๋ก ํ์ต๋๋ค.
- ํน์ง 4. ๋ถํ์ํ ๋ด์ฉ์ ๊ณผ๊ฐํ ๋ฒ๋ฆฌ๊ณ , ๋์ฑ ํต์ฌ์ ์ง์คํ ์ ์๋๋ก ๋์ต๋๋ค.
- ํน์ง 5. ๊ฐ๋ฐ์ ๋งค๋ด์ผ์ ๋ณด์ง ์๊ณ ๋ ์์๋ง์ผ๋ก ํ์ตํ ์ ์๋๋ก ์ต๋ํ ์ ๊ฒฝ์ผ์ต๋๋ค.
์ฌ์ฉ ํด์ ํ์ธํ์ธ์ ๐งฐ
- ์ปดํ์ผ๋ฌ: STM32CubeIDE
- ์ค์ต ๋ณด๋: STmicro ์ฌ ๊ณต์๋ณด๋(๋ดํด๋ ์ค, ๋์ค์ปค๋ฒ๋ฆฌ)
-
- ์ค์ต ์์ ๋ฐ ๊ต์ฌํ์ผ: freeRTOS_tutorials.zip ( ํ์ผ์ ์น์
0. FreeRTOS ์์์ ์์ต๋๋ค )
- ๊ฐ์์์ ์ฌ์ฉํ ๋ณด๋๋ Nucleo-64 F103RB ์
๋๋ค. ํ์ง๋ง ์ค์ต ์์ ๋ ๋ค์๊ณผ ๊ฐ์ ๋ณด๋๋ ์ง์ํฉ๋๋ค. DISCO_F429I, DISCO_F469I, NUCLEO_F401RE, NUCLEO_F767ZI, NUCLEO_L010RB ( ์ด ํ์ผ๋ค์ ๋ง์ง๋ง ์น์
์ ๋ณด์๋ฉด ์์ต๋๋ค )
- ์ฌ๋ฌ๋ถ์ด ์ํ์๋ STM32 ๋ณด๋๊ฐ ์ ์ด๊ฑฐ๋ ๋ชฉ๋ก์ ์๋ค๋ฉด '(๋ถ๋ก)๋ด๊ฐ ๊ฐ์ง ๋ดํด๋ ์ค ๋ณด๋๋ก ๊ฐ์ ๋ฐ๋ผ๊ฐ๊ธฐ' ์์์ ์์ฒญํ์ ํ ์ค์ต์์ ํ์ผ(freeRTOS_tutorials) ์์ค๋ฅผ ์ง์ ์ฌ๋ฌ๋ถ์ด ์ํ์๋ ๋ณด๋์ฉ์ผ๋ก ์์ ํ์๊ณ ๋ณธ ๊ฐ์๋ฅผ ์ด์ฉํ์๊ฑฐ๋, ์์ค ์ฝ๋๋ฅผ ์ฌ๋ฌ๋ถ์ด ์ํ์๋ ๋ณด๋์ฉ์ผ๋ก ๊ฐ์ฌ์๊ฒ ์์ ์์ฒญํ์๋ฉด ๋ฉ๋๋ค(๋ฌด๋ฃ. ํต์ ์์
1~2์ผ ์์. ์ง๋ฌธํ๊ธฐ์ฝ๋์์ ์ ์ฒญ)
๊ฐ์๋ฅผ ๋ง๋
์ง์๊ณต์ ์๋ฅผ ์๊ฐํฉ๋๋ค โ๏ธ
ํ์๊ธฐ(๊ฐ์ผ์ค์ฟจ)
์ฃผ์ ์ด๋ ฅ
- 1995: VRTXsa RTOS(68K MCU๊ธฐ๋ฐ ์
ํฑ๋ฐ์ค)
- 1999: VXWorks RTOS(MPC860 MCU ๊ธฐ๋ฐ VoIP)
- 2003: NucleusPlus RTOS(ARM MP3)
- 2004: uC/OS-II RTOS(ARM MP3)
- 2008~: RTOS ์ปค๋ ๋ถ์ ๋ฐ ํ์ฉ ์ค๋ฌด ํ์
๊ฐ์
- 2019~: FreeRTOS ํ๋ก๊ทธ๋๋ฐ ์ค๋ฌด ํ์
๊ฐ์
๊ธฐํ
- uC/OS-II ๊ธฐ๋ฐ malloc/free ํธํ ๋์ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ์ ๊ฐ๋ฐ
- uC/OS-II ๊ธฐ๋ฐ miniGUI ํฌํ
- uC/OS-II ๊ธฐ๋ฐ ethernet(DM9000A) TCP/IP ํฌํ
- uC/OS-II ๊ธฐ๋ฐ FatFs + SD card ํฌํ
- uC/OS-II ๊ธฐ๋ฐ YAFFS + NANDFLASH ํฌํ
- RTOS ์ปค๋ ํฌํ
๋ค์
- ์ ํ๋ธ ์ฑ๋, ๊นํ๋ธ
์์ ์ง๋ฌธ Q&A ๐ฌ
Q. C์ธ์ด๋ฅผ ๋ชจ๋ฅด๋ ์ฌ๋์ด ์๊ฐํด๋ ์ข์๊น์?
์ด ๊ฐ์๋ ์์ง๋์ด๋ถ๋ค ์ธ์๋ ๋น์ ๊ณต์๋ RTOS ๋ด์ฅ ์ ํ์ ๊ด์ฌ์ ๊ฐ๊ณ ๊ณ์ ๋ถ๋ค ๋ชจ๋ ์๊ฐํ์๋ฉด ์ข์ต๋๋ค. ๋ค๋ง C์ธ์ด๋ฅผ ๋ชจ๋ฅด์๋ฉด ์์
์ค ์ค์ต๊ณผ ๊ด๊ณ๋ ๋ถ๋ถ์ ๋ํด์๋ ์ดํดํ๊ธฐ ์ด๋ ค์ฐ์ค ์๋ ์์ต๋๋ค.
Q. ์ค๊ธ์๋ ์ด ๊ฐ์๋ฅผ ์๊ฐํด๋ ์ข์๊น์?
RTOS์ ์
๋ฌธํ์๋ ค๋ ๋ถ๋ค์ ๋ฌผ๋ก , ์ด๋ฏธ RTOS๋ฅผ ์ฌ์ฉํ๊ณ ๊ณ์๋ ์ค๊ธ์ ๋ถ๋ค๊น์ง๋ ์ปค๋ฒํ ์ ์๋๋ก ๊ฐ์๋ฅผ ๊ธฐํํ์ต๋๋ค. 15๋
๊ฐ ์์ธ๋ํ๊ต, ์ผ์ฑ์ ์, LG์ ์, ํ๋๋ชจ๋น์ค, LS์ฐ์ , ๊ตญ๋ฐฉ๊ณผํ์ฐ๊ตฌ์ ๋ฑ์์ RTOS ํ๋ก๊ทธ๋๋ฐ ๊ฐ์๋ฅผ ํ ๊ฒฝํ์ผ๋ก ๋๋ฆ๋๋ก RTOS ํ๋ก๊ทธ๋๋ฐ์์ ๊น๋ค๋ก์ด ๋ถ๋ถ, ์ค์ํ ์ฃผ์ ๋ค์ ์ฌ๋์๊ฒ ๋ค๋ฃจ๊ณ ์์ต๋๋ค.
Q. ์ฌ๋ฌผ์ธํฐ๋ท(IoT)์ ๋ํด์๋ ์์
์ ์ฃผ์ ๋ก ๋ค๋ฃจ๋์?
FreeRTOS๊ฐ ๋ค์ํ IoT ๊ธฐ๊ธฐ์์ ์ฌ์ฉ๋ฉ๋๋ค. ํ์ง๋ง ๋ณธ ์์
์ RTOS ์ปค๋์ด๋ผ๋ ํ๋์ ์ฃผ์ ์ ์ง์คํ๊ณ ์์ต๋๋ค.
Q. ์ค์ต์ ์ํ STM32 ๋ณด๋ ์ข
๋ฅ๊ฐ ๋ค์ํ๋ฐ, ์๋ฌด ๊ฑฐ๋ ์๊ด์๋์?
์์์์ ํ์ฌ STM32 Nucleo64 f103rb ๋ณด๋ ๊ธฐ์ค์ผ๋ก ์์
์ ์งํํฉ๋๋ค.
๋ง์ฝ ๋ค๋ฅธ STM32 ๋ณด๋์์ ์ค์ต์ ํ๊ณ ์ถ๋ค๋ฉด '(๋ถ๋ก)๋ด๊ฐ ๊ฐ์ง ๋ดํด๋ ์ค ๋ณด๋๋ก ๊ฐ์ ๋ฐ๋ผ๊ฐ๊ธฐ' ์์์ ์์ฒญํ์ ํ ์ค์ต์์ ํ์ผ(freeRTOS_tutorials) ์์ค๋ฅผ ์ง์ ์ฌ๋ฌ๋ถ์ด ์ํ์๋ ๋ณด๋์ฉ์ผ๋ก ์์ ํ์๊ณ ๋ณธ ๊ฐ์๋ฅผ ์ด์ฉํ์๊ฑฐ๋ ์์ค ์ฝ๋๋ฅผ ์ฌ๋ฌ๋ถ์ด ์ํ์๋ ๋ณด๋์ฉ์ผ๋ก ๊ฐ์ฌ์๊ฒ ์์ ์์ฒญํ์๋ฉด ๋ฉ๋๋ค(๋ฌด๋ฃ. ํต์ ์์
1~2์ผ ์์. ์ง๋ฌธํ๊ธฐ์ฝ๋์์ ์ ์ฒญ)
Q. FreeRTOS๊ฐ ์ข์๊ฐ์?
์์ฃผ ์ข์ ์ง๋ฌธ์
๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ ค์ด ์ง๋ฌธ์ด๊ธฐ๋ ํ๋ค์. ์ ๋ 12๋
๊ฐ ์๋ฒ ๋๋ ์์คํ
์ ๊ฐ๋ฐํ ๊ฒฝ๋ ฅ์ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ ๊ฒฝํ์ ํ์จ์ด, RTOS, ์๋ฒ ๋๋ ๋ฆฌ๋
์ค๋ฅผ ๋ง๋ผํ๊ณ ์์ต๋๋ค.
์ด๋ค OS๊ฐ ์ข์ผ๋๋ผ๋ ์ง๋ฌธ์ ๋ํด ์ ๋ ๋ค์์ฒ๋ผ ๊ณต์์ ์ธ ๋ต๋ณ์ ์ค๋นํ๊ณ ์์ต๋๋ค.
(1)๋ฌด๋ฃ/์ ๋ฃ (2)์์ค์ฝ๋/๋ฐ์ด๋๋ฆฌ (3)๋ง์ ์ฌ์ฉ์๋ฅผ ๊ฐ์ง๊ณ ์๋๊ฐ (4)๊ฐ๋ฐํ๊ฒฝ ์ง์
์ด์์ RTOS์ ๊ณ ๋ฅผ ๋ ๋ฐ์ ธ ๋ณผ ์ค์ํ ํญ๋ชฉ๋ค์
๋๋ค.
FreeRTOS ๋ ์์ 1,2,3 ํญ๋ชฉ์ ๋ํด ๊ฑฐ์ ๋ง์ ์ ์ค ์ ์์ต๋๋ค. FreeRTOS ๊ฐ ์ต๊ณ ์ OS๋ค๋ผ๊ณ ๋งํ ์๋ ์๋๋ผ๋, ์ ์ด๋ ์ถ์ฒํ ๋งํ๋ค๊ณ ๋ ์๊ฐํฉ๋๋ค.
Q. ์ ๋ VxWorks ์ ์ฌ์ฉํ๊ณ ์๋๋ฐ, ์ด ๊ฐ์๊ฐ ์ ์๊ฒ ๋์์ด ๋ ๊น์?
๋น๋ก ๊ฐ์ ํ์ดํ์ FreeRTOS ํ๋ก๊ทธ๋๋ฐ์ด์ง๋ง, ์ด ๊ฐ์๋ RTOS์ ์ ์(ํต์ฌ)์ ์ง์คํ๋ ๊ต์ก์ผ๋ก ์ค๊ณ๋์์ต๋๋ค. ๋ ์ ์ด๋ ฅ์ ๋ณด์๋ฉด ์์ค ํ
์ง๋ง, ์ด๋ฏธ ๋ค์ํ RTOS๋ฅผ ์ฌ์ฉํด ๋ณด์์ต๋๋ค.
์ด๋ค RTOS๋ฅผ ์ฌ์ฉํ๋ ๊ณตํต์ ์ผ๋ก ๊ผญ ์๊ณ ๊ฐ์ผ ํ ์ง์, ์์ฃผ ์ฌ์ฉํ๋ ์คํฌ, ์ฌ์ฉ์๋ค์ด ํ๊ธฐ ์ฌ์ด ์คํด๋ ํธ๊ฒฌ์ ๋ชจ์์ ์ด ๊ฐ์์์ ๋ค๋ฃจ๊ณ ์์ต๋๋ค. ๋์์ด ๋์ค ๊ฒ์ผ๋ก ๋ฏฟ์ต๋๋ค.
์๊ฐ ์ ํ์ธํด์ฃผ์ธ์! (๋ผ์ด์ผ์ค)
- ๊ฐ์์์ ์ฌ์ฉ๋ ํ๋ฆฌ์ ํ
์ด์
์๋ฃ๋ PDF ๋ฌธ์ ํํ๋ก ์๊ฐ์์๊ฒ ๋ฌด์ ์ ๊ณต๋ฉ๋๋ค.
- ํจ๊ป ์ ๊ณต๋๋ ๋ฌธ์๋ ์ธํ๋ฐ ๋ด์์ ๊ฐ์ ์์์ ๋ณด์กฐ ์๋ฃ๋ก์จ ๊ฐ์ธ์ ์ธ ์ฌ์ฉ ๋ชฉ์ ์ผ๋ก๋ง ์ด์ฉ๋์ด์ผ ํฉ๋๋ค. ์ฑ
๋ด์ฉ์ ์ผ๋ถ ๋๋ ์ ๋ถ๋ฅผ ๋ณต์ (ํํ์ด์ง๋ ์ธ์ ๋งค์ฒด์ ์ ์ฌํ๋ ๊ฒ, ์ ์ ํ์ผ๋ก ๋ณต์ฌํ๋ ๊ฒ๋ ํฌํจํจ)ํ ๋๋ ํ๊ตญ ์ ์๊ถ๋ฒ ์ 27์กฐ์ ๊ท์ ํ ์ฌ์ ์ฌ์ฉ์ ์ ์ธํ๊ณ , ์๋ฆฌ๋ชฉ์ ์ฌ๋ถ์ ์๊ด์์ด ํ๊ตญ ์ ์๊ถ๋ฒ ์ 42์กฐ์ ๋ฐ๋ผ ์ ์๊ถ์์ธ ์ง์๊ณต์ ์ ํ์๊ธฐ์ ํ๋ฝ์ ์๊ตฌํฉ๋๋ค.
๋ค๋ฅธ ๊ฐ์ ํจ๊ป ๋ณด๊ธฐ ๐