æ¬åœã«é©ããŸããã ãããã®èšäºãä¿¡ããŠãããªããããã°ã©ãã³ã°ã®ããã«ããã°ã©ããã«ã³ã³ãããŒã©ãŒã®ããã¥ã¡ã³ããèªãå¿ èŠãããããŸããã ãéã®ããã°ã©ãã³ã°ãã®ç¥æµããŸã£ããç°ãªãæ¹æ³ã§æããããŸããã
ãã®èšäºã§ã¯ããã¯ãããã£ãŠã¿ããïŒããšãããã¬ãŒãºããLEDã®ããããããªãŠã€ã³ã¯ãŸã§ã®éã®ãã¯ãä»ã®èè ã®ãããããã¯ããã«é·ããªããŸãã ã©ã€ãã©ãªãŒé¢æ°ãšæ¢è£œã®äŸã®äœ¿çšã®èåŸã«é ãããŠãããã€ã¯ãã³ã³ãããŒã©ãŒã®ããã°ã©ãã³ã°ã®åŽé¢ãæããã«ããããšããŸãã
ãã€ã¯ãã³ã³ãããŒã©ã®ããã°ã©ãã³ã°ãçå£ã«ç 究ããã€ãããªãããã®èšäºã¯ããªãã®ããã§ãã ãããããArduinoã§ååã«éãã ããšããããéã®ãã¹ãŠã®ããŒããŠã§ã¢æ©èœãæã«å ¥ããã人ã«ãšã£ãŠã¯èå³æ·±ããããããŸããã
ãã€ã¯ãã³ã³ãããŒã©ãŒã®éžæ
å€ãã®äººã¯ãAVRãPICã8051ãªã©ã䜿ã£ãŠãã€ã¯ãã³ã³ãããŒã©ã®ç 究ãå§ããæ¹ãè¯ããšèšããããããŸããã ãã®åé¡ã¯å€é¢çã§è°è«ã®äœå°ããããŸãã Cortex-MãAVRãARM7ãªã©ãããã°ã©ã ããããšãç 究ãã人ã ã®äŸã¯ååã«ç¥ã£ãŠããŸãã ç§èªèº«ã¯Cortex-M3ããå§ããŸããã ç¹å®ã®ã¿ã¹ã¯ãããå Žåãã€ã³ã¿ãŒãããã«ã¯ããŸããŸãªã¿ã€ãã®ãã€ã¯ãã³ã³ãããŒã©ãŒãšãããã®å©ããåããŠè§£æ±ºã§ããã¿ã¹ã¯ã®æ¯èŒã«é¢ããå€ãã®æ å ±ããããŸãã ããã§ã¯ããã®è³ªåãæèµ·ãããŸãã ãããšãã°ã ãã¡ã ã
ãã€ã¯ãã³ã³ãããŒã©ã®çš®é¡ãæŽçãããšä»®å®ããŸãã ããããåžå Žã«ã¯ãããŸããŸãªã¡ãŒã«ãŒããã®ããŸããŸãªä¿®æ£ãæ°å€ãæäŸãããŠããŸãã ãã©ãã·ã¥ã¡ã¢ãªã®ãµã€ãºããã¢ããã°å ¥åã®æ°ãŸã§ãå€ãã®ãã©ã¡ãŒã¿ãŒãç°ãªããŸãã åã¿ã¹ã¯ã«ã€ããŠãåå¥ã«éžæããå¿ èŠããããŸãã ããã«ã¯äžè¬çãªæšå¥šäºé ã¯ãããŸããã ã§ããã ãåºãç¯å²ã§MKã¡ãŒã«ãŒãšèª¿æ»ãéå§ãã䟡å€ãããããšã«æ³šæããŠãã ããã 次ã«ãç¹å®ã®ã¿ã¹ã¯ã«MKãéžæããå Žåãæ瀺ãããåæãããäœããããªãã«åãå¯èœæ§ãéåžžã«é«ããªããŸãã
STM32ãéžæããŸããïŒTexasInstrumentsã®MKã§åŠç¿ãéå§ããæ¹ãè¯ããšèããŠããŸãããããã¥ã¡ã³ãã¯éåžžã«æèœã«ç·šéãããŠããŸãïŒããããã¯ãã·ã¢ã®é»åæ©åšéçºè ã«åºãé åžãããŠããããã§ãã åé¡ã質åãããå Žåã¯ããã©ãŒã©ã ã§ç°¡åã«è§£æ±ºçãèŠã€ããããšãã§ããŸãã ãã1ã€ã®ãã©ã¹ã¯ãã¡ãŒã«ãŒãšãµãŒãããŒãã£ã®äž¡æ¹ã®çµç¹ããã®å¹ åºããã¢ããŒãã§ãã
å匷ããã«ã¯äœãå¿ èŠã§ããïŒ
æ®å¿µãªãããMKã®ããã°ã©ãã³ã°ãéå§ããã«ã¯PCã ãã§ã¯äžååã§ãã ãã¢ããŒããšããã°ã©ããŒãã©ããã§å ¥æããå¿ èŠããããŸãã
ç§èªèº«ã¯ã STM3220G-EVALãã¢ããŒããšJ-Link PROããã°ã©ããŒã䜿çšããŠããŸãã ããããåå¿è ã«ã¯STM32F4DISCOVERYã§ååã§ãããå°éã§ãåé¡ãªãè³Œå ¥ã§ããŸãã
ãã¹ãŠã®äŸã¯ã STM32F4DISCOVERYãããã°ããŒãçšã§ãã ãã®æ®µéã§ã¯ããã®ãã¶ãŒããŒããCortex-M4ã³ã¢ã«åºã¥ããŠããããšã¯ãŸã£ããé¢ä¿ãããŸããã è¿ãå°æ¥ãCortex-M3ãè¶ ããæ©èœãšå©ç¹ã䜿çšããªããªããŸãã ãããŠã次ã«äœãèµ·ããã-衚瀺ãããŸãã
STM32F2xx / STM32F4xxã«åºã¥ãä»ã®ããŒããããå Žåã¯ãããã䜿çšã§ããŸãã è³æã®ãã¬ãŒã³ããŒã·ã§ã³ã§ã¯ãç§ãã¡ããªãããããŠããã®ã ãã§ããéã詳ãã説æããªãããã«ããŸãã ä»ã®ããŒããŠã§ã¢ã«ãµã³ãã«ã転éããéã«åé¡ãçºçããªãããšãæåŸ ããŠããŸãã
éçºç°å¢
ç¹°ãè¿ãè¿°ã¹ãŠããããã«ãARMãã€ã¯ãã³ã³ãããŒã©ãŒã®éçºç°å¢ã¯ãææã§ãããã§ãªãå Žåã§ãååã§ãã ç¹°ãè¿ãã«ãªããŸãããããã«ã€ããŠã®è«äºã¯çç¥ããããšæããŸãã ARM 6.60çšã®IAR Embedded Workbenchã䜿çšããŠããŸãã ãã¹ãŠã®äŸã¯ãã®ç°å¢ã«ãããŸãã ä»ã®äœãïŒKeilãEclipseãCCSãCooCocãªã©ïŒãæ°ã«å ¥ã£ãŠããïŒãŸãã¯çµç¹ã§äœ¿çšãããŠããïŒå Žåããããããªããå·ã€ããŸããã éçºç°å¢ã«ç¹ã«é¢é£ããæ©èœã«ã¯ç¹ã«æ³šæãæããŸãã
ãªãéçºç°å¢ãææãªã®ã§ããïŒ
ãããã誰ããç§ãææã®éçºç°å¢ã䜿çšããããšãææ¡ãããšããäºå®ã«å®å
šã«æºè¶³ããŠããªããããããŸããããIARã§ã¯ãæ©èœå¶éã®ãªãäžæã©ã€ã»ã³ã¹ããŸãã¯ã³ãŒããµã€ãºå¶éã®ããç¡å¶éã®ã©ã€ã»ã³ã¹ãååŸããæ©äŒããããŸãïŒMKã®å Žåã¯32Kã§ãïŒã
ããã«ãããã€ãã®MKã«ã¯ç¡æã®éçºç°å¢ããªãããšã«ããã«æ°ä»ããŸãã æ®å¿µãªããããããã®MKã¯äžéšã®å°åã§ã¯ããããã®ãªããã®ã§ãã
ããã«ãããã€ãã®MKã«ã¯ç¡æã®éçºç°å¢ããªãããšã«ããã«æ°ä»ããŸãã æ®å¿µãªããããããã®MKã¯äžéšã®å°åã§ã¯ããããã®ãªããã®ã§ãã
ã€ã³ã¹ããŒã«ããã»ã¹ã«ã€ããŠã¯èª¬æããŸããã
ã©ãããå§ããŸããïŒ
ãããžã§ã¯ãäœæ
ãŸãã空ã®ãããžã§ã¯ããäœæããŸãã IARã§ã¯ãASMãCããã³C ++ã§ãããžã§ã¯ããäœæã§ããŸãã Cã䜿çšããŸãã

