
ããã«ã¡ã¯ãHabrã®èŠªæãªãèªè ã
çãäŒæ©ã®åŸãIntel GalileoãªãŒãã³ããŒããŠã§ã¢ãã©ãããã©ãŒã ã§ã®UEFIã³ã³ããŒãã³ãã®éçºãšãããã°ã«é¢ããã¡ã¢ïŒ first ã second ïŒãå ¬éãç¶ããŠããŸãã 第3éšã§ã¯ãFT2232HããŒã¹ã®JTAGãããã¬ãŒãGalileoã«æ¥ç¶ãããã®ãããã°ç°å¢ãã»ããã¢ããããããšã«ã€ããŠèª¬æããŸãã

ãšã³ããªãŒãšå 責äºé
ãã§ã«ç¢ºç«ãããäŒçµ±ã«ããã°ã以äžã®ãã¹ãŠã®æ å ±ãèªåã®å±éºãšãªã¹ã¯ã§äœ¿çšããããšã«èšåããå¿ èŠããããŸããèè ã¯ãåç· åœ¹äŒã®ããã©ãŒãã³ã¹ãæéãæ°åãããã³/ãŸãã¯äººé¡ãžã®ä¿¡é Œã倱ãå¯èœæ§ã«ã€ããŠè²¬ä»»ãè² ããŸããã èšèŒãããŠãããã®ã¯ãã¹ãŠãªãŒãã³ãœãŒã¹ããåŒçšãããŠããããã®ãªã¹ãã¯ãã®èšäºã®æåŸã«èšèŒãããŠããŸãããã®åºçç©ã¯ãç§ã®åŽã®NDAã®éåãšã¯èŠãªãããŸããã
åºçºç¹
çŸæç¹ã§ã¯ãYocto Linuxã®ãã¡ãŒã ãŠã§ã¢ãšã€ã¡ãŒãžãã³ã³ãã€ã«ããIntel GalileoããŒããæ¢ã«ããããã€ã§ãåå®è¡ã§ãããšæ³å®ããŠããŸãã èšäºã®ãã®éšåã§ã¯ãã¬ãªã¬ãªã®ãœãããŠã§ã¢ã®ã¢ã»ã³ããªã«ã€ããŠã¯è§ŠããŸãããå¿ èŠã§ããã°ã æåŸã®éšåãèªãã§ãã ããããŸããOpenOCDãšäºææ§ã®ãããããã¬ãŒãããããšãæå³ããŸããäœããã-FTDI FTxx32Hã·ãªãŒãºãããã«åºã¥ããŠããŸãã ãããã¯ãIntelãšã³ãžãã¢ãGalileoã®ãããã°ããŒã«ãäœæããã³ãã¹ãããããã«äœ¿çšãããã®ã§ãã ä»ã®ãããã¬ãŒãåäœããªãããšãä¿èšŒã§ããŸãã-ç§ã¯ãã§ãã¯ããŸããã§ããã ãã®èšäºã§ã¯ã FT2232Hãã¬ã€ã¯ã¢ãŠãããŒãããããã¬ãšããŠäœ¿çšããŸã ããã㯠ãçŸããã±ãŒã¹ãšGalileoã§ã®ãããã°ã«ã¯äžèŠãªããžãã¯ã¬ãã«ã·ãããããããªãå Žåã®ã¿ãåããããäžã®ãã¢ãã«ãããããã¬ãšã¯ç°ãªããŸãã

ééšå
éã®éšåã§ã¯ããã¹ãŠãéåžžã«ç°¡åã§ã-å¿ èŠãªã®ã¯ãGalileoã®JTAGã³ãã¯ã¿ã®æ¥ç¹ãå¿ èŠãªFT2232H端åã«æ£ããæ¥ç¶ããã ãã§ããFTxx32Hã·ãªãŒãºãããã®åºåã«ã¯xyBUSzã®ããŒã¯ãä»ããŠããŸããxã®ä»£ããã«ãã£ãã«ã®æå®ïŒAãBãCããŸãã¯DïŒãyã®ä»£ããã«åãã£ãã«ã®æåã®ïŒDïŒãŸãã¯2çªç®ïŒCïŒã®ç«¯åã»ããã®æå®ãzã®ä»£ããã«åºåçªå·ïŒæåã®çµè«ã¯0ã7ã2çªç®ã®çµè«ã¯0ã9ïŒã
JTAGã䜿çšããã«ã¯ã次ã®ããã«æ¥ç¶ããå¿ èŠããããŸãã
xDBUS0 <-> TCK xDBUS1 <-> TDI xDBUS2 <-> TDO xDBUS3 <-> TMSTRSTã¯åããã£ãã«ã®ä»»æã®ããªãŒåºåã«æ¥ç¶ã§ããŸããç§ã®å Žåã¯xCBUS0ã§ãããä»ã®ãã®ã䜿çšã§ããŸãããOpenOCDæ§æã§å¯Ÿå¿ããå€æŽãè¡ãå¿ èŠããããŸãã

