èæ¯

ããžãã¹ãž
ææ°ã®ãã€ã¯ãã³ã³ãããŒã©ã®ã¬ãã¥ãŒãèªãŸãªããã°ãªããªãã£ããªããããªãã¯åæããã§ããã-ãšããããããã¯ééããªãé«æ§èœã®èšé²ãšäœæ¶è²»é»åã®èšé²ã«ã€ããŠæããŠãããã§ãããã ããã¯MKã¡ãŒã«ãŒã®ã¯ã©ãã§ã¯è¯ã圢ã®ã«ãŒã«ã«éããªãããã§ãããããŒã±ã¿ãŒã®ãã³ãã¬ãŒããã¬ãŒãºãæå³ããªãããšã¯èµ·ãããŸãã
ããã¥ã¡ã³ãã«ãããšãEFM32ã®ãšãã«ã®ãŒæ¶è²»ã¯éåžžã«äœããããSilicon Labsã®ãã€ã¯ãã³ã³ãããŒã©ãŒã®ãšãã«ã®ãŒæ¶è²»ããããã¡ã€ã«ãããŠãŒãã£ãªãã£ã䜿çšããŠãå®éã«ããã確èªã§ããŸãã

ç«ã®äžã§ããŠãŒãã£ãªãã£ã®ã¬ãã¥ãŒãšãã®äœ¿çšã«é¢ããå®çšçãªãã³ãã
ããŒããŠã§ã¢ ïŒEFM32WG-STK3800ãããã°ããŒãã
EFM32ãã€ã¯ãã³ã³ãããŒã©ãŒã¯ãARM Cortex-M0 +ãCortex-M3ãããã³Cortex-M4ã³ã¢ã«åºã¥ããŠãããåšèŸºæ©åšã®ã»ãããšå éšã¡ã¢ãªã®éãç°ãªããŸãã ãã€ã¯ãã³ã³ãããŒã©ãŒã®ã·ãªãŒãºããšã«åå¥ã®ãããã°ããŒãããããŸããããã¹ãŠã®ããŒãã¯éåžžã«é¡äŒŒããŠããã42ç±³ãã«ã®äŸ¡æ Œã§è²©å£²ãããŠããŸãã EFM32 Wonder Geckoã³ã³ãããŒã©ãŒçšã®ãããããããŸãã
ãœãããŠã§ã¢éšå ïŒSimplicity Studioãããžã§ã¯ãã®éçºããã³ãããã°çšã®ãã©ãããã©ãŒã ã
ããã¯ãSilicon Labsãã€ã¯ãã³ã³ãããŒã©ãŒçšã®éçºããŒã«ã®ã¢ã°ãªã²ãŒã¿ãŒã®ãããªãã®ã§ãïŒãšããã§ãEFM32ã ãã§ãªããå€ãè¯ãC8051FxxxãZigbeeã¢ãžã¥ãŒã«ãªã©ïŒã IDEïŒgnu ARM eclipseïŒãããã¥ã¡ã³ããããã³äººæ°ã®é«ãEnergy Profilerãå«ãå€æ°ã®ããŸããŸãªè£å©ãŠãŒãã£ãªãã£ããããŸãã Simplicity StudioïŒWindowsãMACãUbuntuïŒã®æ¬æ Œçãªãã£ã¹ããªãã¥ãŒã·ã§ã³ã¯ã silabs.comããç¡æã§ããŠã³ããŒãã§ããŸãã
ã€ã³ã¹ããŒã«çŽåŸã®Simplicity Studioã®ã¡ã€ã³ã¡ãã¥ãŒïŒ

