[ÅŻҹ©ºî]
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 ¤òÇÛÎó¤ò»È¤¦¥ë¡¼¥×¤ÎÁ°¤Ëµ½Ò¤·¤Æ¤ª¤¯¤È¡¢ÇÛÎó¤ÎÈÏ°Ï¥Á¥§¥Ã¥¯¤ò¤·¤Ê¤¯¤Ê¤ë¡Ê´í¸±¡Ë¤ÊʬÁ᤯¤Ê¤ë¤è¤¦¤Ç¤¹¡£
ºÇ¶á¤Î´Ä¶(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 ¥Õ¥¡¥¤¥ë¤Ç¡¢¥ê¥ó¥¯¤ÎÄêµÁ¤ò¤·¤Æ¤ª¤¯¤È¡¢£²¤Ä°Ê¾å¤Î XMOS chip ¤ÎÄÌ¿®¤ò¤¹¤ë¾ì¹ç¤ä¡¢Æ±»þ½ñ¤¹þ¤ß¤Ë¤âÂбþ¤·¤Æ¤¯¤ì¤ë¤è¤¦¤Ç¤¹¡£
¤¿¤È¤¨¤Ð¡¢²¼µ¤Î .xn ¤òµ½Ò¤¹¤ë¤³¤È¤Ç¡¢XK-1 ¤ò£²¤ÄÏ¢·ë¤·¤¿¾ì¹ç¤Ç¤â¡¢¤¢¤¿¤«¤â¤½¤ì¤¬£±¥Á¥Ã¥×¤Î¥Þ¥ë¥Á¥³¥¢ CPU ¤Ç¤¢¤ë¤¬Ç¡¤¯¤Ë¡¢
£±¤Ä¤Î .xc ¥×¥í¥¸¥§¥¯¥È¤È¡¢£±¤Ä¤Î XTAG ¥¢¥À¥×¥¿¤Ç¡¢Î¾Êý¤Î¥Ü¡¼¥É¤Î¥Ç¥Ð¥Ã¥°¤¬¤Ç¤(¤³¤ì¤Ï JTAG ¤¬¥Á¥§¡¼¥ó¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤«¤é¤Ç¤¹¤¬)¡¢¤µ¤é¤Ë¡¢¤½¤ì¤¾¤ì¤Î´ðÈĤΠflash ¤Ë¥Ö¡¼¥È¥³¡¼¥É½ñ¤¹þ¤ß¤¬½ÐÍè¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
[½Ðŵ](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 ¤Ç¤¢¤½¤Ö - ¤½¤Î£³¡ä¡ä¡¡
¡¡¥«¥Æ¥´¥ê¡¡¡§¡¡¤â¤¯¤·¤¤¡Ã¥²¡¼¥à¡Ã¥ì¥·¥Ô¡Ã¥³¥ó¥Ô¥å¡¼¥¿¡Ã»¨Ê¸¡ÃÀ¸³è¡ÃÅŻҹ©ºî¡Ã¤ª¤¤¤·¤¤Å¹¥Þ¥Ã¥×
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Top¥Ú¡¼¥¸¤Ø¡¡|¡¡¤â¤Æ¤Ê¤¤SNS¡Ö¤â¤¯¤·¤¤¡×