ãœãããŠã§ã¢éš
Intel System Studioãå ¥æããŸã
ããããç¹ã«sudo apt-get install openocdãå®è¡ããæ¹æ³ããªãã10ç§åŸã«ãããã¬ãŒã®æ§æã®æžã蟌ã¿ãéå§ãã WindowsãŠãŒã¶ãŒã®å Žåããã¹ãŠãå°ãè€éã«ãªããŸãã Intelã®äººã ã¯ãããç¥ã£ãŠãããããOpenOCDãšGDBãIntel System Studio 2015 Betaã®é åžãããã«å«ããŸããã ç»é²åŸããã¡ãããããŠã³ããŒãã§ããŸã ã ãŸããGDBã®GUIãšããŠæ©èœããIntel System Debuggerããããã³ã³ãœãŒã«ããçŽæ¥æäœããã®ã«ååãªTaoããŸã ç解ããŠããªã人åãã«èšèšãããŠããŸãã ããªãã®è¬èãªå¬äœ¿ã¯ãã§ã«ãã®éã«ä¹ãåºããŸããããããã¯é£ããããšã§ãããGUIã䜿çšããèªæã¯çŽ æŽããããã®ã§ããIntelã¯ããã»ã©åã«UEFIãããã°ã®ãµããŒããè¿œå ããªãã£ãããã§ãã ãã®çµæãç§ã¯å±æããããªãã«å±æããããšãææ¡ããŸããISSãç»é²ãããŠã³ããŒããã€ã³ã¹ããŒã«ããåŸãããã€ãã®è¿œå æé ãå®è¡ããå¿ èŠããããŸãïŒãããã¬ãŒã®æ§æãèšè¿°ããïŒããã©ã«ãã§ã¯ã TinCanTools FLYSWATTER2ãšOlimex ARM-USB-OCD-Hã®ã¿ã®æ§æããããŸãïŒãCã³ãŒãããããã°ã§ããããã«ãããã°ã·ã³ãã«ãæ¥ç¶ããŸããã¢ã»ã³ãã©ãŒã§ã¯ãããŸããã Windowsã§ã¯ãOpenOCDãæ€åºã§ããããã«ãæšæºã®FTDIãã©ã€ããŒã§ã¯ãªããéžæãããããã¬ãŒãã£ãã«çšã®libusbKãã©ã€ããŒãã€ã³ã¹ããŒã«ããå¿ èŠããããŸãã å§ããŸãããã
OpenOCDã®æ§æãäœæããŸã
OpenOCDã®ã»ããã¢ããã¯éåžžã2ã€ã®éšåã§æ§æãããŸãïŒãããã¬ãŒã®æ§æã®æžã蟌ã¿ãšãããã°å¯Ÿè±¡ã®ããŒãã åªããInteléçºè ã¯2çªç®ããç§ãã¡ãæã£ãŠãããŸããã System Studioãã€ã³ã¹ããŒã«ãããã£ã¬ã¯ããªã«ç§»åããããããdebugger \ openocd \ scripts \ interface \ ftdiã«ç§»åã ããã¡ã€ã«olimex-arm-usb-ocd-h.cfgãã³ããŒããŠãã³ããŒdebugger.cfgã«ååãä»ããŸã ã äœæãããã¡ã€ã«ããæ°ã«å ¥ãã®ãšãã£ã¿ãŒã§éã ã ftdi_vid_pidè¡ã®ftdi_device_desc ã ftdi_layout_signal nSRST ã ftdi_layout_signal LEDã®è¡ãåé€ãããããã¬ãŒã®VIDãšPIDãå€ã«å€æŽããŸãã ãã£ãã«BãCããŸãã¯Dã䜿çšããå Žåã¯ãããããè¡ftdi_channel 1 ã ftdi_channel 2ãŸãã¯ftdi_channel 3ãè¿œå ããŸãã ãããã¬ã®å€æŽãšæ§æãä¿åããæºåãã§ããŸãããftdi_layout_initè¡ã®ããžãã¯ãã³ããŒã®æå³ãç¥ãããå Žå㯠ãè¿œå ã®ä¿¡å·ãèšå®ããããxCBUS0ããå¥ã®åºåã«TRSTã転éããŸã ã ããã¥ã¡ã³ããžãããã ã
FT2232Hã®ãã¬ãŒã¯ã¢ãŠãããŒãçšã®ready.debugger.cfg
interface ftdi ftdi_vid_pid 0x0403 0x6010 ftdi_channel 0 ftdi_layout_init 0x0c08 0x0f1b ftdi_layout_signal nTRST -data 0x0100 -noe 0x0400
libusbKãã©ã€ããŒãã€ã³ã¹ããŒã«ãã
LinuxãŠãŒã¶ãŒã¯ãã®æé ãå®å šã«ã¹ãããã§ããŸãã æ£ãããã©ã€ããŒãæ¢ã«ã€ã³ã¹ããŒã«ãããŠããŸãã WindowsãŠãŒã¶ãŒã¯ãæšæºã®ãã©ã€ããŒã®ä»£ããã«åè¿°ã®ãã©ã€ããŒãã€ã³ã¹ããŒã«ããå¿ èŠããããŸãã ãããè¡ãã«ã¯ããã€ãã®æ¹æ³ããããŸãããæãç°¡åãªæ¹æ³ã¯ã ZadigãŠãŒãã£ãªãã£ã䜿çšããããšã§ãã ææ°ããŒãžã§ã³ãããŠã³ããŒãããŠå®è¡ãã[ ãªãã·ã§ã³ ]ã¡ãã¥ãŒã®[ ãã¹ãŠã®ããã€ã¹ãäžèŠ§è¡šç€º ]ãã§ãã¯ããã¯ã¹ããªã³ã«ãããªã¹ãããããã€ã¹ãéžæãããã©ã€ããŒãšããŠlibusbKãéžæãã[ãã©ã€ããŒã®çœ®æ ]ãã¿ã³ãã¯ãªãã¯ããŸãããã¹ãŠãæ£ããè¡ããããšãããã°ã©ã ãŠã£ã³ããŠã¯æ¬¡ã®ããã«ãªããŸãã