ãããã°ããŒããæ¥ç¶ããåã«ã䜿çšã§ããããŒã«ã¯ã»ãšãã©ãããŸããããèŠãŠåãããšãã§ããŸãïŒå·ŠåŽã«ã¯ãã€ã¯ãã³ã³ãããŒã©ãŒïŒãã¡ããSiLabã®ã¿ïŒã®ãã©ã¡ãŒã¿ãŒæ€çŽ¢ããããå³äžé ã«ã¯Simplicity Studioã«å«ãŸããã³ã³ããŒãã³ãã®æ§æãæ åœãã3ã€ã®ã¢ã€ã³ã³ããããŸãã äžè¬ã«ãããã°ã©ã èªäœã¯æ°ãããŠãŒãã£ãªãã£ã®ãªãªãŒã¹ãšãã®ã³ã³ããŒãã³ãã®æŽæ°ãç£èŠããŸãããæåã§æ§æã§ããŸãã
ããŒãã®æäœãéå§ããã«ã¯ãUSBãä»ããŠã³ã³ãã¥ãŒã¿ãŒã«æ¥ç¶ããããŒãã®é»æºãšããŠãããã°USBãéžæããŸãïŒããããªãŒããã³ã¿ãŒã²ãããã€ã¯ãã³ã³ãããŒã©ãŒã®USBããã®é»åãå©çšå¯èœã§ãïŒã

æ¥ç¶åŸãããŒãã¯ã³ã³ãã¥ãŒã¿ãŒã«ãã£ãŠæ±ºå®ããã察å¿ããäžé£ã®ã³ã³ãããŒã©ãŒïŒEFM32WGxxxïŒçšã®ãã¹ãŠã®ã³ã³ããŒãã³ãã䜿çšå¯èœã«ãªããŸãã

Simplicity Studioã«ã¯å€ãã®äººãããã®ã§ãç¥äººã¯ãã¢ããå§ããã®ãæãç°¡åã§ãã

EFM32WG-STK3800ã®äŸã®1ã€ïŒLCDãã£ã¹ãã¬ã€ãæäœããããã®ç°¡åãªããã°ã©ã ïŒãéžæããããã©ã«ãèšå®ã§å®è¡ããŸãã

ãã€ã¯ãã³ã³ãããŒã©ã§ããã°ã©ã ãèµ·åãããšåæã«ãæ°Žæ¶ã®ãšãã«ã®ãŒæž¬å®ãéå§ãããŸãã ãªã¢ã«ã¿ã€ã ã§ããšãã«ã®ãŒå¯Ÿæéã®ã°ã©ãããããããããŸããããã¯ãããããããã¡ã€ã©ãŒã®æãæãããªéšåã§ãã
ãŸããã°ã©ãã¯ãããã°ã©ã ã®å®è¡äžã®æ¶è²»ã®å€åã®ãã€ããã¯ã¹ã瀺ããŠããŸãã 第äºã«ãã°ã©ãäžã®éžæããããã€ã³ããšéžæãããæéééã«ã€ããŠã枬å®ãããææšã®æ£ç¢ºãªå€ãšå¹³åå€ãå©çšå¯èœã§ãã