ã¡ã€ã³ãã¡ã€ã«ãå«ã空ã®ãããžã§ã¯ãã衚瀺ãããŸãã

ããã§ããç§ãã¡ã®ãMKãšãããã¬ãŒã§äœæ¥ãéå§ããããã«ãããžã§ã¯ããæ§æããå¿ èŠããããŸãã STM32F4DISCOVERYããŒãã«ã¯ãMK STM32F407VGãã€ã³ã¹ããŒã«ãããŠããŸãã ãããžã§ã¯ãã®ããããã£ã§éžæããå¿ èŠããããŸãïŒäžè¬ãªãã·ã§ã³->ã¿ãŒã²ãã->ããã€ã¹ïŒïŒ

ã¿ãŒã²ããã®ããã°ã©ããã«ããã»ããµãéžæãããšããã®èª¬æãèªã¿èŸŒãŸãããããã°ã®æ©äŒãååã«äžããããŸãïŒããã«ã€ããŠã¯ä»¥äžã§èª¬æããŸãïŒã ããã«ããªã³ã«ã§äœ¿çšå¯èœãªã¢ãã¬ã¹ç©ºéã®èª¬æãå«ãæ§æãã¡ã€ã«ãèªåçã«æ·»ä»ãããŸãã å¿ èŠã«å¿ããŠã次ã®èšäºã§ãªã³ã«ãŒæ§æãã¡ã€ã«ã®ãããã¯ãåãäžããŸãã
ãã®åŸããããã¬ãæ§æããå¿ èŠããããŸãã ããã°ã©ã ã®ãããã°ã¯ãããŒããŠã§ã¢ã§ãçŽæ¥è¡ãããŸãã ããã¯ãJTAGãããã¬ãŒã䜿çšããŠè¡ãããŸãã ãŠã£ãããã£ã¢ã§ãããã©ã®ããã«è¡ããããã«ã€ããŠè©³ããç¥ãããšãã§ããŸãã ST-LINK / V2ãããã¬ãŒã¯ãSTM32F4DISCOVERYããŒãã«çµ±åãããŠããŸãã ãããã¬ãŒã䜿çšããã«ã¯ãã¡ãã¥ãŒDebugger-> Setup-> Driverã§ãã©ã€ããŒãéžæããå¿ èŠããããŸãã ãŸããããŒããŠã§ã¢ã§ãããã°ãçŽæ¥è¡ãå¿ èŠãããããšã瀺ãå¿ èŠããããŸãã ãããè¡ãã«ã¯ããã©ã°Debugger-> Download-> Use flash loaderïŒsïŒãèšå®ããŸã

ã·ãã¥ã¬ãŒã¿ãšããèšèãèŠã人ã®ããã«
çè«çã«ã¯ãIARã䜿çšãããšãã·ãã¥ã¬ãŒã¿ãŒã䜿çšããŠããã°ã©ã ããããã°ã§ããŸãã ããããç§ã¯å®éã«ãã®äœ¿çšã«äŒã£ãããšããããŸããã
ããã§ãããžã§ã¯ãã®äœæ¥æºåãæŽããŸããïŒããã°ã©ãã³ã°ãå ¥åããããã°ïŒã
æåã®ãããžã§ã¯ãã®TK
äžéçµæãèŠçŽãããšãMKãšãããã°ããŒããéžæããããããžã§ã¯ããæºåãããŸãã ã¿ã¹ã¯ã決å®ããæãæ¥ãŸããã
ç§ãã¡ã¯å€å žããé¢ããŸããã æåã®ãããžã§ã¯ãã¯ãç¹æ» ããLEDã§ãã 幞ããªããšã«ããããã¯ããŒãäžã«ãããããããŸãããããã¯ããã°ã©ãã³ã°ã®èŠ³ç¹ããã©ãããæå³ã§ããïŒ ãŸãããã¢ããŒãã®åè·¯å³ã調ã¹ãŠãLEDãã©ã®ããã«ãèµ·åãããããç解ããå¿ èŠããããŸãã
ãŠãŒã¶ãŒããã¥ã¢ã«ã¯ã補é å ã®Webãµã€ãã§å ¥æã§ããŸãã ãã®èª¬æã§ã¯ãããŒãäžã®LEDã«é¢ããåå¥ã®ã»ã¯ã·ã§ã³ïŒ 4.4 LEDïŒããããŸã ã äŸãšããŠã ãŠãŒã¶ãŒLD3ã䜿çšããŸã ã å³ã§èŠã€ããŠãã ããïŒ

