å·ã®ã²ãšã€ã«ãŸãšããFreeRTOSïŒ
ã³ã³ã»ããããæ¬ç©ã®ããŠããŠãŸã§ã確èªãã ããã
è¬çŸ©ã®ããŒã ð
RTOSãšã¯ïŒ
Real-Time Operating System?
RTOSã¯ãªã¢ã«ã¿ã€ã ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®ç¥ã§ã
éãããæéå
ã«ç®çã®ã¿ã¹ã¯ãåŠçã§ããããã«
äœæããããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã§ãã
RTOSã¯ããªã¢ã«ã¿ã€ã ã¢ããªã±ãŒã·ã§ã³åãã«éçºããããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã§ãã髿§èœãšä¿¡é Œæ§ãäžå¯æ¬ ãªç°å¢ããèªåè»ãå®¶é»ãå»çãèªç©ºå®å®ãé²è¡ãç£æ¥å¶åŸ¡ãèªååãªã©ãããŸããŸãªåéã®çµã¿èŸŒã¿è£œåã«äœ¿çšãããŠããŸãã
é«ã¬ãã«ïŒHard-RealtimeïŒãå¿
èŠãšããã¿ã¹ã¯ãããªã¢ã«ã¿ã€ã ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã䜿çšããŠãéãããæéå
ã«çµæãåŠçã§ããŸãã
FreeRTOSãšã¯ïŒ
å€ãã®åéã«é©çšãããã»ã©ãRTOSããã®çš®é¡ãšã©ã€ã»ã³ã¹åœ¢æ
ã倿§ã§ãã
FreeRTOSã¯éåžžãçµã¿èŸŒã¿ã¢ããªã±ãŒã·ã§ã³ã«å¿
èŠãªãã¹ãŠã®ã³ã³ããŒãã³ãã§ã³ã³ãã€ã«ãããåäžã®ç»å圢åŒã§ã¡ã¢ãªã«ãã©ãã·ã¥ãããŠäœ¿çšãããŸãã
䜿çšãããŠãããã€ã¯ãããã»ããµã«é¢ä¿ãªããçµã¿èŸŒã¿ã¢ããªã±ãŒã·ã§ã³éçºè
ã¯FreeRTOSã«ãŒãã«ãšãã¹ãŠã®FreeRTOSãœãããŠã§ã¢ã©ã€ãã©ãªã«å¯ŸããŠåãæšæºåãããã€ã³ã¿ãã§ãŒã¹ã䜿çšã§ããŸãã
FreeRTOSã«ãŒãã«ã¯ã³ã³ãã¯ãã§ã·ã³ãã«ã§äœ¿ããããããã«èšèšãããŠããŸãã
FreeRTOSæºæ ã®100ãã«æªæºã®ãã€ã¯ãã³ã³ãããŒã©ããŒããç°¡åã«å
¥æã§ããŸãã äžè¬ã«ãFreeRTOSããŒã¹ã®ã¢ããªã±ãŒã·ã§ã³ã¯LinuxããŒã¹ã®ã·ã¹ãã ããã¯ããã«ç°¡åã§ãããšããå©ç¹ããããŸãã
Freeertos.orgã¯ãã¯ã€ãã¯ã¹ã¿ãŒãã¬ã€ãïŒã¯ãªãã¯ïŒãå«ããFreeRTOSã«ãŒãã«ã®äœ¿çšã«é¢ããäžé£ã®è©³çްãªãã¥ãŒããªã¢ã«ãšã¬ã€ããæäŸããŠããŸãã
Amazonã¯ã IoTããã€ã¹ãèªç€Ÿã®ã¯ã©ãŠãã«å®å
šã«æ¥ç¶ã§ããããã«ãã倿°ã®ãœãããŠã§ã¢ã©ã€ãã©ãªãFreeRTOSã«ãŒãã«ã«åºã¥ããŠå®è£
ããŠããŸãã
次ã®å
容ãåŠã³ãŸãð
FreeRTOSãç¡æã§ãããªãããœãŒã¹ã³ãŒãããŒã¹ã®ã«ãŒãã«ãåããŠãããšããç¹ã¯åšç¥ã®äºå®ã§ãã
ããã§ã¯ãã«ãŒãã«ã®ãœãŒã¹ã掻çšã§ãããšããæ¬åœã®å©ç¹ã¯äœã§ããïŒ
ç§ã䜿çšããã«ãŒãã«ããœãŒã¹ã³ãŒããæäŸããŠããããšããèšèã¯ããŠãŒã¶ãŒãæãå Žåã¯ãã€ã§ããã®å
容ãèŠãããšãã§ããããšãèšããŸãããç§ãã¡ã®ç©¶æ¥µã®ç®çãRTOSãšããèªåè»ãããéè¡ããããšã«ãããªããå
çæ©é¢è»äž¡ã®æ§é ãåçã®åŠç¿ã«ãã®æçŸ©ã眮ãã®ã§ã¯ãªããæ¹åæç€ºãªã©ã®éµå®ãæ¥éã«å éããªããªã©ãããå€ãã®æéãšåŽåãè²»ããããšã¯ç§ã«ãšã£ãŠå€§ããªå©ãã«ã¯ãªããŸãããïŒ
ãŸããã«ãŒãã«ãœãŒã¹ãåæããŠã«ãŒãã«ãããè¯ãããã©ãŒãã³ã¹ãæ¹è¯ããããšãã§ããŸããããã¹ãŠã®ã³ãŒãä¿®æ£ã«ã¯è²¬ä»»ã䌎ãã®ã§ããããŠãå§ãããããšã¯ã§ããŸããã
ä»ããFreeRTOSãšããèªåè»ãããéè¡ããããã«ãç§ãã¡ãäžå¯æ¬ ã«ç¥ã£ãŠããã¹ãããšããŸãšããŠã¿ãŸãããã
RTOSã®6ã€ã®ããããããã¯â
- ããŒããªã¢ã«ã¿ã€ã ãå®è£
ããæ¹æ³
- å²ã蟌ã¿ãå®å®çãã€å¹ççã«éå¶ããæ¹æ³
- é »ç¹ãªçžäºæé€ã«ããã·ã¹ãã æ§èœã®äœäžãå
æããæ¹æ³
- ã¿ã¹ã¯åªå
é äœã®æ±ºå®ã確å®ã«ããæ¹æ³
- äœæããã¿ã¹ã¯ããªã¢ã«ã¿ã€ã ã§åäœãããã©ããããã¹ããã
- ãããã£ã³ã°ããŠããŠ
äžèšã®å
容ã¯ãã¹ãŠä»åã®è¬çŸ©ã®æ žå¿ããŒãã§ãã
ãŸããRTOSã䜿ãã ãã§èªåçã«ãªã¢ã«ã¿ã€ã åŠçã«ãªããšèª€è§£ããŠããŸãããïŒ
åãææãæã£ãŠå®¶ã建ãŠãŠãã©ããªå€§å·¥ã建ãŠãå®¶ã¯åŒ·é¢šãæŒæ°Žã«ãæºããããšãªãå®å
šãªåé¢ããŸãä»ã®å€§å·¥ã建ãŠãå®¶ã¯éšãå°ãã ãã§ã倩äºããæ°Žãèœã¡ãå¬ã«ã¯æç±ãããŸããããææ¿è²»ãå€ãåºãŠããããšãã§ããŸãã FreeRTOSã ãã§ãªããRTOSã®äž¡æ¹ã«è©²åœããèšèã§ãã
第äºã«ãå²ã蟌ã¿ïŒInterruptïŒããã°ããåŠçããªããã°ãªããªãäœæ¥ã«åãåããŠããŸãããïŒ
ç§ãã¡ã®ãã®ãããªåºå®èŠ³å¿µããç§ãäœã補åãããã°ã©ã ã«ã©ãã ãæªåœ±é¿ãåãŒããã«ã€ããŠäºäŸãéããŠèª¿ã¹ããã®è§£æ±ºçãŸã§èŠãŠãããŸãã
第äžã«ãäœæããŠãããœãŒã¹ã³ãŒã颿°å
ã«ãããå€ãŸãŒã³ã衚瀺ããããããã«ãã¥ãŒããã¯ã¹ã䜿çšããããšããŸãããïŒ
ã¡ãã£ãšåŸ
ã£ãŠãã ããã
第åã«ãéèŠãªã¿ã¹ã¯ïŒäœæ¥ïŒã«é«ãåªå
é äœãå²ãåœãŠãŠããŸãããïŒ
ã¿ã¹ã¯ã«åªå
é äœãå²ãåœãŠãŠããã ããæ¹ã¯ããšãŠãé£ããã§ãããã
第äºã«ãããã°ã©ã ã®å®è£
ãšåããããéèŠãªã®ã¯ãç§ãæå³ãããšããã«ã¿ã¹ã¯ããªã¢ã«ã¿ã€ã ã§åäœãããã©ãããæ€èšŒããããšã§ãã
å¿
èŠã«å¿ããŠããããã¬ã«å ããŠæ©åšãããã«å¯Ÿå¿ããæ©åšãå¿
èŠã«ãªãå ŽåããããŸããããã¡ããããããã®æ©åšããªããŠãéçºããŠãã¹ãããããšã¯ã§ããŸãããããç°¡åã«åé¡ã確èªãã察çãè¬ããããšãã§ããŸãã
第å
ã«ãç§ãäœæããããã°ã©ã ãåžžã«åãããŒããŠã§ã¢ã§åäœããããšãæåŸ
ããããšã¯ã§ããŸããã
ç§ãäœæãã補åããŒããŠã§ã¢ã®ããã©ãŒãã³ã¹ãã¢ããã°ã¬ãŒãããããšãåœç¶ã®ããšãªããããŒãã£ã³ã°äœæ¥ãå¿
èŠãšããŸãã
13幎以äžçç·ŽããRTOSè¬çŸ©ããŠããŠð¡
çããã®æéãç§ã®æéã®ããã«å€§åã«èããŠè¬çŸ©ãäœããŸããã
13幎éãRTOSçŸå Žè¬çŸ©ãããŠããŠãããå€ãã®åŠç¿è
ãšåºäŒãããã«ãããããŠãªã³ã©ã€ã³ã§ãè¬çŸ©ãäœãããšã«ãªããŸããã
ãããªæ¹ã«ããããã§ãïŒ ð
RTOSãåããŠ
åŠã¶å
¥éè
FreeRTOSããŒã¹ã®è£œå
æé©åãå¿é
ããæ¹
軜éåOSã補åã«
é©çšãããæ¹
IoTïŒã¢ãã®ã€ã³ã¿ãŒãããïŒ
éçºè
å ããŠããããªæ¹ãåŠã¹ã°ããã§ãïŒ
ð 補åã®ããŒããªã¢ã«ã¿ã€ã ãšå®å®æ§ãäºå¹ã®ãŠãµã®ãå
šãŠæ¡ãããæ¹
ð Linuxãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ãšæ¯èŒãã¬ãã¥ãŒããåžæã®æ¹
ð OSã®çè§£ãæ·±ãããæ¹
ðãªãã©ã€ã³ã¯ã©ã¹ã«åå ããæéã®äœè£ããªãæ¹
éžæã®ç¥èã確èªããŠãã ããïŒ
- åŠç¿ã®ããã®éžæã®ç¥èãšããŠCèšèªãç¥ã£ãŠããå¿
èŠããããŸãã
ãã®è¬çŸ©ã ãã®ç¹å¥ãªç¹âš
- ç¹åŸŽ 1.æ åã180åã®å°ç« ã§å²ããåŸã§é²èЧã«ã圹ç«ã€ããã«æ§æããŸããã
- ç¹åŸŽ 2. 2Dã¢ãã¡ãŒã·ã§ã³ãç©æ¥µçã«æŽ»çšããŠçè§£ã«åœ¹ç«ã€ããã«ããŸããã
- ç¹åŸŽ 3.ãã¹ãŠã®å®ç¿äŸã¯TO-DOãšãšãã«è¡ããŸãã
- ç¹åŸŽ 4.äžèŠãªå
容ã¯å€§èã«æšãŠãããããã«ã³ã¢ã«éäžããã®ãå©ããŸãã
- ç¹åŸŽ 5.éçºè
ããã¥ã¢ã«ãèŠãªããŠãæ åã ãã§åŠç¿ã§ãããããã§ããã ãæ°ã«ããŸããã
䜿çšããŒã«ã確èªããŠãã ããð§°
- ã³ã³ãã€ã©ïŒSTM32CubeIDE
- ç·Žç¿ããŒãïŒSTmicro瀟å
¬åŒããŒãïŒãã¯ã¬ãªããã£ã¹ã«ããªãŒïŒ
-
- ç·Žç¿ã®äŸãšææãã¡ã€ã«ïŒfreeRTOS_tutorials.zipïŒãã¡ã€ã«ã¯ã»ã¯ã·ã§ã³0ãFreeRTOSã®å
é ã«ãããŸãïŒ
- è¬çŸ©ã§äœ¿çšããããŒãã¯Nucleo-64 F103RBã§ãããå®ç¿äŸã¯æ¬¡ã®ãããªããŒãããµããŒãããŠããŸãã
- ããªããæãSTM32ããŒããäžèšã®ãªã¹ãã«ãªãå Žåã¯ããïŒä»é²ïŒç§ãæã£ãŠããNucleo Boardã§è¬çŸ©ãç¶ããããããªãèŠãåŸãããªãã¯ããªããããªãã®åžæããããŒãã®ããã«ããªãã®å¥œããªããŒãã®ããã«ä¿®æ£ããããªãã®ãœãŒã¹ã³ãŒããããªãã«æããŠãã ããã 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 ããŒã¹ã®ã€ãŒãµããã (DM9000A) TCP/IP ç§»æ€
- uC/OS-II ããŒã¹ã® FatFs + SD ã«ãŒãç§»æ€
- uC/OS-II ããŒã¹ã® YAFFS + NANDFLASH ç§»æ€
- RTOSã«ãŒãã«ç§»æ€å€æ°
- YouTubeãã£ã³ãã«ã ãã©ãã°ãã
äºæ³ããã質å Q&A ð¬
Q. Cèšèªãç¥ããªã人ãåè¬ããŠãããã§ããããïŒ
ãã®è¬çŸ©ã¯ãšã³ãžãã¢ã®æ¹ã«å ããŠãéå°æ»è
ãRTOSå
èµè£œåã«é¢å¿ãæã£ãŠããæ¹ãåè¬ããŠããã ããšããã§ãããã
Q. äžçŽè
ããã®è¬çŸ©ãåè¬ããŠãããã§ããããïŒ
RTOSã«å
¥éãããæ¹ã¯ãã¡ããããã§ã«RTOSã䜿çšããŠããäžçŽè
ã®æ¹ãŸã§ãã«ããŒã§ããããã«è¬çŸ©ãäŒç»ããŠããŸãã
Q. ã¢ãã®ã€ã³ã¿ãŒãããïŒIoTïŒã«ã€ããŠãææ¥ã®ããŒããšããŠæ±ããŸããïŒ
FreeRTOSã¯ããŸããŸãªIoTããã€ã¹ã§äœ¿çšãããŠããŸããããã®ã¯ã©ã¹ã¯RTOSã«ãŒãã«ãšãã1ã€ã®ãããã¯ã«çŠç¹ãåœãŠãŠããŸãã
Q. å®ç¿ã®ããã®STM32ããŒãã®çš®é¡ã倿§ã§ãããäœã§ãæ§ããŸãããïŒ
æ åã§ã¯çŸåšSTM32 Nucleo64 f103rbããŒãåºæºã§ææ¥ãé²è¡ããŸãã
ããä»ã®STM32ããŒãã§ç·Žç¿ãããå Žåã¯ããïŒä»é²ïŒç§ãæã£ãŠãããã¯ã¬ãªããŒãã§è¬çŸ©ã«åŸããæ åãèŠèŽããåŸãå®ç¿äŸãã¡ã€ã«ïŒfreeRTOS_tutorialsïŒãœãŒã¹ãèªåã®åžæããããŒãçšã«ä¿®æ£ããæ¬è¬çŸ©ãå©çšãããããœãŒã¹ã³ãŒããããªããæãããŒãçšã«ã 1ïœ2æ¥ããããŸãã質åããã³ãŒããŒã§ç³ã蟌ã¿ïŒ
Q. FreeRTOSã¯è¯ãã§ããïŒ
ãšãŠãè¯ã質åã§ãããé£ãã質åã§ããããŸãã
ã©ã®OSãè¯ãã®ããšãã質åã«å¯ŸããŠãç§ã¯æ¬¡ã®ããã«æ£åŒãªçããæºåããŠããŸãã
(1)ç¡æ/ææ (2)ãœãŒã¹ã³ãŒã/ãã€ã㪠(3)å€ãã®ãŠãŒã¶ãŒãæã£ãŠããã (4)éçºç°å¢æ¯æŽ
以äžã¯ãRTOSãéžã¶ãšãã«èŠãéèŠãªé
ç®ã§ãã
FreeRTOSã¯äžèšã®1,2,3é
ç®ã«ã€ããŠã»ãŒæºç¹ãäžããããšãã§ããŸãã
Q. ç§ã¯VxWorksã䜿çšããŠããŸããããã®ã¬ãã¹ã³ã¯ç§ã«åœ¹ç«ã¡ãŸããïŒ
è¬çŸ©ã®ã¿ã€ãã«ã¯FreeRTOSããã°ã©ãã³ã°ã§ããããã®è¬çŸ©ã¯RTOSã®å®æ°ïŒæ žå¿ïŒã«éäžããæè²ã§èšèšãããŠããŸãã
ã©ããªRTOSã䜿çšããŠããå
±éããŠå¿
ãç¥ã£ãŠãããªããã°ãªããªãç¥èããã䜿ãã¹ãã«ããŠãŒã¶ãŒãããããã誀解ãåèŠãéããŠãã®è¬çŸ©ã§åãäžããŠãããšä¿¡ããŠããŸãã
åè¬åã«ç¢ºèªããŠãã ããïŒ
- è¬çŸ©ã§äœ¿çšããããã¬ãŒã³ããŒã·ã§ã³è³æã¯ãPDFææžã®åœ¢ã§åè¬çã«ç¡æã§æäŸãããŸãã
- äžç·ã«æäŸãããææžã¯ãInflearnå
ã§è¬çŸ©æ åã®è£å©è³æãšããŠå人çãªäœ¿çšç®çã«ã®ã¿å©çšãããªããã°ãªããŸãããå¿
èŠã§ãã
å¥ã®è¬çŸ©ãäžç·ã«èŠã ð