転éããã»ã¹äžã«çºçããåé¡ãšããããã®åé¡ãã©ã®ããã«ä¿®æ£ãããã«ã€ããŠã§ãã ãããããããã¯ãã®ããã»ããµã䜿çšããäºå®ããã人ã ãã§ãªããäœããã®çç±ã§c99ããã³gccæšæºããc89æšæºã«å€æŽããå¿ èŠããã人ãgccã³ã³ãã€ã©ãšäºææ§ã®ãªã人ã«ãšã£ãŠãèå³æ·±ãã§ãããã ãŸããçµè«ãšããŠããã®ãã©ãããã©ãŒã ãšã®ããåãããå人çãªææ ãè¿œå ã§ããããã«ããŸãã
ãã·ã¢ã®çŸå®ã«ã€ããŠ
ç§ãã¡ãè³Œå ¥ãããããã¯æé«çŽã§ãããªãã®è²»çšãããããŸãã ãã¡ããããšã«ãã©ã¹ã»ã©é«äŸ¡ã§ã¯ãããŸããããåãã©ãºããªãŒãšã¯æ¯èŒã§ããŸããã ãããããããå¿ããå Žåãéä¿¡ããããããã¯ããªããŸãšãã«èŠããŸããã ç§ã®æèŠã§ã¯ãäŸ¡æ Œã¯ã»ãšãã©æäœæ¥ã§ãããããéãããåœäºè ã«èµ·å ããã¯ãã§ãã
ã¢ãžã¥ãŒã«åç
ç§ãã¡ãééããå¥ã®ç¹åŸŽã¯ãé éæéã§ããã ãããã¯2æã«æ»ã£ãŠããäºå®ã§ã7æã«å±ããŸããã ããããç§ãã¡ã®åŽããã®ããã€ãã®ããã¯ããã«ãã¯ã¬ããããã®ä¿èšŒãšä¿èšŒæž-ãããŠãã€ãã«ãåŸ æã®ããã±ãŒãžãå°çããŸããã
移æ€ãå§ãã
åœå ããã»ããµã®ååšã確信ãããšããRTOSããã®ãã©ãããã©ãŒã ã«ç§»æ€ããããã«ããã®ãããã°ããããè³Œå ¥ãããã®ã«é²ã¿ãŸããã ãã§ã«è¿°ã¹ãããã«ããããžã§ã¯ãã«ãããã«ãã¬ããã®ãµããŒãã«ãããåœç¶ããã«ãã¿ã¹ã¯ããããã¯ãŒã¯ã¹ã¿ãã¯ããã¡ã€ã«ã·ã¹ãã ããã©ãã¯ãžã£ãã¯ãåããå¹ åºãã¯ã©ã¹ã®ã¢ããªã±ãŒã·ã§ã³ãèªåçã«äœ¿çšã§ããããã«ãªããŸãã
çµéšè±å¯ãªäººãšããŠããã€ãŠå人çã«å ã®ããã»ããµã¢ãŒããã¯ãã£ã«çŽé¢ããããšããããŸããããç§ã¯ããã«æè¡çãªè³ªåã«çããããšãã§ãã人ãšã®æ¥è§Šã確ç«ããããšããŸããã æ®å¿µãªãããæåã®æ®µéã§ã¯ãç§ã¯ãã®åé¡ã§ç¹ã«æåããŸããã§ããã ã³ã³ãã€ã©ãŒã«ã€ããŠè³ªåããããã«ãã³ã³ãã€ã©ãŒãããŠã³ããŒãã§ããããŒãžãžã®ãªã³ã¯ãšããã®ãµã€ãã«ããããã»ããµãŒã®æäœæ¹æ³ã®èª¬æãåãåããŸããã
éåžžã«å±ã¿ã«ãªãç¶æ³ã§ã¯ãããŸããããå°ãªããšãã³ã³ãã€ã©ãŒã¯ãããŸããïŒ c89ã§ããã圌ã¯ãœãŒã¹ã³ãŒããšæäŸãããäŸãã³ã³ãã€ã«ããŸããã 楜芳䞻矩ã¯ãFreeRTOSããã®ã¢ãŒããã¯ãã£ã«ç§»æ€ããããšã«é¢ããèšäºããã§ã«èŠãŠãããšããäºå®ã«ã觊çºãããŸããã ãã®ãããæŸèæã§ã¯åãåãããšãã§ããªãã£ãå°é£ãªèª²é¡ã«çªãåœãããŸã§ç§»åããããšã«ããŸããã
ã³ã³ãã€ã©ã®æè¡è©³çŽ°
Multkletã®ã³ã³ãã€ã©Cã¯lccã«åºã¥ããŠãããæ®å¿µãªãããã³ãã³ãã©ã€ã³ã€ã³ã¿ãŒãã§ã€ã¹ãå«ããã¹ãŠã®ç¹ã§äž»æµã®gcc / llvm / iccãšäºææ§ããããŸããã å°ãªããšã1ã€ã®ãã¡ã€ã«ãã³ã³ãã€ã«ããããšããæåã®è©Šã¿ã§ããµããŒããããŠããªããã©ã°ãããããèŠã€ãããŸããã æãåä»ãªã®ã¯ã-include xhã³ã³ãã€ã©ãªãã·ã§ã³ããªãããšã§ããã®ãªãã·ã§ã³ã«ã¯ãã³ã³ãã€ã«æžã¿ãã¡ã€ã«ã®æåã®è¡ã#include <xh>ã§ãããã®ããã«ãååŠççšã®xhãã¡ã€ã«ãå«ãŸããŸãã
ååãšããŠãããã¯æšæºçãªææ³ã§ã¯ãããŸãããããã®æ¹æ³ã§ã¯ãããšãã°ãçæãããæ§æãã¡ã€ã«ïŒããã³å€ãã®ãã¡ã€ã«ããããŸãïŒã転éããããšã¯éåžžã«äŸ¿å©ã§ãã
次ã®éãã¯ãã³ã³ãã€ã©ãäžè¬ã«æäŸããããšã§ããã å®éã®ãšãããlccã¯åãªãã³ã³ãã€ã©ã§ãããgccã¯ã³ã³ãã€ã©çšã®ãŠãŒãã£ãªãã£ïŒldãasãccã..ïŒã®ã³ã¬ã¯ã·ã§ã³ã«éããŸããã Gccèªäœã¯ãããããã¹ãŠã®ãŠãŒãã£ãªãã£ã®äžçš®ã®ã©ãããŒãšããŠæ©èœããŸããããç°¡åã«ã¯ãã³ã³ãã€ã©ãã©ã€ããŒã§ãã ã€ãŸããgccãä»ããŠã¢ã»ã³ãã©ãŒãŸãã¯ãªã³ã«ãŒãåŒã³åºãã®ã¯æ£ããããšã§ããgccã¯ããã¹ãŠã®ãã©ã¡ãŒã¿ãŒããæ£ããã€ã³ã¹ããŒã«ãããç°å¢ã®å¯Ÿå¿ãããŠãŒãã£ãªãã£ã«è»¢éããŸãã äžè¬ã«ãLDãšASãæ§ç¯ããããã«å¥ã ã®å€æ°ãå°å ¥ãããã¹ããã·ã³ããARãŠãŒãã£ãªãã£ãååŸããå¿ èŠããããŸããã 以åã«-ldã-asãããã³-arãã¯ãã¹ããŒã«ã®ååïŒmips-elfãªã©ïŒã«å²ãåœãŠãããšãå¯èœã§ããããããã¯éåžžã察å¿ãããã©ã°ã䜿çšããŠSSçµç±ã§åŒã³åºãããå Žåããã®å ŽåããŠãŒãã£ãªãã£ãæ瀺çã«åŒã³åºãå¿ èŠããããŸããã
ãã¡ããããªã³ã«ãŒãé©ãã瀺ããŸããã
ãããã®æåã®ãã®ã¯ãäžéãªããžã§ã¯ããã¡ã€ã«ãäœæããããã®-rãã©ã°ïŒ--relocatableïŒã®æ¬ åŠã§ããã ã¡ã¿æ å ±ãçæãããšãã«ãããã®ãªããžã§ã¯ãã䜿çšããŸããããšãã°ãã·ã¹ãã ã®åã¢ãžã¥ãŒã«ã®æŽåæ§ããã§ãã¯ãããã§ãã¯ãµã ãèšç®ããŸãã ãŸããäžè¬çã«ãããã¯åçã¢ãžã¥ãŒã«ãšã©ã€ãã©ãªã䜿çšããããšã«ãªããšéåžžã«äŸ¿å©ã§ãã
ãã£ãšãã£ãšã éçã©ã€ãã©ãªã®æäœã¯è²§åŒ±ã§ãã ã©ã€ãã©ãªã¯-lãªãã·ã§ã³ã®ã¿ã䜿çšããŠè»¢éã§ããã ãã§ãªãããã«ãã¹ãå«ããããšãã§ããŸããã ãã®ãããåãååã®ç°ãªãã©ã€ãã©ãªããªã³ã¯ããããšã¯åºæ¬çã«äžå¯èœã§ãã ããã«ã-start-group /-end-groupã®ãµããŒãã®æ¬ åŠã¯äžå¿«ã§ãã
ãŸããã³ã³ãã€ã©ã«ãã§ã«é¢é£ããŠãããããªãèå³æ·±ãäžå¿«ãªäºå®ãè¿œå ããããšãã§ããŸãããã®äžã§-lãªãã·ã§ã³ããªãŒããŒã©ã€ããããŸãã lccã§ã¯ã-lccdirã®å矩èªã§ãã
äžéçµæããŸãšãããšãã³ã³ãã€ã©ãªã³ã«ãŒã®éçºè
ã«ãã©ã°ã§ãŠã£ãã·ã¥ãªã¹ããäœæããŸã
ã³ã³ãã€ã©ãªãã·ã§ã³-include xh
é é¡ãªãã·ã§ã³ã¯-rãŸãã¯--relocatableã§ã
ã©ã€ãã©ãªãžã®ãã«ãã¹
ãªãã·ã§ã³-éå§ã°ã«ãŒã/-çµäºã°ã«ãŒã
ããã¯äºçŽ°ãªããšã§ããããªã³ã«ã®ã³ã³ãã€ã©çšã«-lãªãã·ã§ã³ãäºçŽããŸã
é é¡ãªãã·ã§ã³ã¯-rãŸãã¯--relocatableã§ã
ã©ã€ãã©ãªãžã®ãã«ãã¹
ãªãã·ã§ã³-éå§ã°ã«ãŒã/-çµäºã°ã«ãŒã
ããã¯äºçŽ°ãªããšã§ããããªã³ã«ã®ã³ã³ãã€ã©çšã«-lãªãã·ã§ã³ãäºçŽããŸã
ãœãŒã¹å€æŽ
次ã«ããœãŒã¹èªäœã«é²ã¿ãŸãããã ããããc99ãŸãã¯gnucã§ãããã³ã³ãã€ã©ãc89ã§ããããšãæãåºãããŠãã ããã åé¡ãçºçããã¯ãã§ããããšã¯æããã§ãã æåã®åé¡ã¯ãã³ã³ãã€ã©ãŒã§ã¯ãªããããªããã»ããµãŒã§ãçºçããŸããã ãã®ã³ã³ãã€ã©ã¯ã mcppããªããã»ããµã䜿çšããŸãã äžè¬ã«ãå¯å€æ°ã®åŒæ°ãæã€ãã¯ãã¯gccãšã¯ç°ãªãæ¹æ³ã§åŠçãããããšãããã«å€æããŸããããããŒã«ãã¯ç©ºã«ã§ããŸãããã€ãŸãã 1ã€ã®å¿ é åŒæ°ãæã€ãã¯ãã¯ã2ã€æªæºã®åŒæ°ã§åŒã³åºãããšã¯ã§ããŸããã ããšãã°ãassertãªã©ã®ãã¯ããå€æŽããå¿ èŠããããŸããã 以åã¯ã確èªã®ããã®åŒã ãã§ãªãããšã©ãŒã¡ãã»ãŒãžè¡ãåãåãããšãã§ããŸãããããã¯éåžžã«äŸ¿å©ãªå ŽåããããŸãã ååãšããŠãããã¯ãã¯ãã®æšæºçãªåäœã§ã¯ãªããããå¥ã®ãã¯ãassertfïŒïŒãäœæããçºçãããœãŒã¹ãã³ã³ãã€ã«ããŸããã§ããã
ã³ã³ãã€ã©ã«æ»ããŸãã ã€ã³ã©ã€ã³ããŒã¯ãŒãã¯c90ã§ç»å ŽããŸãããããã«ãã¬ããã³ã³ãã€ã©ã§ã¯ãµããŒããããŠããŸããã ãã¯ãã®ä»£æ¿ãšããŠéçã€ã³ã©ã€ã³é¢æ°ãåºç¯å²ã«äœ¿çšããŸãã åºåã¯compiler.hãã¡ã€ã«ã®å°å ¥ã§ãifdefãã€ã³ã©ã€ã³ãµããŒãã®æ¬ åŠã決å®ããŸãããã®å Žåãã€ã³ã©ã€ã³ã¯ç©ºã®ãã¯ãïŒ#define inline / * nothing * /ïŒãšããŠå®£èšãããŸãã
ã³ã³ãã€ã©ã¯ã æå®ãããåæååããµããŒãããŸããã ãã®åé¡ã¯ããªããã»ããµã®å©ããåããŠè§£æ±ºããããšã¯ã§ããŸããããŸããå€ãæšæºããµããŒãããããã«ãœãŒã¹ã³ãŒããããŠã³ã°ã¬ãŒããããã¯ãããŸããã§ããã c99-to-c89ããŒã«ãå©ãã«ãªãããã®å Žã§c99ã³ãŒããc89ã«å€ãããŸãã
ãŸããã³ã³ãã€ã©ã¯gnucã®æ¡åŒµã§ããtypeofããŒã¯ãŒãããµããŒãããŠããŸããã ããšãã°ããã¯ãminããã³maxãèšè¿°ããããã«äœ¿çšããŸãã
/** @return the larger of @aa and @ab */ #define max(a, b) \ ({ \ typeof(a) __max_a = (a); \ typeof(b) __max_b = (b); \ __max_a > __max_b ? __max_a : __max_b; \ }) /** @return the smaller of @aa and @ab */ #define min(a, b) \ ({ \ typeof(a) __min_a = (a); \ typeof(b) __min_b = (b); \ __min_a < __min_b ? __min_a : __min_b; \ })
äžè¬ã«ãæŽæ°å€æ°ã®å Žåã次ã®ããã«ç°¡åã«èšè¿°ã§ããŸãã
#define max(a, b) ((a) > (b) ? (a) : (b)) #define min(a, b) ((a) < (b) ? (a) : (b))
ããã¯ãããããŒãã¡ã€ã«ã®ã€ã³ã¯ã«ãŒããåã«ç Žæ£ããŠãã®ããã«å®çŸ©ããããšã«ãããããã€ãã®å Žæã§è¡ããŸããã
æ倧ã®åé¡ã¯å±æ§ã§ããã ã³ã³ãã€ã©ãŒã¯ãã¢ã©ã€ã¡ã³ãã®èšå®ãæ§é ã®ãããã³ã°ãç¹å®ã®ã»ã¯ã·ã§ã³ãžã®ããŒã¿ãŸãã¯ã³ãŒãã®é 眮ããµããŒãããŠããŸããã ãããã®ããšãªãã«è¡ãããšã¯éåžžã«å°é£ã§ãã ããšãã°ãã»ã¯ã·ã§ã³ã§ã®äœæ¥ãéåžžã«ç©æ¥µçã«äœ¿çšããŠããŸããã·ã¹ãã ã®ããŒãã§ãããç¹å®ã®ã»ã¯ã·ã§ã³ã«ãã€ã³ã¿ãŒãé 眮ãããšããååã«åºã¥ããŠããŸãã æ®å¿µãªããããã®åé¡ã解決ã§ããªãã£ããããçŸåšã®æ®µéã§ã¯ãã·ã¹ãã ã®èµ·åã«é¢ããè¡ãã·ãªã¢ã«ããŒãã«åºåããã ãã«å¶éããããšã«ããŸããã
å®éããã«ãã¯ã¬ããã¢ãŒããã¯ãã£ã®ãµããŒããéå§ãããšããããã«ããã€ãã®è³ªåããããŸããã ä»åãç§ã¯ã«ã³ãã³ã°ãããããšã«ããHabréã§äœããæžãããã«ãã¬ããã¹ã¿ãããšé£çµ¡ãåããŸããã æ¬åœã«ããããšãããããŸãã 圌ã¯ããã«ç§ã®è³ªåã«çããŠããã圌ã®ãããã§ããã«ãã¯ã¬ããã¢ãŒããã¯ãã£çšã®stdarg.hãå ¥æããŸããã ããŒãã³ãŒãã¯ãµã³ãã«ãããéä¿¡ãããŸããããååãšããŠããã«ãã¬ãããµã€ãããããŠã³ããŒãããããšãã§ããŸãã 誀解ããããŸããããããã«ã€ããŠã¯åºããããããŸããã æçµçã«ã圌ãã¯ãã«ãã¯ã¬ãããã©ãŒã©ã ã§è³ªåããæ¹ãè¯ããšå€æããŸããã
ããŒããžã®ç»åã®å¡ãã€ã¶ã
ã³ã³ãã€ã«åŸããããã解åããŸããã ç§ãèšã£ãããã«ã圌ã¯éåžžã«ç«æŽŸã«èŠããŸããã
å°ããªç®±ãéããåçæ®åœ±
ããŠãæåã®å
å«ãããª
ããããjtagãæ¥ç¶ãããšãã«ãããŒãã®ããã¥ã¡ã³ãã«ãããè¡ãæ¹æ³ã«é¢ããæ å ±ãå«ãŸããŠããªãããšãå€æããŸããã ãã¡ãŒã ãŠã§ã¢çšã®ã³ãã³ãã¯ãããŸããããjtagã³ãã¯ã¿ã«é©åã«ãã©ã°ã€ã³ããæ¹æ³ã«é¢ããæ å ±ã¯ãããŸããã§ããã åæã«ã圌ãå®ç§ã«ãã£ãããã2ã€ã®ã³ãã¯ã¿ããããŸããã çµéšçã«ã次ã®ããã«ãããè¡ãã®ãæ£ããããšãããããŸããã
ã³ãã¯ã¿åç
å®éããã«ãã¬ããã«è³ªåãããŸããããã³ãã¯ã¿ã®åçãè¿œå ããŠããã¥ã¢ã«ããã§ã«æŽæ°ããŠããããã§ãã
ç»åæã¡äžã
åæãããã©ã€ã³ãžã®æåŸã®é害ã¯ããªã³ã«ãŒã®ãã°ã§ããããããã¯ãã§ã«æåºããããã®ããä¿®æ£ãããŠããŸãã
äžçªäžã®è¡ã¯ãå®æããäŸã¯æ©èœããŸããããå®éã«ã¯ãEmboxã€ã¡ãŒãžã¯åãã³ãŒãã§æ©èœããŠããŸããã§ããã ç§ã¯ããã«ãã¡ã¢ãªå ã®ããã°ã©ã ãªããžã§ã¯ãã®äžé©åãªé 眮ã«ã€ããŠçããæ±ããŸããã ç§ãã¡ã®ã€ã¡ãŒãžã¯äŸãããããªã倪ãã£ããããæåã¯ã¹ã¿ãã¯ã«çœªãç¯ãã256 kBã®ã¡ã¢ãªã®çµãããæãã¹ã¿ãã¯ã¯äœããäžæžãããã ãã ãšèããŸããããã®ãããªå äŸããããŸããã readelfã䜿çšããŠããã¹ãŠã寞æ³ã§åé¡ãªãããšãå€æããéå§ã¢ãã¬ã¹ã§çœªãç¯ãå§ããŸããã ã€ãŸããããã°ã©ã ãæ£ãããªã³ã¯ãããŠããããšã確èªãããã£ãã®ã§ãã éçºãããã«ã¯éã¢ã»ã³ãã©ãå«ãŸããŠããªãããšãå€æããŸããã ãã®çµæããªã³ã«ãã©ãã«ã®ã¢ãã¬ã¹ã衚瀺ããåŸãä»®å®ã確èªãããŸããã Emboxãšãµã³ãã«ã®éãã¯ããµã³ãã«ã®æåã®ãªããžã§ã¯ããã¡ã€ã«ãåžžã«crt0.oã§ãã£ãããšã§ãã
ã¢ã»ã³ãã©ãŒã§ã®.sectionãã£ã¬ã¯ãã£ãã®ãµããŒããšãªã³ã«ãŒã§ã®å¯Ÿå¿ãããµããŒããè¿œå ããããã«äŸé Œãããããã¥ã¡ã³ããèªãããã©ãŒã©ã ã§å¿çãåãåããŸããã ç§ã¯ããããæ©èœããªãããšã瀺ããœãŒã¹ã³ãŒãã®äŸãèªãã§ç¢ºèªããäŸãæããŸããã äžè¬ã«ãåãkrufterã®å©ããåããŠãåé¡ã¯è§£æ±ºãããŸããã
ãããŠãç§ã¯ã€ãã«åŸ æã®ã©ã€ã³ãèŠãŸããïŒ
æ®å¿µãªãããã³ã³ãã€ã©ã«ããã€ãã®æ©èœãè¿œå ããã«ããã«åé²ãããããšã¯éåžžã«å°é£ã§ããã次ã«äœããã¹ãããèããããšã«ããŸãããã³ã³ãã€ã©ãèªåã§åãããã³ã³ãã€ã©ããã«ãã¯ã¬ãããå®äºãããŸã§ç¡æéã«åŸ ã€ãã§ãã åŸè ã¯ãc99äºæã®æé©åã³ã³ãã€ã©ãäœæããããšã決å®ãããããããŸãææã§ã¯ãªãããã§ãã ãŸããgccãŸãã¯llvmãããŒã¹ãšããŠäœ¿çšããã®ã§ã¯ãªãããã·ã³ã®çµç¹ãç»é²ãããŠããªããšããäºå®ãåŒçšããŠãç¬èªã«ã«ããããŸãã
å人çãªææ
èŠåãããããã«ãç§ã¯ç§ã®å人çãªææ ãè¡šçŸãããŠãã ããã æåŸã«ããã«ãã¯ã¬ããéçºè èªèº«ãèšäºã§ãããæ±ããŸããã
ç§ã¯ããŒããŠã§ã¢ã³ã³ããŒãã³ãã«ã€ããŠã¯è©³ããè¿°ã¹ãŸãããbarsmonsterã¯åœŒã®èšäºã§ããã«ã€ããŠããªããã¡ããšæžããŠããŸã ã ã·ã¹ãã ããã°ã©ããŒã®èŠ³ç¹
ãããã£ãŠãããã»ããµã¯ç©ççã«ååšããŸãã ãã¡ãããããã¯åã°ããããšã§ããããã·ã¢ã®é»åç£æ¥ããã€ããã»ããµãå¿ èŠãšããªãããšãç解ãããã¯æ確ã§ã¯ãããŸããã ã€ã³ãã«ã¯ãœãããŠã§ã¢ã«å€é¡ã®æè³ãè¡ã£ãŠããããããã®æè³ã¯ããã»ããµãŒã®éçºãšçŽæ¥çç£ãžã®æè³ãäžåã£ãŠããŸãã
ä»ã®ãã¹ãŠã®ã¡ãŒã«ãŒããã¢ããªã±ãŒã·ã§ã³ãéçºããŠããã§ã«äœæããããœãããŠã§ã¢ãå®è¡ã§ããªãå Žåãããã©ãŒãã³ã¹ãã¬ãŒããæå³ããªããªãããšãç解ããŠããŸãã ãããŸã§ãã Multiclet IDEã®ãã¹ãæ¹æ³ ããªã©ã®èšäºã¯å¥åŠã«èŠããŸãã ã€ãŸããæ¬åœã«ã¢ã»ã³ãã©ãŒã³ãŒããèšè¿°ããããšã«ãªã£ãŠããŸããïŒ ãããããã¡ãããçŸä»£ã®ããã°ã©ããŒãçµã¿èŸŒã¿ã·ã¹ãã ã«å¿ èŠãªã®ã¯ãããã°ã©ã ãããŒãã«çŽæ¥ã¢ããããŒãã§ããIDEã ãã§ããããšãç解ããŠããŸãã ç§ã¯ãã®èšäºã®çµè«ã«åæããçšæãã§ããŠããŸãã
ãããã£ãŠãå®è£ ãåçŽã§ããã«ãããããããææ¡ãããæ©èœã¯ã倧èŠæš¡ã§è€éãªãããžã§ã¯ãã®å®å šãªãããã°ã«ãååã§ãã ããŒã«ããã±ãŒãžã®æŽæ°ãããæ©èœã«ãããçŽæçã§äŸ¿å©ãªã€ã³ã¿ãŒãã§ã€ã¹ãæäŸããããšã«ãããéçºé床ãå€§å¹ ã«åäžãããããšãã§ããŸãã
ããããSTMã¯èšããŸã§ããªããå°ãªããšãArduinoã®æ©èœãç¹°ãè¿ãã®ã«ã©ã®ããã«åœ¹ç«ã€ã®ãããããŸããã
ãŸãã¯ãã åœå ã®ããã»ããµã§äœæ¥ããããã«ãã§ã«èšç·Žãããå°é家ãããªãã®äŒæ¥ã«æ¥ã ããšããèšç®ã§ããïŒ åœå ã§ã¯ããã§çµããã§ãïŒ ããããæ¬æ°ã§ããïŒ çŸåšãå°é家ã¯ç¹å®ã®ããã»ããµãŒã§äœæ¥ããããã«æããããŠããŸããïŒ
äžè¬çã«ãç§ã®å人çãªå°è±¡ã¯2ã€ãããŸãã äžæ¹ã§ãæ°ããããšãããããšããŠãã人ã ã¯åæ°ã¥ããããä»æ¹ã§ã¯ããã®ã¢ãããŒãã¯å€§åŠçã«éåžžã«ç®ã«èŠããŸãã 圌ãã¯ããã»ããµãäœãããã¹ãã§è¡ãããäœæ¥ã«ã€ããŠå ±åãããç§ãã¡ã¯æé«ã§ãããç§ãã¡ã¯ãã¹ãŠèªåã§ããïŒã 誰ããããå¿ èŠãšãã誰ããã®è£œåãæã¿ã䜿çšã§ããŸããïŒ
ã³ãã¥ããã£ãžã®è³ªåã§çµãããããšæããŸãã
å®éã®ã¢ããªã±ãŒã·ã§ã³ããŸã äœæãããŠããªãå Žåãåœå ã®Multicletããã»ããµããããšæããŸããïŒ
PSææ çãªçµè«ã¯ãã£ã±ãç§ã®å人çãªææ ã§ãã
PPSãã®èšäºã§èª¬æãããŠããã³ãŒã㯠ããªããžããªã®ãã©ã³ãã«ãããŸãã ãã¡ãããåæ§ã®ããŒãã§ããŠã³ããŒãããŠãã¹ãã§ããŸãã