åè·¯ã®æãåçŽãªåæã§ã¯ãLEDããç¹ç¯ããããã«ã¯ãMKã®ãã³ïŒãã®MKã®3.3Vã«å¯Ÿå¿ïŒã«ã1ããå°å ããå¿ èŠãããããšã瀺åãããŠããŸãã ãã®ãã³ã«ã0ããé©çšãããšãã¹ã€ããããªãã«ãªããŸãã å³ã§ã¯ããã®ãã³ã¯PD13ã§ç€ºãããŠããŸã ïŒããã¯ãããããã®ããã¥ã¡ã³ãã®æãéèŠãªæ å ±ã§ãïŒã
ãã®çµæãæåã®ããã°ã©ã ã«ãTKããæžãããšãã§ããŸãã
MKã®ããã°ã©ã ã¯ããã³MK PD13ã®ç¶æ ãç¶æ ã0ãããç¶æ ã1ãã«ããŸããã®éã«ã人éã®ç®ã§èå¥å¯èœãªç¹å®ã®åšæ³¢æ°ã§å€æããå¿ èŠããããŸãïŒéèŠãªæ³šæãLEDãé »ç¹ã«ç¹æ» ããããšãç®ããããèå¥ã§ããªãå ŽåããããŸãïŒã
ããã°ã©ãã³ã°ãéå§ããåã«ããŸãã¯å°ãã®çè«
TKã®å®è£ ã«çæããåã«ãMKã®ç®¡çæ¹æ³ãç解ããå¿ èŠããããŸãã
ãŸããMKã«ã¯ã³ã¢ãã¡ã¢ãªãããã³åšèŸºãããã¯ãå«ãŸããŸãã ç§ã¯ãã¹ãŠãèšæ¶ã§ã¯ã£ããããŠãããšæããŸãã STM32ã«ã¯ãMKããã°ã©ã ãä¿åãããŠãããã©ãã·ã¥ã¡ã¢ãªïŒäžè¬çãªå Žåãããã¯æ¬åœã®å£°æã§ã¯ãããŸãããããã°ã©ã ã¯å€éšã®äžæ®çºæ§ã¡ã¢ãªã«ä¿åã§ããŸãããçŸåšã¯ããã¯çç¥ãããŠããŸãïŒãšãŠãŒã¶ãŒããŒã¿ãå«ãä»ã®ããŒã¿ãããããšã«èšåããŠããŸãã SRAM -RAMããããŸãã
ã³ã¢ã¯ãã³ãã³ãã®1ã€ã®ã¹ããªãŒã ã®å®è¡ãå®è¡ãããã€ã¯ãã³ã³ãããŒã©ãŒã®äžéšã§ãã MKã§ã¯ãã³ã¢ã¿ã€ãã¯Cortex-M4ã§ãã MKã®ã³ã¢ã¯ãPCã®ããã»ããµãšæ¯èŒã§ããŸãã ã³ãã³ããå®è¡ããä»ã®ãããã¯ã«ããŒã¿ã転éããã ãã§ãïŒãã®æ¯èŒã§ã¯ãçµ±åãããã°ã©ãã£ãã¯ã¢ã¯ã»ã©ã¬ãŒã¿ãåããããã»ããµã¯èæ ®ãããŸããïŒã
åæã«ãMKã®ã¡ãŒã«ãŒã¯ã³ã¢ãéçºããŠããŸããã ã³ã¢ã¯ARM Limitedããè³Œå ¥ããŸãã ããŸããŸãªMKã®äž»ãªéãã¯åšèŸºã«ãããŸãã
åšèŸºãããã¯-ãå€çããšçžäºäœçšããããŸãã¯MKã³ã¢ã«ã¢ã¯ã»ã¹ã§ããªãç¹å®ã®æ©èœãå®è¡ãããããã¯ã ææ°ã®MKïŒSTM32ãå«ãïŒã«ã¯ãåºç¯ãªåšèŸºãŠããããå«ãŸããŠããŸãã åšèŸºæ©åšã¯ãMKã®ã¢ããã°å ¥åããé»ââå§å€ãèªã¿åãããšãããSPIãã¹ãä»ããŠå€éšããã€ã¹ã«ããŒã¿ãéä¿¡ããããšãŸã§ãããŸããŸãªåé¡ã解決ããããã«èšèšãããŠããŸãã
MKã³ã¢ãšã¯ç°ãªããåšèŸºãããã¯ã¯æ瀺ã«åŸããŸããã ã«ãŒãã«ã³ãã³ãã®ã¿ãå®è¡ããŸãã ãã®å Žåãã³ãã³ãã®å®è¡ã«ã«ãŒãã«ãåå ãããå¿ èŠã¯ãããŸããã
äŸ
äŸã¯ãMKããå€éšããã€ã¹ã«ããŒã¿ãéåä¿¡ããããã«èšèšãããUARTãããã¯ã§ãã ã«ãŒãã«ããã¯ããããã¯ãæ§æããéä¿¡çšã®ããŒã¿ãäžããã ãã§ãã ãã®åŸãã«ãŒãã«ã¯åœä»€ã®å®è¡ãç¶ç¶ã§ããŸãã åšèŸºãŠãããã®è©ã«ã¯ããããã³ã«ã«å¿ããããŒã¿è»¢éçšã®å¯Ÿå¿ããMKãã³ã®å¶åŸ¡ããããŸãã åšèŸºãŠãããèªäœã¯ã転éããããšã«ãããMKåºåãå¿
èŠãªç¶æ
ã0ããŸãã¯ã1ãã«é©åãªã¿ã€ãã³ã°ã§è»¢éããŸãã
ã³ã¢ãšåšèŸºæ©åšã®çžäºäœçš
MKã³ã¢ãšåšèŸºãããã¯ãšã®çžäºäœçšã¯ãç¹æ®ã¬ãžã¹ã¿ãŒã䜿çšããŠå®è¡ãããŸãïŒå²ã蟌ã¿ã¡ã«ããºã ãšDMAãä»ããçžäºäœçšããããŸããã詳现ã¯æ¬¡ã®æçš¿ãåç §ããŠãã ããïŒã ã«ãŒãã«ã®èŠ³ç¹ããèŠããšã ããã¯ç¹å®ã®ã¢ãã¬ã¹ãæã€ã¡ã¢ãªã®äžéšã«ãããŸããããå®éã«ã¯ããã§ã¯ãããŸãã ã ç¹æ®ã¬ãžã¹ã¿ãŒãžã®ããŒã¿ã®æžã蟌ã¿ã¯ãã³ãã³ããŸãã¯ããŒã¿ãåšèŸºè£ 眮ã«éä¿¡ããããšãšåçã§ãã èªã¿åã-ãããã¯ããããŒã¿ãåä¿¡ãããããã®ã¹ããŒã¿ã¹ãèªã¿åããŸãã åšèŸºãããã¯ãšãã®ç¹æ®ã¬ãžã¹ã¿ãŒã®èšè¿°ã¯ãMKã®èšè¿°ã®å€§éšåãå ããŠããŸãã
éèŠïŒç¹æ®ã¬ãžã¹ã¿ãŒã«ããŒã¿ãæžã蟌ãã§ããèªã¿åããè¡ããšããŸã£ããç°ãªãããŒã¿ãååŸã§ããŸãã ããšãã°ãUARTãŠãããã«ããŒã¿ãéä¿¡ããŠéä¿¡ãããããŠããããå€éšããã€ã¹ããåä¿¡ããããŒã¿ãèªã¿åã£ããããã«ã¯ãåãã¬ãžã¹ã¿ã䜿çšããŸãã
éåžžãç¹æ®ã¬ãžã¹ã¿ãŒã¯ããããã£ãŒã«ãã«åå²ãããŸãã 1ïŒãŸãã¯è€æ°ïŒãããã¯ãéåžžã¯ç¬ç«ããŠåšèŸºãããã¯ã®ç¹å®ã®ãã©ã¡ãŒã¿ãŒãå¶åŸ¡ããŸãã ããšãã°ãåãã¬ãžã¹ã¿ã®ç°ãªãããããMKã®ç°ãªãåºåã®ç¶æ ãå¶åŸ¡ããŸãã
ãªã³ãŒã«C
Cã®ç¬¬äžäººè ã§ããã°ããã®ã»ã¯ã·ã§ã³ãå®å šã«ã¹ãããã§ããŸãã äž»ã«ãPCåãã®ããã°ã©ãã³ã°ãæããããïŒãŸãã¯èªåã§åŠãã ïŒäººã察象ãšããŠããŸãã çµéšããã人ã ã¯éèŠãªããŒã ãèŠããŠããªãããšããããããŸãã ããã§ã¯ããããåäœã®æäœãšããã®ã¢ãã¬ã¹ã§ã¡ã¢ãªãçŽæ¥æäœããããšã«ã€ããŠç°¡åã«æãåºãããŸãã
ã¡ã¢ãªå ã®ã¢ãã¬ã¹ã«ããŒã¿ãæžã蟌ã
åšèŸºãŠãããã®èª¬æãèªãã§ãããšãã«ãæ£ããåäœã®ããã«çªå·0x3Bãæžã蟌ãå¿ èŠãããããšã«æ°ä»ãããšããŸãã ç¹æ®ã¬ãžã¹ã¿ãŒã®ã¢ãã¬ã¹ã¯0x60004012ã§ãã ã¬ãžã¹ã¿ã¯32ãããã§ãã
ããã«ãããè¡ãæ¹æ³ãããããªãå Žåã¯ãæ£ããã³ãã³ããååŸããããã®æšè«ã®ãã§ãŒã³ã説æããããšããŸãã
å€0x60004012ã¯ãã¡ã¢ãªã»ã«ãžã®ãã€ã³ã¿ã®å€ã«ãããŸããã ããã¯ãããã°ã©ã ã§æå®ããå¿ èŠããããã®ã§ããã€ãŸããCèšèªæ§æã«åŸã£ãŠåå€æãè¡ãå¿ èŠããããŸãã
(unsigned long*)(0x60004012)
ãããã£ãŠãèŠçŽ ãžã®ãã€ã³ã¿ããããŸãã 次ã«ããã®èŠçŽ ã«å¿ èŠãªå€ãæžã蟌ãå¿ èŠããããŸãã ããã¯ããã€ã³ã¿ãŒã®éåç §ã«ãã£ãŠè¡ãããŸãã ãããã£ãŠãæ£ããã³ãã³ããååŸããŸãã
*(unsigned long*)(0x60004012) = 0x3B;
ä»»æã®ãããã1ã«èšå®
ã¬ãžã¹ã¿ã®ä»ã®ãã¹ãŠã®ãããã®å€ãå€æŽããã«ã0x60004012ã§7ããããš1ãããã«ã1ããèšå®ãããšããŸãã ãããè¡ãã«ã¯ããã€ããªæŒç®ã䜿çšããŸã|ã ããã«æ£ããçããæäŸããŸãã
*(unsigned long*)(0x60004012) |= 0x82;
2ã€ã®äºå®ã«æ³šæããŠãã ããã ãããã¯æåããã§ã¯ãªããŒãããã«ãŠã³ããããŸãã ãã®æäœã«ã¯ãå®éã«ã¯å°ãªããšã3ã¯ããã¯ãµã€ã¯ã«ïŒå€ã®èªã¿åããå€æŽãæžã蟌ã¿ïŒãå¿ èŠã§ãã èªã¿åããšæžã蟌ã¿ã®éã«ãå€æŽãçŠæ¢ãããŠãããããã®1ã€ã®å€ãåšèŸºè£ 眮ã«ãã£ãŠå€æŽãããå¯èœæ§ããããããããã¯èš±å®¹ã§ããªãå ŽåããããŸãã ãã®æ©èœãå¿ããªãã§ãã ãããããããªããšããã£ããããã®ãéåžžã«é£ãããã°ãäŸµå ¥ããå¯èœæ§ããããŸãã
ä»»æã®ãããã0ã«èšå®
ã¬ãžã¹ã¿å ã®ä»ã®ãã¹ãŠã®ãããã®å€ãå€æŽããã«ã0x60004012ã§7ããããš1ãããã«ã0ããèšå®ãããšããŸãã ãããè¡ãã«ã¯ããã€ããªæŒç®ïŒã䜿çšããŸãã ããã«æ£ããçããæäŸããŸãã
*(unsigned long*)(0x60004012) &= 0xFFFFFF7D;
ãŸãã¯ãããåçŽãªã¬ã³ãŒãïŒäœåãªæäœãå¿é ããªãã§ãã ãããã³ã³ãã€ã©ã¯ãæå°éã®æé©åã§ãäºåã«ãã¹ãŠãèšç®ããŸãïŒïŒ
*(unsigned long*)(0x60004012) &= (~0x82);
MKçšããã°ã©ã ã®ããã€ãã®æ©èœ
ããã§ã¯ãèŠããŠããã¹ãéèŠãªMKçšããã°ã©ã ã®æ©èœã«ã€ããŠèª¬æããŸãã ç©äºã¯ããªãæçœã§ãããããã§ãã§ãã
ããã°ã©ã ã«ã¯çµããããããŸãã
ã»ãšãã©ã®PCããã°ã©ã ãšã¯ç°ãªããMKãœãããŠã§ã¢ã¯çµäºããªãã§ãã ããã ãããŠãããã°ã©ã ã®å®äºåŸãMKã¯æ£ç¢ºã«äœãããªããã°ãªããŸãããïŒ è³ªåã¯å®éã«ã¯ä¿®èŸçã§ãã ãããã£ãŠãããªããæ°žé ã®ãµã€ã¯ã«ãå¿ããŠããªãããšã確èªããããšãå¿ããªãã§ãã ããã å¿ èŠã«å¿ããŠãMKãã¹ãªãŒãã¢ãŒãã«ã§ããŸãã
æŽæ°å€æ°ã䜿çšãã
ããŒããŠã§ã¢ã§æµ®åå°æ°ç¹æ°ã®æäœãå®è¡ããCortex-M4ã³ã¢ã§MKã䜿çšããŠãããšããäºå®ã«ããããããã䜿çšãæåŠããããšããå§ãããŸãã MKã§ã¯ããã®ãããªæäœã®ãµããŒãããªããšãèšç®æéãèšå€§ã«ãªããŸãã
ã¡ã¢ãªã®åçå²ãåœãŠãæåŠãã
ããã¯åãªããã³ãã§ãã ãã®çç±ã¯ç°¡åã§ã-ã¡ã¢ãªãŒãã»ãšãã©ãããŸããã ãé ãã¡ã¢ãªãªãŒã¯ããçºçããã©ã€ãã©ãªã«é »ç¹ã«åºäŒã£ãããšããããŸãã æ°é±éã®å®å®ããåäœã®åŸãMKããšã©ãŒã§ãã³ã°ã¢ãããããšããããã¯éåžžã«äžå¿«ã§ããã åçãªã¡ã¢ãªå²ãåœãŠã䜿çšããå¿ èŠããªãããã«ãäºåã«ããã°ã©ã ã®ã¢ãŒããã¯ãã£ãæ€èšããããšããå§ãããŸãã
ããã§ã䜿çšãããå Žåã¯ãã¡ã¢ãªãããŒãžã£ã®äœæ¥ãæ éã«æ€èšããããç¬èªã«äœæããŠãã ããã
ä»äºãå§ããŸãããïŒ
MKã®ããã°ã©ã ã®äœæ¥ã¯ãåžžã«ããã¥ã¡ã³ããèªãããšããå§ãŸããŸãã MK ãªãã¡ã¬ã³ã¹ããã¥ã¢ã«ã«ã€ããŠã¯ã補é å ã®Webãµã€ãã§å ¥æã§ããŸãã å€ãã®ããŒãžããããŸããã ãŸã ãã¹ãŠãèªãå¿ èŠã¯ãããŸãã ã ãã§ã«è¿°ã¹ãããã«ãã»ãšãã©ã®ããã¥ã¡ã³ãã¯åšèŸºãŠããããšãã®ã¬ãžã¹ã¿ã®èª¬æã§ãã ãŸãããã®ãªãã¡ã¬ã³ã¹ããã¥ã¢ã«ã¯1ã€ã®MKåãã§ã¯ãªããè€æ°ã®å®èŠåãã«æžãããŠãããšããäºå®ã«ã泚æãåèµ·ããããšæããŸãã ããã¯ããããã®è¡ã§ä»ã®MKã«åãæ¿ãããšãã«ã³ãŒãã移æ€å¯èœã§ããããšã瀺ããŠããŸãïŒãã¡ããã䜿çšãããŠããMKã«ãªãåšèŸºãããã¯ã䜿çšããããšããªãéãïŒã
ãŸããã©ã®ãããã¯ã䜿çšãããã決å®ããå¿ èŠããããŸãã ãã®ããã«ã¯ãã ã¯ããã«ããšã äž»ãªæ©èœãã»ã¯ã·ã§ã³ãå匷ããã°ååã§ãã
MKãã³ã®ç¶æ ã®çŽæ¥å¶åŸ¡ã¯ãGPIOãããã¯ã䜿çšããŠå®è¡ãããŸãã STM32 MKã®ããã¥ã¡ã³ãã«ç€ºãããŠããããã«ãæ倧ââ11ã®ç¬ç«ããGPIOãŠããããååšã§ããŸãã ããŸããŸãªåšèŸºGPIOãŠãããã¯ããŒããšåŒã°ããŸãã ããŒãã«ã¯AãKãšããã©ãã«ãä»ããŠããŸããåããŒãã«ã¯æ倧16åã®ãã³ãå«ããããšãã§ããŸãã åè¿°ããããã«ãLEDã¯PD13ãã³ã«æ¥ç¶ãããŠããŸãã ã€ãŸãããã®ãã³ã¯åšèŸºãããã¯GPIOããŒãDã«ãã£ãŠå¶åŸ¡ãããŸãããã³çªå·13ã
ä»åã¯ãä»ã®åšèŸºãããã¯ã¯å¿ èŠãããŸããã
åšèŸºãŠãããã®ã¿ã€ãã³ã°å¶åŸ¡
MKã®æ¶è²»é»åãåæžããããã«ãMKããªã³ã«ããåŸãã»ãšãã©ãã¹ãŠã®åšèŸºãŠãããã®é»æºããªãã«ããŸãã ãŠãããã®ãªã³/ãªãã¯ãå ¥åã«ã¯ããã¯ä¿¡å·ãé©çš/åæ¢ããããšã§è¡ããŸãã æ£ããåäœãããã«ã¯ãå¿ èŠãªåšèŸºãããã¯ãã¯ããã¯ä¿¡å·ãåä¿¡ããããã«MKã¯ããã¯ä¿¡å·ã³ã³ãããŒã©ãŒãèšå®ããå¿ èŠããããŸãã
éèŠïŒåšèŸºè£ 眮ã¯ãã¯ããã¯ä¿¡å·ããªã³ã«ããçŽåŸã«åäœãéå§ã§ããŸããã éå§ãããŸã§ã«ããã€ãã®æªçœ®ãåŸ ã€å¿ èŠããããŸãã åšèŸºæ©åšã«ã©ã€ãã©ãªã䜿çšãã人ã¯ãå€ãã®å Žåããã®æ©èœã«ã€ããŠãç¥ããŸããã
RCC XXXããªãã§ã©ã«ã¯ããã¯ã€ããŒãã«ã¬ãžã¹ã¿ã¯ ãããªãã§ã©ã«ãããã¯ã®ã¯ãããã³ã°ãæå¹ã«ãã圹å²ãæãããXXXã®ä»£ããã«AHB1ãAHB2ãAHB3ãAPB1ãããã³APB2ãã¹ã䜿çšã§ããŸãã 察å¿ããã¬ãžã¹ã¿ã®èª¬æã泚ææ·±ã調ã¹ãåŸã RCC AHB1ããªãã§ã©ã«ã¯ããã¯ã€ããŒãã«ã¬ãžã¹ã¿ïŒRCC_AHB1ENRïŒã®3çªç®ã®ãããã«ã1ããèšå®ããããšã«ãããGPIODããªãã§ã©ã«ãããã¯ã®ã¯ããã¯ããªã³ã«ãªã£ããšçµè«ä»ããããšãã§ããŸãã