*ã¹ã¯ãªãŒã³ã·ã§ããã¯ãå©çšå¯èœãªãã¹ãŠã®ãããã¡ã€ã©ãŒæ©èœãæå¹ã«ãªãç¬éãä¿®æ£ããŸãã ããªããæåã«åçãå§ãããšããåçã¯ããã»ã©ã«ã©ãã«ã«èŠããŸãã
ã°ã©ãã®ããããã¯åæ¢ããã³åéã§ããã°ã©ãã«ã¯æéã¹ã±ãŒã«ã«æ²¿ã£ãã¹ã±ãŒãªã³ã°æ©èœããããåçŽè»žã«æ²¿ã£ãŠç·åœ¢ããã³å¯Ÿæ°ã¹ã±ãŒã«ã®äž¡æ¹ãèšå®ã§ããŸãã 察æ°ç®çã¯äœé»æµã«ã¯äŸ¿å©ãªããŒã«ã§ãããã°ã©ããåçŽã«åçŽã«æ¡å€§çž®å°ããã ãã§ã¯äžååãªå ŽåããããŸãã
ããã€ãã®ä»ã®äŸ¿å©ãªæ©èœãå©çšã§ããŸãïŒå²ã蟌ã¿ãã³ãã©ãŒã®å ¥åïŒå€è²ã®åçŽç¢å°ïŒãšã°ã©ãäžã®é»å§ã¬ãã«ã®è¡šç€ºã枬å®çµæã®Excelãžã®ãšã¯ã¹ããŒããªã©ã
ããããæãããããã®ã¯ããã£ãŒããšå®è¡å¯èœã³ãŒãã®çžé¢é¢ä¿ã§ãã ããã»ããµã³ã¢ããã¬ãŒã¹ããµããŒãããŠããå ŽåïŒCortex-M3ããã³M4ãé©åã§ãïŒãã³ãŒãè¡ã¯Energy Profilerãã£ãŒãã®ä»»æã®ãã€ã³ãããããããŸã-ãã£ãŒããã¯ãªãã¯ãããšãå³åŽã®ãªã¹ãã®è¡ã匷調衚瀺ãããŸãã ãé£ãããåãçãªæ©èœãšæé ã決å®ããããã«ãåã ã®ããã°ã©ã æ©èœã®åäœã®çµ±èšã䜿çšãããŸããã°ã©ãã®äžã§ããããã®éã§æ¶è²»ããããšãã«ã®ãŒã®ååžã確èªã§ããŸãã åé¢æ°ã«ã¯ç¹å®ã®è²ãå²ãåœãŠãããšãã§ããã°ã©ãã®ã©ãã§éå§ããã³çµäºããããæ確ã«ãªããŸãã
èŠããã«ããã®ãã¹ãŠã®çŸããã¯æ¬¡ã®ããã«å®è£ ãããŠããŸã ã
枬å®ã¢ãžã¥ãŒã«ã¯ããããã°ããŒãäžã®ãã€ã¯ãã³ã³ãããŒã©ãŒã®é»æºåè·¯ã«çµã¿èŸŒãŸããŠããŸãã ãããä»ããŠãé»æµå€ãšé»å§å€ãããã³æž¬å®ã¢ãžã¥ãŒã«ã«çµã¿èŸŒãŸããã¿ã€ããŒããã®å€ãã³ã³ãã¥ãŒã¿ãŒã«éä¿¡ãããŸãã åœä»€ã«ãŠã³ã¿ãŒïŒè¡SWOïŒã®å€ãšäžç·ã«ãããŒã¿ã¯ãããã¡ã€ã©ãŒã«ãã£ãŠåŠçããã³è§£éãããŸãã
枬å®éå§ããã®é»æµãé»å§ãããã³æéã«ããããšãã«ã®ãŒæ¶è²»éãšæéã®ã°ã©ããäœæã§ããŸããã³ãã³ãã«ãŠã³ã¿ãŒã®å€ã䜿çšãããšãåãã€ã³ãããœãŒã¹ã³ãŒãã®è¡çªå·ãšãã¡ã€ã«åã«é¢é£ä»ããããšãã§ããŸãã
Energy Profilerã¯ããããžã§ã¯ãããããã°ã¢ãŒãã§ã³ã³ãã€ã«ãããlibelfããã³libdwarfã©ã€ãã©ãªãã³ãŒãã®å¿ èŠãªè¡ã決å®ãããšãã«äœæãããDWARFïŒä»»æã¬ã³ãŒã圢åŒã§ãããã°ïŒåœ¢åŒã®ãããã°ããŒã¿ãå«ã.axfãªããžã§ã¯ããã¡ã€ã«ã䜿çšããŸãã

