- Äɲ䵤줿¹Ô¤Ï¤³¤Î¤è¤¦¤Ëɽ¼¨¤µ¤ì¤Þ¤¹¡£
- ºï½ü¤µ¤ì¤¿¹Ô¤Ï
¤³¤Î¤è¤¦¤Ëɽ¼¨¤µ¤ì¤Þ¤¹¡£
{{category ÅŻҹ©ºî}}
!!!XMOS ¤Î XS1-G4 ¤Ç¤¢¤½¤Ö - ¤½¤Î£²
!!¥Æ¥¹¥È´ðÈÄ XC-1,XC-2,XK-1 ¤ÇÍ·¤ó¤Çµ¤¤¬¤Ä¤¤¤¿¤³¤È¤Î¥á¥â¤ò½ñ¤¤¤Æ¤¤¤¤Þ¤¹¡£
!!!OTP ROM ¤ÎÆɤßÊý¡©
XC-2 ¤Ï¥¤¡¼¥µ¥Í¥Ã¥È I/F ¤Î¤Ä¤¤¤¿É¾²Á´ðÈĤǤ¹¡£
¤È¤¤¤¦¤³¤È¤Ï¡¢ÅöÁ³ MAC ¥¢¥É¥ì¥¹¤¬¤É¤³¤«¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¡Ê¤«¡¢¥æ¥Ë¡¼¥¯¤Ë¤Ê¤ë¤è¤¦¤ËÀ¸À®¤·¤Æ¤¤¤ë¡Ë¤Ï¤º¡£
webserver ¥Ç¥â¥×¥í¥°¥é¥à¤ò»¶Ê⤷¤Æ¤¤¤ë¤È¡¢
webserver/httpd/getserial.xc ¤Ë¡¢Ì¯¤Ê¥Ý¡¼¥È¤Î³ä¤êÅö¤Æ¤¬¡£
#define OTP_DATA_PORT XS1_PORT_32B
#define OTP_ADDR_PORT XS1_PORT_16C
#define OTP_CTRL_PORT XS1_PORT_16D
#define OTPADDRESS 0x7FF
#define OTPREAD 1
#define OTP_tACC_TICKS 4 // 40nS
on stdcore[3]: port otp_data3 = OTP_DATA_PORT;
on stdcore[3]: out port otp_addr3 = OTP_ADDR_PORT;
on stdcore[3]: port otp_ctrl3 = OTP_CTRL_PORT;
¤È¤¤¤¦µ½Ò¤¬¡£
¤³¤Î¥Ý¡¼¥Èµ½Ò¤Î²¼¤Ë¡¢int otpRead(unsigned address) ¤È¤¤¤¦¡Ö¤½¤Î¤Þ¤Þ¤ä¤ó¤±¡×¤È¤¤¤¦´Ø¿ô¤¬¤¢¤ê¤Þ¤·¤¿¡£
¤³¤ì¤ò»²¹Í¤Ë¤¹¤ì¤Ð¤è¤µ¤½¤¦¤Ç¤¹.....
¤Á¤Ê¤ß¤Ë¡¢¡Ö¥×¥í¥°¥é¥àÃæ¤Ç OTP ¤òÆɤó¤Ç¤ë¤Î¤Ç¤Ï¡©¡×¤È»×¤Ã¤¿¤¤Ã¤«¤±¤Î MAC ¥¢¥É¥ì¥¹À¸À®¡ÊÆɤ߼è¤ê¡Ë¤Ï¾åµ¤Ç°úÍѤ·¤¿²Õ½ê ¤Ç¤Ï¤Ê¤¯¤Æ¡¢webserver/mac/server/getmac.xc ¤Ë¤½¤ì¤é¤·¤¤µ½Ò¤¬¤¢¤ê¤Þ¤¹¡£
!!!ÇÛÎó¥¢¥¯¥»¥¹¤Î¹â®²½
XMOS À½¤Î¥½¡¼¥¹¤ò¸«¤Æ¤¤¤ë¤È¡¢
#pragma unsafe arrays
¤È¤¤¤¦¤è¤¦¤Êµ½Ò¤¬¤È¤³¤í¤É¤³¤í¤Ë¤¢¤ê¤Þ¤¹¡£
xlinkers ¤Ç unsafe arrays ¤Ç¸¡º÷¤·¤Æ¤ß¤ë¤È¡¢
¡ÖTheoretical Execution Speed of XC¡×¤È¤¤¤¦¥È¥Ô¥Ã¥¯¤Ë®Å٤˴ؤ¹¤ëÏÃÂ꤬¤¤¤í¤¤¤íºÜ¤Ã¤Æ¤¤¤Þ¤¹¡£
¾åµ¤Î pragma ¤òÇÛÎó¤ò»È¤¦¥ë¡¼¥×¤ÎÁ°¤Ëµ½Ò¤·¤Æ¤ª¤¯¤È¡¢ÇÛÎó¤ÎÈÏ°Ï¥Á¥§¥Ã¥¯¤ò¤·¤Ê¤¯¤Ê¤ë¡Ê´í¸±¡Ë¤ÊʬÁ᤯¤Ê¤ë¤è¤¦¤Ç¤¹¡£
!!! XN ¥Õ¥¡¥¤¥ë¤Ë¤Ä¤¤¤Æ(1) (9.9.0)
ºÇ¶á¤Î´Ä¶(9.9.0)¤Ç¤Ï¡¢¥×¥é¥Ã¥È¥Õ¥©¡¼¥àÄêµÁ¥Õ¥¡¥¤¥ë ¡Ê.xn ³ÈÄ¥»Ò¡Ë¤¬É¬Íפʤ褦¤Ç¤¹¡£
²áµî¤Î¥×¥í¥¸¥§¥¯¥È¤òºÇ¶á¤Î´Ä¶¤ÇÆ°¤«¤¹¤Ë¤Ï¡¢C:\Program Files\Xmos\DesktopTools\9.9.0\configs ¤«¤é¡¢³ºÅö¤¹¤ë´Ä¶¤Î .xn ¤ò»ý¤Ã¤Æ¤¤Æ¾å½ñ¤¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
¤Þ¤¿¡¢xflash ¤â .xn ¤¬Àµ¤·¤¯¤Ê¤¤¤ÈÆ°ºî¤·¤Ê¤¤¤è¤¦¤Ç¤¹¡£
²áµî¤Ë SPI ROM ¤ò̵Íý¤ä¤ê¤Ò¤Ã¤Ä¤±¤¿ XC-1 ¤Ë¡¢¿·¤·¤¤ xflash ¤Ç²áµî¤Î¥Ð¥¤¥Ê¥ê¤ò½ñ¤³¤¦¤È¤¹¤ë¤È¡¢Åܤé¤ì¤Þ¤¹¡£
EPCS1 ¤ò¤¯¤Ã¤Ä¤±¤Æ²þ¤¤·¤¿ XC-1 ÍѤΠ.xn ¤Ï²¼µ¤Î¤è¤¦¤Ë¤Ê¤ë¤ß¤¿¤¤¤Ç¤¹¡£
<?xml version="1.0" encoding="UTF-8"?>
<Network xmlns="http://www.xmos.com"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.xmos.com http://www.xmos.com">
<Type>Board</Type>
<Declarations>
<Declaration>core stdcore[4]</Declaration>
</Declarations>
<Nodes>
<Node Id="0" Type="XS1-G4B-FB512">
<Core Number="0" Reference="stdcore[0]">
<Port Location="XS1_PORT_1A" Name="PORT_SPI_MISO"/>
<Port Location="XS1_PORT_1B" Name="PORT_SPI_SS"/>
<Port Location="XS1_PORT_1C" Name="PORT_SPI_CLK"/>
<Port Location="XS1_PORT_1D" Name="PORT_SPI_MOSI"/>
<Port Location="XS1_PORT_4A" Name="PORT_CLOCKLED_0"/>
<Port Location="XS1_PORT_4B" Name="PORT_CLOCKLED_1"/>
<Port Location="XS1_PORT_4C" Name="PORT_CLOCKLED_2"/>
<Port Location="XS1_PORT_1E" Name="PORT_CLOCKLED_SELG"/>
<Port Location="XS1_PORT_1F" Name="PORT_CLOCKLED_SELR"/>
<Port Location="XS1_PORT_4D" Name="PORT_BUTTON"/>
<Port Location="XS1_PORT_1H" Name="PORT_UART_TX"/>
<Port Location="XS1_PORT_1I" Name="PORT_UART_RX"/>
<Port Location="XS1_PORT_1K" Name="PORT_SPEAKER"/>
<Port Location="XS1_PORT_8D" Name="PORT_BUTTONLED"/>
</Core>
<Core Number="1" Reference="stdcore[1]"/>
<Core Number="2" Reference="stdcore[2]"/>
<Core Number="3" Reference="stdcore[3]"/>
</Node>
</Nodes>
<Devices>
<Device NodeId="0" Core="0" Class="SPIFlash" Name="bootFlash" Type="EPCS1">
<Attribute Name="PORT_SPI_MISO" Value="PORT_SPI_MISO"/>
<Attribute Name="PORT_SPI_SS" Value="PORT_SPI_SS"/>
<Attribute Name="PORT_SPI_CLK" Value="PORT_SPI_CLK"/>
<Attribute Name="PORT_SPI_MOSI" Value="PORT_SPI_MOSI"/>
</Device>
</Devices>
<JTAGChain>
<JTAGDevice NodeId="0"/>
</JTAGChain>
</Network>
¢¨»ä¤Ï¥³¥ì¤Ç¤â¤«¤±¤Ê¤«¤Ã¤¿(xflash ¤¬¥¨¥é¡¼¤Ë¤Ê¤Ã¤¿¡Ë¤Î¤Ç¤¹¤¬¡¢°ìö B ¥Ü¥¿¥ó¤ò²¡¤·¤Ê¤¬¤é JTAG(OTP) ¥Ö¡¼¥È¤Ç½ñ¤¹þ¤ß¥â¡¼¥É¤Ë¤·¤Æ¤«¤é¡¢¤³¤Î .XN ¤òÉղä·¤¿ SPI ROM ¤Ë½ñ¤¯¤È¡¢¤½¤ì°Ê¹ß¤Ï SPI ¥Ö¡¼¥È¥â¡¼¥É¤ÇÌäÂê¤Ê¤¯½ñ¤±¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤·¤¿¡£
EPCS1 °Ê³°¤Î FLASH ¤ò¤¯¤Ã¤Ä¤±¤¿¾ì¹ç¤Ï¡¢³ºÅö²Õ½ê¤òÊѹ¹¤·¤Æ¤¯¤À¤µ¤¤¡£
!!! XN ¥Õ¥¡¥¤¥ë¤Ë¤Ä¤¤¤Æ(2) (9.9.0)
.XN ¥Õ¥¡¥¤¥ë¤Ç¡¢¥ê¥ó¥¯¤ÎÄêµÁ¤ò¤·¤Æ¤ª¤¯¤È¡¢£²¤Ä°Ê¾å¤Î XMOS chip ¤ÎÄÌ¿®¤ò¤¹¤ë¾ì¹ç¤ä¡¢Æ±»þ½ñ¤¹þ¤ß¤Ë¤âÂбþ¤·¤Æ¤¯¤ì¤ë¤è¤¦¤Ç¤¹¡£
¤¿¤È¤¨¤Ð¡¢²¼µ¤Î .xn ¤òµ½Ò¤¹¤ë¤³¤È¤Ç¡¢XK-1 ¤ò£²¤ÄÏ¢·ë¤·¤¿¾ì¹ç¤Ç¤â¡¢¤¢¤¿¤«¤â¤½¤ì¤¬£±¥Á¥Ã¥×¤Î¥Þ¥ë¥Á¥³¥¢ CPU ¤Ç¤¢¤ë¤¬Ç¡¤¯¤Ë¡¢
£±¤Ä¤Î .xc ¥×¥í¥¸¥§¥¯¥È¤È¡¢£±¤Ä¤Î XTAG ¥¢¥À¥×¥¿¤Ç¡¢Î¾Êý¤Î¥Ü¡¼¥É¤Î¥Ç¥Ð¥Ã¥°¤¬¤Ç¤(¤³¤ì¤Ï JTAG ¤¬¥Á¥§¡¼¥ó¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤«¤é¤Ç¤¹¤¬)¡¢¤µ¤é¤Ë¡¢¤½¤ì¤¾¤ì¤Î´ðÈĤΠflash ¤Ë¥Ö¡¼¥È¥³¡¼¥É½ñ¤¹þ¤ß¤¬½ÐÍè¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
½ÐŸ(XMOS linkers)¡§http://www.xmoslinkers.org/forum/viewtopic.php?f=6&t=576
[½Ðŵ](XMOS linkers)¡§http://www.xmoslinkers.org/forum/viewtopic.php?f=6&t=576
<?xml version="1.0" encoding="UTF-8"?>
<Network xmlns="http://www.xmos.com"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.xmos.com http://www.xmos.com">
<Type>Board</Type>
<Declarations>
<Declaration>core stdcore[2]</Declaration>
</Declarations>
<Nodes>
<Node Id="0" Type="XS1-L1A-TQ128">
<Boot>
<Source Location="SPI:bootFlash_0"/>
</Boot>
<Core Number="0" Reference="stdcore[0]">
<Port Location="XS1_PORT_1I" Name="PORT_UART_RX_0"/>
<Port Location="XS1_PORT_1J" Name="PORT_UART_TX_0"/>
<Port Location="XS1_PORT_1K" Name="PORT_BUTTON_0_0"/>
<Port Location="XS1_PORT_1L" Name="PORT_BUTTON_1_0"/>
<Port Location="XS1_PORT_1M" Name="PORT_SPI_MISO_0"/>
<Port Location="XS1_PORT_1N" Name="PORT_SPI_SS_0"/>
<Port Location="XS1_PORT_1O" Name="PORT_SPI_CLK_0"/>
<Port Location="XS1_PORT_1P" Name="PORT_SPI_MOSI_0"/>
<Port Location="XS1_PORT_4F" Name="PORT_LED_0"/>
</Core>
</Node>
<Node Id="1" Type="XS1-L1A-TQ128">
<Boot>
<Source Location="SPI:bootFlash_1"/>
</Boot>
<Core Number="0" Reference="stdcore[1]">
<Port Location="XS1_PORT_1I" Name="PORT_UART_RX_1"/>
<Port Location="XS1_PORT_1J" Name="PORT_UART_TX_1"/>
<Port Location="XS1_PORT_1K" Name="PORT_BUTTON_0_1"/>
<Port Location="XS1_PORT_1L" Name="PORT_BUTTON_1_1"/>
<Port Location="XS1_PORT_1M" Name="PORT_SPI_MISO_1"/>
<Port Location="XS1_PORT_1N" Name="PORT_SPI_SS_1"/>
<Port Location="XS1_PORT_1O" Name="PORT_SPI_CLK_1"/>
<Port Location="XS1_PORT_1P" Name="PORT_SPI_MOSI_1"/>
<Port Location="XS1_PORT_4F" Name="PORT_LED_1"/>
</Core>
</Node>
</Nodes>
<Packages>
<Package id="0" Type="XS1-L1A-TQ128">
<Component NodeId="0" InPackage="0"/>
</Package>
<Package id="1" Type="XS1-L1A-TQ128">
<Component NodeId="1" InPackage="0"/>
</Package>
</Packages>
<Links>
<Link Encoding="2wire" Delays="4,4">
<LinkEndpoint NodeId="0" Link="1"/>
<LinkEndpoint NodeId="1" Link="0"/>
</Link>
</Links>
<Devices>
<Device NodeId="0" Core="0" Class="SPIFlash" Name="bootFlash_0" Type="AT25FS010">
<Attribute Name="PORT_SPI_MISO" Value="PORT_SPI_MISO_0"/>
<Attribute Name="PORT_SPI_SS" Value="PORT_SPI_SS_0"/>
<Attribute Name="PORT_SPI_CLK" Value="PORT_SPI_CLK_0"/>
<Attribute Name="PORT_SPI_MOSI" Value="PORT_SPI_MOSI_0"/>
</Device>
<Device NodeId="1" Core="0" Class="SPIFlash" Name="bootFlash_1" Type="AT25FS010">
<Attribute Name="PORT_SPI_MISO" Value="PORT_SPI_MISO_1"/>
<Attribute Name="PORT_SPI_SS" Value="PORT_SPI_SS_1"/>
<Attribute Name="PORT_SPI_CLK" Value="PORT_SPI_CLK_1"/>
<Attribute Name="PORT_SPI_MOSI" Value="PORT_SPI_MOSI_1"/>
</Device>
</Devices>
<JTAGChain>
<JTAGDevice NodeId="0"/>
<JTAGDevice NodeId="1"/>
</JTAGChain>
</Network>
----
¡ã¡ãXMOS ¤Î XS1-G4 ¤Ç¤¢¤½¤Ö¡¡¡Ã¡¡XMOS ¤Î XS1-G4,L1 ¤Ç¤¢¤½¤Ö - ¤½¤Î£³¡ä¡ä¡¡