¥È¥Ã¥× °ìÍ÷ ¸¡º÷ ¥Ø¥ë¥× RSS ¥í¥°¥¤¥ó

XMOS ¤Î XCORE ¤Ç¤¢¤½¤Ö (2014/12)¤ÎÊѹ¹ÅÀ

  • Äɲ䵤줿¹Ô¤Ï¤³¤Î¤è¤¦¤Ëɽ¼¨¤µ¤ì¤Þ¤¹¡£
  • ºï½ü¤µ¤ì¤¿¹Ô¤Ï¤³¤Î¤è¤¦¤Ëɽ¼¨¤µ¤ì¤Þ¤¹¡£
{{category ÅŻҹ©ºî}}

!!!XMOS ¤Î XS1-G4,L1 ¤Ç¤¢¤½¤Ö - ¤½¤Î£·
!!!XMOS ¤Î XCORE ¤Ç¤¢¤¾¤Ö

!!¥Æ¥¹¥È´ðÈÄ XC-1,XC-2,XK-1,XC-1A ¤Ê¤É¤ÇÍ·¤ó¤Çµ¤¤¬¤Ä¤¤¤¿¤³¤È¤Î¥á¥â¤ò½ñ¤¤¤Æ¤¤¤­¤Þ¤¹
!!¤·¤Ð¤é¤¯¤´¤Ö¤µ¤¿¤·¤Æ¤¤¤¿ XCORE(XS1) ´ØÏ¢¤ÎÏÃÂê¤Ç¤¹¡£

!!!XTAG2 ¥¢¥À¥×¥¿¤ÇÆȼ«¥Õ¥¡¡¼¥à¥¦¥§¥¢¤ò¼Â¹Ô¤¹¤ë(2012/10)
!!!Timed port output ¤Î¥­¥ã¥ó¥»¥ë(2014/12)

XMOS ½ãÀµ¤Î XTAG2 ¥Ç¥Ð¥Ã¥°¥¢¥À¥×¥¿¤Ï¡¢¼«¿È¤Ç¤Ï¥Ç¥Ð¥Ã¥°ÍѤΥե¡¡¼¥à¥¦¥§¥¢¤ò»ý¤¿¤º¡¢PC ¤Ø¤Î USB Àܳ¸å¤Ë¥Û¥¹¥È¤«¤é¥Õ¥¡¡¼¥à¥¦¥§¥¢¤òžÁ÷¤¹¤ë(¤¿¤È¤¨¤Ð xrun ¥³¥Þ¥ó¥É¤Î¼Â¹Ô)¤³¤È¤Ë¤è¤Ã¤ÆJTAG¥Ç¥Ð¥Ã¥¬¤Îµ¡Ç½¤ò¼Â¸½¤·¤Æ¤¤¤Þ¤¹¡£
CLRPT Ì¿Îá¤Ç²Äǽ¤À¤½¤¦¤Ç¤¹¡£

{{ref_image XMOS_XTAG2.jpg}}
 asm volatile("clrpt res[%0]"::"r"(portname));