ããã§ãã¬ãžã¹ã¿RCC_AHB1ENRèªäœã®ã¢ãã¬ã¹ãèŠã€ããæ¹æ³ãç解ããå¿ èŠããããŸã ã
æ³šïŒ STM32 MKã¯ããã¯ã·ã¹ãã ã®èª¬æã¯ãå¥ã®èšäºã«å€ããŸãã èªè ãåžæããå Žåã¯ã次ã®ããããã®èšäºã§ãã®ã»ã¯ã·ã§ã³ã詳ãã説æããŸãã
ç¹æ®ã¬ãžã¹ã¿ãŒã®ã¢ãã¬ã¹ã®å®çŸ©
ãªãã¡ã¬ã³ã¹ããã¥ã¢ã«ã®ã»ã¯ã·ã§ã³ã¡ã¢ãªããããèªãããšãããç¹æ®ã¬ãžã¹ã¿ã®ã¢ãã¬ã¹ã決å®ããå¿ èŠããããŸãã åãããã¯ã«ã¯ãç¬èªã®ã¢ãã¬ã¹ç©ºéé åãããããšã«æ°ä»ããããããŸããã ããšãã°ãRCCãããã¯ã®å Žåãããã¯ã»ã¯ã·ã§ã³0x4002 3800-0x4002 3BFFã§ãã