OpenOCDã®åäœç¢ºèª
次ã«ããããã¬ãŒãæ£ããæ¥ç¶ãããOpenOCDãããã䜿çšããŠJTAGçµç±ã§Galileoã«ã¢ã¯ã»ã¹ã§ããããšã確èªããå¿ èŠããããŸãã ãããè¡ãã«ã¯ãopenocdãå®è¡ããŠããããã¬ãŒïŒæåã®æé ã§äœæãããdebugger.cfgïŒããã³ããŒãïŒISSããã±ãŒãžã«å«ãŸããïŒã®æ§æãã¡ã€ã«ããã©ã¡ãŒã¿ãŒãšããŠæå®ããå¿ èŠããããŸãã ãããè¡ãã«ã¯ã管çè ããã³ãã³ãã©ã€ã³ãå®è¡ããçŸåšã®ãã£ã¬ã¯ããªãdebugger \ openocd \ binã«å€æŽããããããã³ãã³ããå®è¡ããŸãopenocd -f .. \ scripts \ intefrace \ ftdi \ debugger.h -f .. \ scripts \ board \ quark_x10xx_board.cfgãã¹ãŠãæ£ããè¡ã£ãå Žåãã³ãã³ãã¯ããã以äžãåºåããŸãã
Info : clock speed 4000 kHz Info : JTAG tap: quark_x10xx.cltap tap/device found: 0x0e681013 (mfg: 0x009, part: 0xe681, ver: 0x0) enabling core tap Info : JTAG tap: quark_x10xx.cpu enabled
ããªãã代ããã«æã£ãŠããå Žå
Error: libusb_open() failed with LIBUSB_ERROR_NOT_SUPPORTED
ããã¯ããã©ã€ããŒãŸãã¯ãããã¬ãŒã®æ§æã«åé¡ãããããšãæå³ããŸãã
ãããã°ã·ã³ãã«ãååŸããŸã
åã®ããŒãã§èª¬æããGalileoã®ãã¡ãŒã ãŠã§ã¢ã¢ã»ã³ããªãã¡ã€ã³ã·ã¹ãã ã§å®è¡ãããå Žåããã®æé ãã¹ãããã§ããŸãã ç§ã«ãšã£ãŠã¯ãä»®æ³ãã·ã³ã§çºçããããããœãŒã¹ããŒã¹ã®ãããã°ã§ã¯ããã¡ãŒã ãŠã§ã¢ã®ãœãŒã¹ã³ãŒããšãããã°æ å ±ãå«ããã¡ã€ã«ãååŸããå¿ èŠããããŸãããã£ã¬ã¯ããªQuark_EDKII_vX.YZãããŒã ãã£ã¬ã¯ããªããã¡ã€ã³OSã®ãã¹ã¯ãããäžã®VMã«ã³ããŒãã xdb_remoteã¹ã¯ãªããã䜿çšããŠIntel Debuggerãèµ·åããŸãïŒWindowsã§ã¯ããªã³ã¯ã¯ã¡ãã¥ãŒStart-> ISS-> Debugger Startup-> Quark SoCã«ãããŸã ïŒã Options-ãŠã£ã³ããŠãéããŸã>ãœãŒã¹ãã£ã¬ã¯ããª... ãæåã®ã¿ãã§ã«ãŒã«ãäœæããã³ããŒãããã£ã¬ã¯ããªãžã®å€ããã¹ãæ°ãããã®ã«çœ®ãæããŸããç§ã®å Žåã¯ã\ home \ congatec \ Galileoã->ãCïŒ\ Users \ Nikolaj \ Desktopãã2çªç®ã®ã¿ãåããã£ã¬ã¯ããªããœãŒã¹ãã£ã¬ã¯ããªãªã¹ãã«è¿œå ããŸãã ãããã®ã¢ã¯ã·ã§ã³ã¯äž¡æ¹ãšãããããã¬ãŒããããã°ãããã¢ãžã¥ãŒã«ã®ãœãŒã¹ã³ãŒããåå¥ã«èŠã€ããã®ã«åœ¹ç«ã¡ãŸãã
ã¬ãªã¬ãªã«æ¥ç¶
äžèšã®èª¬æã«åŸã£ãŠOpenOCDãšIntelãããã¬ãŒãèµ·åããGalileoã§[ãªã»ãã]ãã¯ãªãã¯ããŠããããããã¬ãŒãŠã£ã³ããŠã®[æ¥ç¶]ãã¿ã³ãã¯ãªãã¯ããŸãã ãããã¬ãŒã®æ¥ç¶æã«åæ¢ããã¢ãžã¥ãŒã«ã®ãªã¹ãã[ã¢ã»ã³ãã©ãŒ]ãŠã£ã³ããŠã«è¡šç€ºãããå Žåã¯ãåé¡ãããŸãããããŒããŠã§ã¢ãããã°ãç¶è¡ã§ããŸãã åã®æé ã§ãšã©ãŒããããã©ããã確èªããã«ã¯ãDXEãã§ãŒãºïŒããŒãã®åèµ·ååŸ3ã5ç§ïŒã§åæ¢ããxdb>ããã³ããã§efi "setsuffix .debug"ããã³efi loadthisã³ãã³ããå ¥åããŸãã ãã¹ãŠãæ£ããè¡ãããå Žåããããã°ã·ã³ãã«ã¯æ£åžžã«ããŒãããããããã¬ã¯[ã¢ã»ã³ãã©]ã¿ããããœãŒã¹ãšãã£ã¿ã«ç§»åããŸãã loadthisãžã®å¿çãšããŠãã·ã¹ãã ããŒãã«ãèŠã€ãããŸããããšããã¡ãã»ãŒãžã衚瀺ãããå Žåã¯ãå°ãé ããŠãŸãã¯å°ãæ©ãå®è¡ãåæ¢ããŠã¿ãŠãã ããã
çµè«ãšèšç»
èšäºã®æ¬¡ã®éšåã§ã¯ãã·ã³ãã«ãªDXEãã©ã€ããŒãäœæãããã¡ãŒã ãŠã§ã¢ã®ã¯ã€ãã¯ã¢ã»ã³ããªãæºåãããã®èšäºã§æºåããIntelãããã¬ãŒãšä»ã®ãããã°ããŒã«ã®äž¡æ¹ã䜿çšããŠãããã°ãè©Šã¿ãŸãã ãæž èŽããããšãããããŸããã次ã®ããŒãã§ãäŒãããŸããããPS芪æãªãUFOãå€åä»ãããªãã¯ãããã¡ã€ã«UEFIãããè¿œå ã§ããŸããïŒ ãšãŠãã¯ãŒã«ã ããã

æåŠ
FTDI USBé«éããã€ã¹ãšJTAG TAPã®ã€ã³ã¿ãŒãã§ãŒã¹| FTDIã¢ããªã±ãŒã·ã§ã³ããŒãã¢ããã¿ãŒæ§æã®ãããã°| OpenOCDããã¥ã¡ã³ã
Intel Quark SoC X1000ã§OpenOCD / GDB / Eclipseã䜿çšãããœãŒã¹ã¬ãã«ã®ãããã°| Intelã¢ããªã±ãŒã·ã§ã³ããŒã