ç¬èªã®ãããžã§ã¯ãã®ãããã¡ã€ãªã³ã°ã«ã€ããŠ
Simplicity Studioã«çµã¿èŸŒãŸãããã¢ã¯äžèšã§ã¬ãã¥ãŒãããŸããã Energy Profilerã䜿çšããå Žåãèœãšãç©Žãã»ãšãã©ãããŸããã
ãããã£ãŠãç¬èªã®ãããžã§ã¯ãã®ãããã¡ã€ã«ãäœæããã«ã¯ãSimplicity IDEãŠã£ã³ããŠã§æ¬¡ã®æäœãè¡ãå¿ èŠããããŸãã
- SWOTraceSetupïŒïŒãã¬ãŒã¹æ§æé¢æ°ããããžã§ã¯ãã«è¿œå ããã³ã³ãããŒã©ãŒã®åæåæã«åŒã³åºããŸãã
- ã³ã³ãã€ã«åŸãæ°ãããããã¡ã€ã©ãŒæ§æãäœæããŸãã
- Run-> ProfilingConfigurations ...ã¡ãã¥ãŒ
- ARMã®Simplicity Energy Profilerãã¯ãªãã¯ããŸã->æ°èŠ
- å®è¡å¯èœãã£ãŒã«ãã«* .afxãã¡ã€ã«ãæå®ããŸã
- [ãããã¡ã€ã©ãŒ]ã¿ãã®[ã³ãŒãçžé¢ãæå¹ã«ãã]ãã§ãã¯ããã¯ã¹ããªã³ã«ããŸã
SWOTraceSetupïŒïŒ
ãã®æ©èœã¯ã¡ãŒã«ãŒã®ä»»æã®äŸããã«ããªã©ã§èŠã€ããããšãã§ããŸãããããã§ãè¿œå ããŸã
void BSP_TraceSwoSetup(void) { /* Enable GPIO Clock. */ CMU->HFPERCLKEN0 |= CMU_HFPERCLKEN0_GPIO; /* Enable Serial wire output pin */ GPIO->ROUTE |= GPIO_ROUTE_SWOPEN; #if defined(_EFM32_GIANT_FAMILY) || defined(_EFM32_WONDER_FAMILY) || defined(_EFM32_LEOPARD_FAMILY) /* Set location 0 */ GPIO->ROUTE = (GPIO->ROUTE & ~(_GPIO_ROUTE_SWLOCATION_MASK)) | GPIO_ROUTE_SWLOCATION_LOC0; /* Enable output on pin - GPIO Port F, Pin 2 */ GPIO->P[5].MODEL &= ~(_GPIO_P_MODEL_MODE2_MASK); GPIO->P[5].MODEL |= GPIO_P_MODEL_MODE2_PUSHPULL; #else /* Set location 1 */ GPIO->ROUTE = (GPIO->ROUTE & ~(_GPIO_ROUTE_SWLOCATION_MASK)) | GPIO_ROUTE_SWLOCATION_LOC1; /* Enable output on pin */ GPIO->P[2].MODEH &= ~(_GPIO_P_MODEH_MODE15_MASK); GPIO->P[2].MODEH |= GPIO_P_MODEH_MODE15_PUSHPULL; #endif /* Enable debug clock AUXHFRCO */ CMU->OSCENCMD = CMU_OSCENCMD_AUXHFRCOEN; while(!(CMU->STATUS & CMU_STATUS_AUXHFRCORDY)); /* Enable trace in core debug */ CoreDebug->DHCSR |= 1; CoreDebug->DEMCR |= CoreDebug_DEMCR_TRCENA_Msk; /* Enable PC and IRQ sampling output */ DWT->CTRL = 0x400113FF; /* Set TPIU prescaler to 16. */ TPI->ACPR = 0xf; /* Set protocol to NRZ */ TPI->SPPR = 2; /* Disable continuous formatting */ TPI->FFCR = 0x100; /* Unlock ITM and output data */ ITM->LAR = 0xC5ACCE55; ITM->TCR = 0x10009; }
ãã®åŸãã¯ã³ã¯ãªãã¯ã§ãããã¡ã€ãªã³ã°ãéå§ã§ããŸãïŒãããžã§ã¯ãã®äºåã®ã¢ã»ã³ããªãšã³ã³ãã€ã«ãããã³ãã€ã¯ãã³ã³ãããŒã©ãŒã®ãã¡ãŒã ãŠã§ã¢ã䜿çšïŒã

ãŠãŒãã£ãªãã£ã¯ãœãŒã¹ã³ãŒããã¡ã€ã«ãžã®çµ¶å¯Ÿãã¹ã䜿çšãããããåãããã¡ã€ãªã³ã°ã®åã«ãããžã§ã¯ããã³ã³ãã€ã«ããŠã害ãé¿ããããšããå§ãããŸãã
ãã¬ãŒã¹ã®ã»ããã¢ããã«ã€ããŠèšãã°ãè£å©AUXHFRCO RCãžã§ãã¬ãŒã¿ãŒã䜿çšãããããšãèŠããŠããå¿ èŠããããŸãã çè«çã«ã¯ããã¬ãŒã¹èšå®æ©èœã®å®è¡æã«èšå®ããã³èµ·åãããŸããããã®è£å©ãžã§ãã¬ãŒã¿ãŒããªãã«ãªãããã£ãŒãã¹ãªãŒããã¢ãŒãããã€ã¯ãã³ã³ãããŒã©ãŒãé »ç¹ã«äœ¿çšãããšæ³å®ãããå Žåãç°ãªãã°ãªãããçºçããå¯èœæ§ããããŸãã EM2以äžã®åäœã¢ãŒãã䜿çšããå Žåã¯ãAUXHFRCOã®é»åãæåã§èšå®ããã®ãçã«ããªã£ãŠããŸãã
EMU -> CTRL |= _EMU_CTRL_EMVREG_FULL;
SWOã©ã€ã³ãä»ããŠã³ãã³ãã«ãŠã³ã¿ãŒã®å€ãéä¿¡ããè£å©ãžã§ãã¬ãŒã¿ãŒã¯ãæ¶è²»é»åãçŽ400ÎŒAå¢å ããã枬å®ãã£ãã«ã«ããããªãã€ãºãçºçãããŸãã ããã°ã©ã ã®æé©åãå®äºããæ£ç¢ºãªæž¬å®çµæãååŸãããå Žåã¯ã枬å®å€ãšå®è¡å¯èœã³ãŒãã®çžé¢ãç¡å¹ã«ããå¿ èŠããããŸãïŒã«ãŒãã«ãã¬ãŒã¹ã®èªã¿åãïŒã SWOTraceSetupïŒïŒé¢æ°ã®åŒã³åºããåé€ããŸãã
å ã®ã¿ãŒã²ããããŒãã®ãããã¡ã€ãªã³ã°ãå®è¡ã§ããŸãããã®å ŽåãSiLabsãã©ã³ãããŒãã¯ãã¿ãŒã²ããããŒããšã³ã³ãã¥ãŒã¿ãŒéã®æž¬å®ã¢ãžã¥ãŒã«ãšããŠæ©èœããŸãã ãã®ããã«å¿ èŠãªãã®ïŒ
- ã¹ã¿ãŒã¿ãŒãããã®VMCUã©ã€ã³ããã¿ãŒã²ããããŒãã«é»åãäŸçµŠããã¿ãŒã²ãããã€ã¯ãã³ã³ãããŒã©ãŒãšãã©ã³ãããŒãã®SWOãã³ãæ¥ç¶ããŸãã
- ããŒãã®åäœã¢ãŒããå€æŽãã-ããŒãäžã«ãããã€ã¯ãã³ã³ãããŒã©ãŒã®ãããã°ã¢ãŒãããå€éšãããã¬ãŒã¢ãŒãã§åäœããããã«ããŸãã ã»ããã¢ããã¯ãSimplicity Studioã®äžéšã§ããå¥ã®ãŠãŒãã£ãªãã£-ããããããŒãžã£ãŒã§å®è¡ãããŸãã
ããããããŒãžã£ãŒ