RCCãããã¯ã®ã¬ãžã¹ã¿ããããžã®ãªã³ã¯ããã©ããšãé¢å¿ã®ããã¬ãžã¹ã¿RCC_AHB1ENRãæã€è¡ãèŠã€ãããŸãã

ã¬ãžã¹ã¿ã®ã¢ãã¬ã¹ãååŸããã«ã¯ãRCCãããã¯ã®ã¢ãã¬ã¹ç©ºéã®åæå€ã«Addrãè¿œå ããå¿ èŠããããŸãã ç®çã®ã¬ãžã¹ã¿ã®ãªãã»ãã ã ã¢ãã¬ã¹ãªãã»ããã¯ãã¬ãžã¹ã¿ã®èª¬æã«ã瀺ãããŠããŸãïŒäžèšã®ã¹ã¯ãªãŒã³ã·ã§ãããåç §ïŒã
ãã®çµæãã¬ãžã¹ã¿RCC_AHB1ENR -0x4002 3830ã®ã¢ãã¬ã¹ã決å®ããŸããã
GPIOãããã¯
GPIOãããã¯ã®äžè¬çãªæŠèŠã«ã€ããŠã¯ããªãã¡ã¬ã³ã¹ããã¥ã¢ã«ã®ã»ã¯ã·ã§ã³å šäœãå®å šã«èªãããšã匷ããå§ãããŸãã 代æ¿ã¢ãŒãã«ã¯æ³šæãæãããšã¯ã§ããŸãããã ããã¯åŸã§äœ¿çšããŸãã
ããã§ã®ã¿ã¹ã¯ã¯ãMKãã³ã®ç¶æ ã管çããæ¹æ³ãåŠã¶ããšã§ãã GPIOã¬ãžã¹ã¿ã®èª¬æã«ããã«é²ã¿ãŸãã
åäœã¢ãŒã
ãŸããããŒãDã®13çªç®ã®ãã³ã®åäœã¢ãŒããæ±çšåºåã¢ãŒããšããŠèšå®ããå¿ èŠããããŸã ãããã¯ãGPIOãããã¯ãMKãã³ã®ç¶æ ãå¶åŸ¡ããããšãæå³ããŸãã MKãã³ã®åäœã¢ãŒãã¯ã GPIOããŒãã¢ãŒãã¬ãžã¹ã¿ïŒGPIOx_MODERïŒã¬ãžã¹ã¿ïŒx = A..I / J / KïŒã䜿çšããŠå¶åŸ¡ãããŸã ã

