[ÅŻҹ©ºî]
ÌäÂêÅÀ
¡¦9.9.1 ¤Ç xflash ¤ÎÆâÉô¥¨¥é¡¼¤Ç¾Æ¤±¤Ê¤«¤Ã¤¿¥½¡¼¥¹¡ÊXK-1¤ò£²ÂæÀܳ¤·¤Æ¤ª¸ß¤¤¤ËÄÌ¿®¡Ë¤ÏÀµ¾ï¤Ë¾Æ¤±¤ë¤è¤¦¤Ë¸«¤¨¤ë¤¬¡¢¥Ö¡¼¥È¤·¤Ê¤«¤Ã¤¿¡£¡Êxrun ¤Ç¤Î¼Â¹Ô¤Ï²Äǽ¡Ë
¥µ¥Ý¡¼¥È¤«¤é¾ðÊó¤ò¤¤¤¿¤À¤¤Þ¤·¤¿¡£
¡¦10.4.2 ¤Ç¤âÁ°¤Î¥³¡¼¥É¤ÏÀµ¾ï¤Ë¥Ö¡¼¥È¤·¤Þ¤»¤ó(xrun ¤Ç¤ÏÆ°ºî¤¹¤ë¡Ë¡£
¡¦¤³¤ì¤Ï¼¡´ü¥ê¥ê¡¼¥¹¡ÊÁᤱ¤ì¤Ð 2011/2 Ëö¡Ë¤Ç½¤Àµ¤µ¤ì¤ë¸«¹þ¤ß¡£¤½¤ì¤Þ¤Ç¤Ï¡¢£²ÂæÏ¢·ë¤Ç¤¢¤ì¤Ð¡¢°Ê²¼¤Î¼ê½ç¤Ç¥¹¥¿¥ó¥É¥¢¥í¥óÆ°ºî²Äǽ¤È¤Î¤³¤È¤Ç¡¢Æ°ºî¤ò³Îǧ¤·¤Þ¤·¤¿¡£
¼ÂºÝ¤Ë¤Ï¡¢£²¤Ä FLASH ¤ò¾Æ¤¯¤Î¤Ç¤Ê¤¯¡¢ÆóÂæ¤Î XK-1 ¤ò[XK-1(A)],[XK-1(B)] ¤È¤·¤¿¾ì¹ç¡¢[XK-1(A)] ¦¤ò SPI ¥Ö¡¼¥È¡¢[XK-1(B)] ¦¤ò XLINK ¥Ö¡¼¥È¤È¤¹¤ëÊýË¡¤Ë¤Ê¤ê¤Þ¤¹¡£
[XK-1(A)]--(XLINK)--[XK-1(B) boot from XLINK] | [SPIROM]
¤Þ¤º¡¢XLINK ¤«¤é¥Ö¡¼¥È¤µ¤»¤ë¤¿¤á¤Ë [XK-1(B)] ¤Ë°Ê²¼¤Î¥³¡¼¥É¤ò¥Ó¥ë¥É¤·¤Æ¡¢¾Æ¤¤Þ¤¹¡£¤³¤ì¤Ï¡¢XK-1 ¤Î OTP->SPI ¥Ö¡¼¥È¾õÂÖ¤«¤é XLINK ¥Ö¡¼¥ÈÂÔ¤Á¤Ë¤¹¤ë¤¿¤á¤Î¥³¡¼¥É¤Ç¤¹¡£
.text .align 2 _start: main: mkmsk r1, 16 shl r1, r1, 16 ldc r11, 0xc344 or r11, r11, r1 set dp, r11 ldc r3, 0x80 ldw r4, dp[0xb] ldc r11, 0xc0f4 or r11, r11, r1 getr r0, 2 bla r11 freer res[r0] ldc r7, 0xc076 or r7, r1, r7 bau r7
¾åµ¤Î¥³¡¼¥É¤ò f2l.S(954)¤È¤·¤Æ¥»¡¼¥Ö¤·¡¢10.4.2 ¤Î¥³¥Þ¥ó¥É¥×¥í¥ó¥×¥È¤«¤é¡¢²¼µ¤Î¤è¤¦¤Ë¥Ó¥ë¥É¤·¤Þ¤¹¡£
xcc f2l.S -target=XK-1 -nostdlib -Xmapper --nochaninit -o f2l.xe
¼¡¤Ë¡¢[XK-1(B)] ¤À¤±¤òÀܳ¤·¡¢xflash ¤Ç f2l.xe ¤ò¾Æ¤¤Þ¤¹¡£
(Flash XLINK boot code to [XK-1(B)]) xflash f2l.xe
¤³¤ì¤Ç¡¢[XK-1(B)] ¤Ï XLINK ¤«¤é¤Î¥Ö¡¼¥ÈÂÔ¤Á¤Ë¤Ê¤ê¤Þ¤¹¡£
¼¡¤Ï [XK-1(A)] ¡¢[XK-1(B)] ξÊý¤Î¥³¥¢¤ÇÆ°ºî¤µ¤»¤ë¥×¥í¥°¥é¥à(¤¿¤È¤¨¤Ð foo.xc ¤È¤¹¤ë)¤ò¡¢ÅºÉդΠ2XK-1.xn(1015) ¤òÍѤ¤¤Æ¥Ó¥ë¥É¤·¡¢
(If main program is "foo.xc") xcc foo.xc 2XK-1.xn -o foo.xe
¤Ç¤¤¿¥Ð¥¤¥Ê¥ê¤ò¡¢Æ±ÍÍ¤Ë [XK-1(A)] ¤Ë¾Æ¤¤Þ¤¹¡£
(Flash binary foo.xe to [XK-1(A)]) xflash foo.xe
´Î¤Ï¡¢2XK-1.xn ¤Î Source Location="XMOSLINK" ¤Î²Õ½ê(²¼µ)¤È»×¤ï¤ì¤Þ¤¹¡£
33: <Node Id="1" Type="XS1-L1A" Oscillator="20MHz" SystemFrequency="400MHz"> 34: <Boot> 35: <Source Location="XMOSLINK"/> 36: </Boot>
¼¡¤Î¥ê¥ê¡¼¥¹¤Ç¤Ïľ¤ëͽÄê¤À¤½¤¦¤Ç¤¹¤¬¡¢XLINK ¤«¤é¥Ö¡¼¥È¤¹¤ë¥³¡¼¥É¤Ï»²¹Í¤Ë¤Ê¤ë¤«¤È»×¤¤¤Þ¤¹¡£
¥µ¥Ý¡¼¥È¤¬¸À¤Ã¤Æ¤¤¤¿Ä̤ꡢ¤³¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï£²Âæ¤Î XK-1 ¤ò»È¤Ã¤¿ SPI ¥Ö¡¼¥È¤ÏÀµ¾ï¤ËÆ°ºî¤¹¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤·¤¿¡£¤³¤ì¤Ç¥¹¥¿¥ó¥É¥¢¥í¥ó¤Ç¤¿¤¯¤µ¤ó¤Ä¤Ê¤¤¤Ç¡Ê¥Ç¡¼¥¿¥·¡¼¥È¤Ë¤è¤ë¤È Max16¥³¥¢¡Ë¼Â¸³¤¬¤Ç¤¤Þ¤¹¡£
¤È»×¤Ã¤Æ£³Âæ¤Ä¤Ê¤¤¤Ç¤ß¤¿¤È¤³¤í¡¢£²Âæ¤Ç¥³¥±¤¿¤È¤¤ÈƱ¤¸¤è¤¦¤Ê¸½¾Ý(xrun ¤Ç¤ÏÁö¤ë¤¬ SPI ¥Ö¡¼¥È¤·¤Ê¤¤¡Ë¤¬½Ð¤¿¤Î¤Ç¡¢¸½ºßÌ䤤¹ç¤ï¤»¤ò¤·¤Æ¤¤¤Þ¤¹...orz
¤µ¤Æ¡¢L1 ·Ï¤Î¥³¥¢¤Ç SPI ¥Ö¡¼¥È¤¹¤ë¥³¥¢¤ËÀܳ¤µ¤ì¤¿ÎÙÀÜ¥³¥¢¤Ç XMOSLINK ¤«¤é¥Ö¡¼¥È¤¹¤ë¡Ê10.4.2 ¤Î workaround ¤ÈƱÍͤι½À®¤Ë¤¹¤ë¡Ë¾ì¹ç¤Î .xn ¤Îµ½Ò¤¬ XMOS ¤Î¥µ¥¤¥È¤Ë¤¢¤ë Tools-User-Guide ¤Î 8.2 Àá¡¢Describing a Simple Hardware Platform ¤Ë¾Ü¤·¤¯Îã¤È¤·¤ÆµºÜ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
¶ñÂÎŪ¤Ë¤Ï¡¢SPI ¤Î¤¢¤ë¤Û¤¦¤Î Node ¤Î Boot ¥»¥¯¥·¥ç¥ó¤Ç¡¢XMOSLINK ¤«¤é¤Î¥Ö¡¼¥ÈÂÔ¤Á¤Ë¤·¤¿ÎÙÀÜ¥³¥¢¤òBootee ¥¿¥°¤Ç»ØÄꤹ¤ë¤è¤¦¤Ë¤Ê¤ê
(e.g. if Slave Boot NodeId="1" Core="0") <Boot> <Source Location="SPI:bootFlash"/> <Bootee NodeId="1" Core="0"/> </Boot>
XMOSLINK ¤ÇÂԤĤۤ¦¤Ï 10.4.2 ¤Î workaround ¤Ç¹Ô¤Ã¤¿¤Î¤ÈƱÍ͡ʤ³¤Î¥Ú¡¼¥¸Á°¹à¤ò»²¾È¤¯¤À¤µ¤¤¡Ë
<Boot> <Source Location="XMOSLINK"/> </Boot>
¤Èµ½Ò¤¹¤ì¤Ð¤è¤¤¤è¤¦¤Ç¤¹¡£
10.4.2 ¤Ç¤ÎÁ°¡¹¹à¤Î workaround ¤ò¤·¤¿ XK-1 £²ÂæÀܳ¥×¥í¥¸¥§¥¯¥È¤Ë¡¢
Á°¹à¸åȾ¤ÇÀâÌÀ¤·¤¿ Bootee µ½Ò¤òÄɲä·¤Æ IDE ¤«¤é¾Æ¤¤¤Æ¤ß¤Þ¤·¤¿¤¬¡¢»ÄÇ°¤Ê¤¬¤é¤¤Á¤ó¤È¥Ö¡¼¥È¤·¤Þ¤»¤ó¤Ç¤·¤¿¡£
¤½¤³¤Ç¡¢10.4.2 ¤ÈƱÍͤˡ¢f2l.S(954) ¤ò¡¢Bootee ¦¤Î XK-1 ¤Ë²¼µ¤Î¤è¤¦¤Ë¥³¥Þ¥ó¥É¥é¥¤¥ó¤«¤é¾Æ¤¤¤Æ¤ä¤ë¤È¡¢²¼µ¤Î¤è¤¦¤Ê¥ï¡¼¥Ë¥ó¥°¤¬½Ð¤ë¤â¤Î¤Î¡¢11.2.0 ¤Ç¤âƱÍͤ˥֡¼¥È¤·¤Þ¤·¤¿¡£
C:\work\xk1\xk1dual2\Release>xcc f2l.S -target=XK-1 -nostdlib -Xmapper --nochaninit -o f2l.xe C:\work\xk1\xk1dual2\Release>xflash f2l.xe Warning: F03098 Factory image and boot loader cannot be write-protected on flash device on node "0". Site 0 has finished.
XK-1 ¤Î OTP ¤Ë¤«¤«¤ì¤Æ¤¤¤ë½Ð²Ù»þ¥Õ¥¡¡¼¥à¥¦¥§¥¢¤¬¼ÙË⤷¤Æ¤¤¤ë¤Î¤«¤â¤·¤ì¤Þ¤»¤ó¡£¤¦¡¼¤à¡£
Release Note ¤è¤ê¡£
* Flash programming * The 11.2 version of xflash could not produce a flash image to boot a system with more than 2 switches. This is now fixed.
10.4 ¤«¤é°ú¤¤º¤Ã¤Æ¤¤¤¿¤³¤ÎÌäÂ꤬¡¢¤è¤¦¤ä¤¯½¤Àµ¤µ¤ì¤¿¤è¤¦¤Ç¤¹¡Ê¼ÂºÝ¤Ë£´Âæ¤Þ¤Ç¤Ï¡¢¤Ä¤Ê¤¤¤Ç³Îǧ¤·¤Þ¤·¤¿¡Ë¡£
¤³¤ì¤Ç°Â¿´¤·¤Æ¤¿¤¯¤µ¤óÇã¤Ã¤Æ¤Ä¤Ê¤²¤Þ¤¹¡£
ÃΤê¹ç¤¤¤Ë OTP ¤ÎÃ椬¤É¤¦¤Ê¤Ã¤Æ¤¤¤ë¤«Ê¹¤«¤ì¤¿¤¬¡¢¤¤¤Þ¤Þ¤Çµ¤¤Ë¤·¤¿¤³¤È¤¬¤Ê¤«¤Ã¤¿¤Î¤Ç¡¢
¤Î¤¾¤Êý¤òÃΤê¤Þ¤»¤ó¤Ç¤·¤¿¡£¶µ¤¨¤Æ¤â¤é¤Ã¤¿¤Î¤¬ xburn ¤ò»È¤¦ÊýË¡¡£
XK-1 (via XTAG2) ¤Î¾ì¹ç
C:\Program Files\XMOS\DevelopmentTools\11.2.2>xburn --read --target XK-1 Reading device... Core 0: 0x00000000: 0x00000018 0x00000001: 0xdbfef007 .. SR : 0x00000020
¤Î¤è¤¦¤Ê´¶¤¸¤Ç¤¹¡£¤¹¤Ç¤Ë½ñ¤«¤ì¤Æ¤¤¤Þ¤¹¤Í¡£
XC-1A (via Æâ¢JTAG) ¤Î¾ì¹ç
C:\Program Files\XMOS\DevelopmentTools\11.2.2>xburn --read --target XC-1A Reading device... Core 0: SR : 0x00000000 Core 1: SR : 0x00000000 Core 2: SR : 0x00000000 Core 3: SR : 0x00000000
¤É¤¦¤ä¤é¶õ¤Î¤è¤¦¤Ç¤¹¡£
XS1-L1-64 (SparkFunÀ½ µì¥í¥Ã¥È:FTDI ¤Ä¤ via XTAG2) ¤Î¾ì¹ç¡£
¡ÊXC-5 ¤ÈƱ°ì¥Á¥Ã¥×¤Ê¤Î¤Ç¡¢XC-5 ¤ò»ØÄꤷ¤Æ¤¤¤Þ¤¹¡Ë
C:\Program Files\XMOS\DevelopmentTools\11.2.2>xburn --read --target XC-5 Reading device... Core 0: * 0x0000020e: 0x00800000 SR : 0x00000000
SR = 0x00000000 ¤Ç¤¹¤¬¡¢¶õ¤Ç¤Ï¤Ê¤¤¤è¤¦¤Ç¤¹¡£
XC-1 (via Æâ¢JTAG) ¤Î¾ì¹ç¡¢ÉáÄ̤˥֡¼¥È¤·¤Æ¤·¤Þ¤¦¤È¥¨¥é¡¼¤Ë¤Ê¤ê¤Þ¤·¤¿¡£
C:\Program Files\XMOS\DevelopmentTools\11.2.2>xburn --read --target XC-1 Reading device... xburn: error: reading device failed
SPI/JTAG ¤ÎÀÚ¤êÂؤ¨(ÁªÂò SW ¤ò¼è¤êÉÕ¤±)¤ò SPI ¥Ö¡¼¥È¤Ë¤·¤Æ¤ä¤ë¤È¡¢
C:\Program Files\XMOS\DevelopmentTools\11.2.2>xburn --read --target XC-1 Reading device... Core 0: 0x00000000: 0x000007dd 0x00000001: 0xfed1684b 0x00000002: 0xf00417ec 0x00000003: 0xfec2688b ..... 0x000007dd: 0x00000000 0x000007de: 0x0d15ab1e SR : 0x00000020 Core 1: SR : 0x00000000 Core 2: SR : 0x00000000 Core 3: SR : 0x00000000
Æɤá¤Þ¤·¤¿¡£
¡ã¡ãXMOS ¤Î XS1-G4,L1 ¤Ç¤¢¤½¤Ö - ¤½¤Î£´ ¡Ã XMOS ¤Î XS1-G4,L1 ¤Ç¤¢¤½¤Ö - ¤½¤Î£¶¡ä¡ä
¡¡¥«¥Æ¥´¥ê¡¡¡§¡¡¤â¤¯¤·¤¤¡Ã¥²¡¼¥à¡Ã¥ì¥·¥Ô¡Ã¥³¥ó¥Ô¥å¡¼¥¿¡Ã»¨Ê¸¡ÃÀ¸³è¡ÃÅŻҹ©ºî¡Ã¤ª¤¤¤·¤¤Å¹¥Þ¥Ã¥×
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Top¥Ú¡¼¥¸¤Ø¡¡|¡¡¤â¤Æ¤Ê¤¤SNS¡Ö¤â¤¯¤·¤¤¡×