
ããã«ã¡ã¯ã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 <-> TMS
TRSTã¯åããã£ãã«ã®ä»»æã®ããªãŒåºåã«æ¥ç¶ã§ããŸããç§ã®å Žåã¯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.cfginterface 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ã¢ããªã±ãŒã·ã§ã³ããŒã