説æãããããããã«ãå¿ èŠãªæ§æãè¡ãã«ã¯ãå€01bãGPIOx_MODERã¬ãžã¹ã¿ã®26ã27ãããã«æžã蟌ãå¿ èŠããããŸãã ã¬ãžã¹ã¿ã¢ãã¬ã¹ã¯ãäžèšãšåãæ¹æ³ã§æ±ºå®ã§ããŸãã
GPIOããŒãã®åºåãã³ã®æ§æ
GPIOãããã¯ã䜿çšãããšãããŒãã®åºåãã³ã«è¿œå èšå®ãé©çšã§ããŸãã ãããã®èšå®ã¯ã¬ãžã¹ã¿ã§è¡ãããŸãã
- GPIOããŒãåºåã¿ã€ãã¬ãžã¹ã¿ïŒGPIOx_OTYPERïŒ -ããã·ã¥ãã«ãŸãã¯ãªãŒãã³ãã¬ã€ã³åºåã¿ã€ããèšå®ããŸã
- GPIOããŒãåºåé床ã¬ãžã¹ã¿ïŒGPIOx_OSPEEDRïŒ - åºåé床ãèšå®ããŸã
ããã©ã«ãå€ã«éåžžã«æºè¶³ããŠããããããããã®ãã©ã¡ãŒã¿ãŒã¯å€æŽããŸããã
ãã³MKã®å€ã®èšå®
æåŸã«ãMKã®çµäºç¶æ ãå¶åŸ¡ããããšã«ãªããŸããã MKã®ç¹å®ã®ãã³ã«åºåå€ãèšå®ããã«ã¯ã2ã€ã®æ¹æ³ããããŸãã
GPIOããŒããããã»ãã/ãªã»ããã¬ãžã¹ã¿ïŒGPIOx_BSRRïŒã䜿çšããŸã