¤Ä¤Þ¤ê PC ¤Ë»É¤·¤¿Ãʳ¬¤Ç¤Ï OTP ¤«¤é¥Ö¡¼¥È¥í¡¼¥À¤¬µ¯Æ°¤·¤¿¾õÂ֤ˤʤäƤ¤¤ë¤È¤¤¤¦¤³¤È¤é¤·¤¤¤Ç¤¹¡£
¸µ¥Í¥¿
*[XCORE Exchange:http://www.xcore.com/forum/viewtopic.php?f=7&t=3102]

¤³¤Î¥Ö¡¼¥È¥í¡¼¥À¤Ø¤Î¥¢¥¯¥»¥¹¤Ç¤¹¤¬¡¢XTAG2 ¤Îɸ½à¥É¥é¥¤¥Ð¤Ï libusb ¤ò»È¤Ã¤Æ¤¤¤ë¤Î¤Ç¡¢libusb ¤ò»ÈÍѤ·¤¿¥Ö¡¼¥È¥í¡¼¥À¤òºîÀ®¤¹¤ë¤³¤È¤Ç¡¢Æȼ«¥³¡¼¥É¤ò¼Â¹Ô¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

Application Note: Dynamic loading of USB Binaries onto the XTAG2
http://www.xmos.com/published/dynamic-code-loader-xtag-2?version=latest

¤Û¤Ü¾åµ­¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥Î¡¼¥È¤ÎÄ̤ê¤Ë¼Â¹Ô¤¹¤ë¤³¤È¤Ç¼Â¸½²Äǽ¤Ê¤Î¤Ç¤¹¤¬¡¢¥Ï¥Þ¤Ã¤¿¥Ý¥¤¥ó¥È¤¬¤¢¤ë¤Î¤Ç¥á¥â¡£

¤Þ¤º¡¢¥Ö¡¼¥È¥í¡¼¥À¤Ë¤¿¤¤¤·¤Æ¤¢¤é¤«¤¸¤á¥Ó¥ë¥ÉºÑ¤ß¤ÎXTAG2 ÍÑ¥ª¥ê¥¸¥Ê¥ë¥Õ¥¡¡¼¥à¥¦¥§¥¢¤òžÁ÷¤¹¤ë¤¿¤á¤Î PC ¦¤Î¥³¡¼¥É¤¬É¬ÍפǤ¹¡£

¤³¤ì¤Ï¾åµ­¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥Î¡¼¥È¤Ë¤¢¤ë¤è¤¦¤Ë¡¢ github ¤Ç proj_xtag2 ¤«¤é°ì¼°¤â¤Ã¤Æ¤­¤¿Ãæ¤Î run_dyanmic_xe ¥Õ¥©¥ë¥À¤Ë¤¢¤ë¥³¡¼¥É¤¬¤½¤ì¤Ç¤¹¡£

Windows ´Ä¶­¤Î¾ì¹ç¤Ë¤Ï¡¢libusb ¤«¤é¥¹¥¿¥Ö(.lib)¤È(.h)¤ò¼è¤Ã¤Æ¤¯¤ì¤Ð¡¢VisualStudio2012 Express(̵ÎÁ¡¢ÅÐÏ¿Í×ÈÇ) ¤Ç Win32 ¥³¥ó¥½¡¼¥ë¥¢¥×¥ê¤È¤·¤Æ¤¹¤ó¤Ê¤ê¥Ó¥ë¥É¡¢¼Â¹Ô¤¬²Äǽ¤Ç¡¢²¿¤ÎÌäÂê¤â¤¢¤ê¤Þ¤»¤ó¡£
¡Ê¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë̾ usb.h ¤òÊѤ¨¤ëɬÍפ¬¤¢¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡Ë

app_l1_hid.h ¤È¤¤¤¦Ì¾Á°¤Î¥Õ¥¡¥¤¥ëÆâ¤Ç int burnData [] ¤È¤¤¤¦ÇÛÎó¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤â¤Î¤¬¥Ö¡¼¥È¥í¡¼¥À¤ËÍ¿¤¨¤ë¥Ð¥¤¥Ê¥ê¤Ç¡¢runDynamic ¤Ë¤Ï¤¸¤á¤«¤é´Þ¤Þ¤ì¤ë¤â¤Î¤ò¤½¤Î¤Þ¤Þ»ÈÍѤ¹¤ì¤Ð¡¢HID ¥Þ¥¦¥¹¤È¤·¤ÆÆ°ºî¤¹¤ë¤È»×¤¤¤Þ¤¹¡£

¤µ¤Æ¡¢¥ª¥ê¥¸¥Ê¥ë¤Î app_l1_hid.h ¤òÀ¸À®¤¹¤ë¤¿¤á¤Î¥¹¥¯¥ê¥×¥ÈÎã¤ËÌäÂ꤬¤¢¤ê¤Þ¤¹¡£

¤Þ¤º¡¢od ¤È awk ¤¬É¬ÍפǤ¹¡£¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥Î¡¼¥È¤Ç¤Ï OS X ¤Ç¤Î³«È¯¤ò¿ä¾©¤·¤Æ¤¤¤Þ¤¹¤¬¡¢Windows ¤Ç¤¢¤ì¤ÐCygwin ¤Ê¤É¤«¤é¤Î¼Â¹Ô¤¬É¬ÍפǤ¹¡£

¡Ê¤³¤Î¥Ú¡¼¥¸¤ò¸«¤é¤ì¤Æ¤¤¤ëÊý¤Ê¤é¤Ê¤ó¤Ç¤â¤Ê¤¤¤³¤È¤«¤È»×¤¤¤Þ¤¹¡£¡Ë

Quartus(Altera) ¤Î¥³¥Þ¥ó¥É¥é¥¤¥ó¤â Cygwin ¤Ê¤Î¤Ç»ä¤Ï¤³¤ì¤ò»È¤¤¤Þ¤·¤¿¡£

¤¹¤ó¤Ê¤ê¤¤¤¯¤«¤È»×¤¤¤­¤ä¡¢

myfirmware.xe ¤ò¾åµ­¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥Î¡¼¥È¤Ë¤·¤¿¤¬¤Ã¤ÆÊÑ´¹
 %xobjdump --split --strip myfirmware.xe
 %od -t x4 image_n0c0.bin | awk 'BEGIN { print " int burnData [] = {"} END { print"};"} {for (i =2;i <= NF;i ++) { print " 0x" $i ","}}' > app_l1_hid.h

¤¹¤ë¤È¡¢²¿Åټ¹Ԥ·¤Æ¤âžÁ÷¤¹¤ë¤È¥Ç¥Ð¥¤¥¹¥Þ¥Í¡¼¥¸¥ã¤«¤é XTAG-2 ¤¬¾Ã¤¨¤Æ¤·¤Þ¤¤¤Þ¤¹¡£

¤¦¡¼¤ó¤¦¡¼¤ó¤È¤¦¤Ê¤Ã¤Æ¡¢ÌäÂê¤ò¸«¤Ä¤±¤Þ¤·¤¿¡£
¤É¤¦¤â od ¤Ë -v ¥ª¥×¥·¥ç¥ó¤¬É¬Íפ餷¤¤¤Ç¤¹¡£

 %od -t x4 -v image_n0c0.bin | awk 'BEGIN { print " int burnData [] = {"} END { print"};"} {for (i =2;i <= NF;i ++) { print " 0x" $i ","}}' > app_l1_hid.h

¤³¤ì¤ÇÆ°ºî¤·¤Þ¤·¤¿¡£

----

¡ã¡ãXMOS ¤Î XS1-G4,L1 ¤Ç¤¢¤½¤Ö - ¤½¤Î£¶
¡ã¡ãXMOS ¤Î XS1-G4,L1 ¤Ç¤¢¤½¤Ö - ¤½¤Î£·