ããã0ã16ã«ã0ããŸãã¯ã1ããæžã蟌ããšãããŒããã³ã®ã¹ããŒã¿ã¹ã察å¿ããŠå€åããŸãã 1ã€ãŸãã¯è€æ°ã®MKãã³ã®åºåã«ç¹å®ã®å€ãèšå®ããä»ã®ãã³ã®ã¹ããŒã¿ã¹ãå€æŽããªãããã«ããã«ã¯ãåã ã®ããããå€æŽããæäœã䜿çšããå¿ èŠããããŸãã ãã®ãããªæäœã¯ãå°ãªããšã3ãµã€ã¯ã«ã§å®è¡ãããŸãã ãããã®äžéšã«1ãæžã蟌ã¿ãããäžæ¹ã«0ãæžã蟌ãå¿ èŠãããå Žåãå°ãªããšã4ã€ã®å¯Ÿçãå¿ èŠã«ãªããŸãã ãã®æ¹æ³ã¯ãåæç¶æ ãäžæãªå Žåã«åºåç¶æ ãå察ã«å€æŽããããã«æã奜ãŸãã䜿çšãããŸãã
GPIOããŒããããã»ãã/ãªã»ããã¬ãžã¹ã¿ïŒGPIOx_BSRRïŒ

åã®æ¹æ³ãšã¯ç°ãªãããã®ã¬ãžã¹ã¿ã®ãããã«0ãæžã蟌ãã§ãäœãèµ·ãããŸããïŒå®éããã¹ãŠã®ãããã¯æžã蟌ã¿å°çšã§ãïŒïŒã ããã0ã15ã«1ãæžã蟌ããšã察å¿ããMKåºåã«ã1ããèšå®ãããŸãã ããã16ã31ã«1ãæžã蟌ããšã察å¿ããMKåºåã«ã0ããèšå®ãããŸãã ãã³ãMKãã«ç¹å®ã®å€ãèšå®ããå¿ èŠããããå€æŽããªãå Žåããã®æ¹æ³ã¯åã®æ¹æ³ãããæãŸããæ¹æ³ã§ãã
LEDãç¹ç¯ããŸãïŒ
å¿ èŠãªãã¹ãŠã®ã¬ãžã¹ã¿ã®ã¢ãã¬ã¹ãèŠã€ããããLEDãå«ãããã°ã©ã ãäœæã§ããŸãã
void main() { //Enable port D clocking *(unsigned long*)(0x40023830) |= 0x8; //little delay for GPIOD get ready volatile unsigned long i=0; i++; i++; i++; i=0; //Set PD13 as General purpose output *(unsigned long*)(0x40020C00) = (*(unsigned long*)(0x40020C00)& (~0x0C000000)) | (0x04000000); //Turn LED ON! *(unsigned long*)(0x40020C14) |= 0x2000; while(1); }
ã³ã³ãã€ã«ïŒ Project-> Compile ïŒããã³ã¢ããããŒãïŒ Project-> Download-> Download active application ïŒ ã§ããŸã ã ãŸãã¯ããããã°ãéå§ãïŒ Project-> Dpwnload and Debug ïŒãå®è¡ãéå§ããŸãïŒF5ïŒã
LEDãç¹ç¯ããŠããŸãïŒ
LEDç¹æ»
LEDã®ç¹æ» ã¯ããããã®ã¢ã¯ã·ã§ã³éã®é 延ã䌎ã亀äºã®ãªã³ãšãªãã«ãããŸããã æãç°¡åãªæ¹æ³ã¯ãæ°žé ã®ãµã€ã¯ã«ã§ãªã³ãšãªããåãæ¿ãããããã®éã«é 延ãæ¿å ¥ããããšã§ãã
void main() { //Enable port D clocking *(unsigned long*)(0x40023830) |= 0x8; //little delay for GPIOD get ready volatile unsigned long i=0; i++; i++; i++; i=0; //Set PD13 as General purpose output *(unsigned long*)(0x40020C00) = (*(unsigned long*)(0x40020C00)& (~0x0C000000)) | (0x04000000); while(1) { //Turn LED ON *(unsigned long*)(0x40020C14) |= 0x2000; //Delay for( i=0; i<1000000 ;++i ); //Turn LED OFF *(unsigned long*)(0x40020C14) &= ~0x2000; //Delay for( i=0; i<1000000 ;++i ); } }
é 延ã®1,000,000ã®å€ã¯ãLEDã®ç¹æ» ã®åšæãç®ã«èŠããããã«å®éšçã«éžæãããŸãããé·ãããªãããã«ããŸãã
ã¢ã«ãŽãªãºã ãæé©åããŸã
LEDãç¹æ» ãããããšã§éžæããã¢ãããŒãã®æ¬ ç¹ã¯ãMKã³ã¢ã空ã®ãµã€ã¯ã«ã§ã»ãšãã©ã®æéãè²»ããããšã§ãããæçšãªããšãè¡ãããšãã§ããŸãïŒãã®äŸã§ã¯ãä»ã®ã¿ã¹ã¯ã¯ãããŸããããå°æ¥è¡šç€ºãããŸãïŒã
ãããåé¿ããããã«ãéåžžã¯ãµã€ã¯ã«ã«ãŠã³ã¿ãŒã䜿çšãããããã°ã©ã ãäžå®ã®ãµã€ã¯ã«æ°ãçµéãããšMKãã³ã®ç¶æ ãåãæ¿ãããŸãã
void main() { //Enable port D clocking *(unsigned long*)(0x40023830) |= 0x8; //little delay for GPIOD get ready volatile unsigned long i=0; i++; i++; i++; i=0; //Set PD13 as General purpose output *(unsigned long*)(0x40020C00) = (*(unsigned long*)(0x40020C00)& (~0x0C000000)) | (0x04000000); while(1) { i++; if( !(i%2000000) ) { //Turn LED ON *(unsigned long*)(0x4002014) |= 0x2020; } else if( !(i%1000000) ) { //Turn LED OFF *(unsigned long*)(0x4002014) &= ~0x2000; } } }
ãã ããããã§ã¯åé¡ãªãå®è¡ã§ããŸããããµã€ã¯ã«å ã§å®è¡ãããã³ãã³ãã®æ°ãå€ãããšãLEDã®ç¹æ» åšæïŒãŸãã¯ãµã€ã¯ã«å ã®ä»ã®ã³ãã³ãã®å®è¡åšæïŒãå€åããŸãã ãããããã®æ®µéã§ã¯ãããšæŠãããšã¯ã§ããŸããã
ãããã°ã«ã€ããŠå°ã
IARã䜿çšãããšãããŒããŠã§ã¢ã§ã¢ããªã±ãŒã·ã§ã³ãçŽæ¥ãããã°ã§ããŸãã ãã¹ãŠãPCã¢ããªã±ãŒã·ã§ã³ã®ãããã°ãšã»ãšãã©åãã«èŠããŸãã ã¹ããããã€ã¹ãããã®å®è¡ãé¢æ°ã®å ¥åãå€æ°ã®å€ã®è¡šç€ºã¢ãŒãããããŸãïŒãããã°ã¢ãŒãã§ã¯ã [衚瀺]-[ãŠã©ãã]-> [ãŠã©ãã1/4] ïŒã
ããããããã«å ããŠãã«ãŒãã«ã¬ãžã¹ã¿ã®å€ãåšèŸºãããã¯ã®ç¹æ®ã¬ãžã¹ã¿ïŒè¡šç€º->ã¬ãžã¹ã¿ïŒãªã©ã衚瀺ããæ©èœããããŸãã
MKããã°ã©ãã³ã°ãåŠç¿ããéã«ã¯ããããã¬ãŒæ©èœã«ç²Ÿéããããšã匷ããå§ãããŸãã
çµè«ã«ããã€ãã®èšè
ããããå€ãã®äººã¯ãããã°ã©ã ã§ã¢ãã¬ã¹ãæåã§ç»é²ããããšã¯æ£ãããªããšèšããŸãã補é æ¥è ã¯ãã¬ãžã¹ã¿ãšããããã£ãŒã«ãã®å®çŸ©ãåšèŸºæ©åšãæäœããããã®ã©ã€ãã©ãªãããã³éçºè ã®ç掻ã楜ã«ããä»ã®ããŒã«ãåãããã¡ã€ã«ãæäŸããŠããããã§ãã ç§ã¯ããã«å®å šã«åæããŸãããMKã®ããã°ã©ãã³ã°ã®æåã®ã¹ãããã¯ãããã¥ã¢ã«ãæãäžããŠãå¿ èŠãªã¬ãžã¹ã¿ãšããããã£ãŒã«ããåå¥ã«æ±ºå®ããããšã«ãã£ãŠè¡ãããã¹ãã ãšæããŸãã å°æ¥çã«ã¯ãããã¯äœ¿çšã§ããªããªããŸããã確èªããå¿ èŠããããŸãã
ãã®å£°æã®ããã€ãã®çç±ãæããŸãã
- 補é å
ã®ã©ã€ãã©ãªã§ãšã©ãŒãçºçããå ŽåããããŸãïŒ ãã®ããããããžã§ã¯ãã®æéãã»ãŒç ŽããŸããã ã¯ãã ä»ãäžã«æ°Žæ¶ã100åæå·ãããšèããŠïŒãããèµ·ããåã«ïŒããããæ°ååã¯ãã ä»ãããŸããã åé¡ã¯ãç¹æ®ã¬ãžã¹ã¿ãŒã®ã¢ãã¬ã¹ãã©ã€ãã©ãªãŒã«èª€ã£ãŠç»é²ãããŠããããšã§ãã éåžžãããã¯ãåžå Žã«åºåã£ãã°ããã®MKãŸãã¯MKã©ã€ã³ã§çºçããŸãã
- äžéšã®ã¡ãŒã«ãŒã®åšèŸºæ©åšãšé£æºããããã®ã©ã€ãã©ãªã¯ãåšèŸºæ©åšã®ãã¹ãŠã®æ©èœãå®çŸããŠããŸããã ããã¯ç¹ã«TIããã®åŸè³Œå
¥ããLuminary Microã®å Žåã«åœãŠã¯ãŸããŸããã åšèŸºã®åæåãæåã§èšè¿°ããå¿
èŠããããŸããã
- å€ãã®äººã
ã¯ãäŸãåŠç¿ããããšã§MKããã°ã©ãã³ã°ãéå§ããããšã«æ
£ããŠããŸãã æåã«ãMKãå®è£
ã§ãããã®ã決å®ããå¿
èŠããããšæããŸãã ããã¯ãããã¥ã¡ã³ããèªãããšã«ãã£ãŠã®ã¿ç解ã§ããŸãã äœããäŸã«ãªãå Žåãããã¯ããŒããŠã§ã¢ãããããµããŒãããªãããšãæå³ããŸããã ææ°ã®äŸã¯ãPTP STM32ããŒããŠã§ã¢ãµããŒãã§ãã ãã¡ããããããã¯ãŒã¯äžã§äœããèŠã€ããããšãã§ããŸãããããã¯ã¡ãŒã«ãŒã®æšæºã»ããã«ã¯å«ãŸããŠããŸããã
- äžéšã®ã¡ãŒã«ãŒã®ããªãã§ã©ã«ãããã¯ãã©ã€ããŒã¯ãã©ã€ãã©ãªããŒã«ã䜿çšãããã³ç¶æ
ã®åãæ¿ãã«æ倧20ã¯ããã¯ãµã€ã¯ã«ãè²»ããããã»ã©æé©åãããŠããŸããã ããã¯ãäžéšã®ã¿ã¹ã¯ã«ã¯èš±ãããªãèŽ
æ²¢ã§ãã
ç§ã®æçš¿ãèªãã§ãããã¿ããªã®ãããã§ãæåã«æã£ãŠãã以äžã®ããšãããããŸããã
ããªãã®ã³ã¡ã³ããšçæ§çãªæ¹å€ã楜ãã¿ã«ããŠããŸãã èªè ã欲æãæã£ãŠããå Žå-ç§ã¯äžé£ã®èšäºãç¶ããããšããŸãã 誰ãããã€ã©ã€ããã䟡å€ã®ããã¢ã€ãã¢ãæã£ãŠãããããããŸãã-ããããèããŠããããã§ãã