¥È¥Ã¥× º¹Ê¬ °ìÍ÷ ¥½¡¼¥¹ ¸¡º÷ ¥Ø¥ë¥× PDF RSS ¥í¥°¥¤¥ó

XMOS ¤Î XS1-G4 ¤Ç¤¢¤½¤Ö

[ÅŻҹ©ºî]

XMOS ¤Î XS1-G4 ¤Ç¤¢¤½¤Ö

¥Æ¥¹¥È´ðÈÄ XC-1 ¤ÇÍ·¤ó¤Çµ¤¤¬¤Ä¤¤¤¿¤³¤È¤Î¥á¥â¤ò½ñ¤¤¤Æ¤¤¤­¤Þ¤¹¡£

  • XC-1 ¤Ï XMOS Semiconductor¼Ò ¤Î XS1-G ¤Îɾ²Á´ðÈĤǤ¹¡£
  • Design Wave Magazine ¤Î 2009/3,4 ¹çÊ»¹æ¤Ë XS1-G ¤Ë¤Ä¤¤¤Æ¤ÎÆý¸µ­»ö¡Ê²¼µ­»²¹Í¡Ë¤¬ºÜ¤Ã¤Æ¤¤¤Þ¤¹¡£

http://www.cqpub.co.jp/dwm/Contents/0136/dwm013600710.pdf

XC ¸À¸ì¤ò»È¤Ã¤¿ XS1-G4 ¤Î¶ñÂÎŪ¤Ê»È¤¤Êý

¡¡¤¤¤¯¤Ä¤«¤Î Tutorial ¤Ç¤âÀâÌÀ¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç¤¹¤¬¡¢¤¤¤Þ¤Þ¤Ç XMOS ¥µ¥¤¥ÈÆâ¤Ç¸«¤Ä¤±¤¿Ãæ¤Ç¤¤¤Þ¤Î¤È¤³¤í°ìÈÖÂηϤÀ¤Ã¤Æ¡¢Æ±´ü¡¢¥·¥ê¥¢¥é¥¤¥º¡¢¥Ç¥·¥ê¥¢¥é¥¤¥º¡¢timed I/O ¤ÎÀâÌÀ¤¬¤µ¤ì¤Æ¤¤¤ë¤Î¤Ï¡¢ XMOS ¥È¥Ã¥×¤«¤é¡¢Support > Documentation > Software Tools ¤Î¥Ú¡¼¥¸¤Ë¤¢¤ë¡¢XC-XS1 User Manual (Preview) (2009/02/19) ¤Ç¤·¤¿¡£

¡ú¸½ºß¡¢¾åµ­¤Î PDF ¤Ï¡¢Programming XC on XCore XS1 Devices ¤È¤¤¤¦Ì¾Á°¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤è¤¦¤Ç¤¹¡£Support > Documentation > Design Tools ¤Î¤È¤³¤í¤Ë¥Ú¡¼¥¸¹½À®¤¬ÊѤï¤ê¤Þ¤·¤¿¡£

¤Ê¤ó¤«LED¤Î¥Ý¡¼¥È¤¬»ñÎÁ(XC1 Board Layout and Port Map)¤È°ã¤¦µ¤¤¬..... (¸Å¤¤¾ðÊó)

¡¡2009/3 ¸½ºß¤ÎXC-1¤Ç¤Ï¡¢°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤Ã¤Æ¤ë¤ß¤¿¤¤¤Ç¤¹¤è¡£
¡¡Äɵ­¡§¿·¤·¤¤»ñÎÁ¤Ç¤ÏÄûÀµ¤µ¤ì¤Æ¤¤¤Þ¤¹¤¬¡¢Tutorial ¤Ï¤Õ¤ë¤¤ÀâÌÀ¤Î¤Þ¤Þ¤Îʪ¤â¤¢¤ëÌÏÍÍ¡£

out port cled0 = XS1_PORT_4C; /* 12,1,2,3 */
out port cled1 = XS1_PORT_4A; /* 4,5,6,7 */
out port cled2 = XS1_PORT_4B; /* 8,9,10,11 */

¤Ê¤ó¤«ÀФ¬Ç®¤¤¤ó¤¹¤±¤É......

¡¡»È¤ï¤Ê¤¤¥³¥¢¤ä¥ê¥ó¥¯¤Î¥Ñ¥ï¡¼¤òÀ©¸æ¤Ç¤­¤ë¤è¤¦¤Ç¤¹¡£
¡¡½Ðŵ¡§xlinkers forum http://www.xlinkers.org/node/65
¡¡¡¡¡¡¡¡¤Î Power.c(1387) ¤è¤ê¡£

//	setRegVal(processor,psctl,reg,val);
setRegVal(0, 0, 7, 128);	// CPU 0 - Low power link mode (Reg 7)
setRegVal(1, 1, 6, 128);	// CPU 1 - Low power mode (Reg 6)         
setRegVal(2, 1, 6, 128);	// CPU 2 - Low power mode (Reg 6)
setRegVal(3, 1, 6, 128);	// CPU 3 - Low power mode (Reg 6)

¡¡¤³¤Î¤Ø¤ó¤Î¤³¤È¤Ï¡¢XMOS ¥µ¥¤¥È¤Î Support > Documentation > Silicon ¤Ë¤¢¤ë¡¢"XS1 System Specification (2009/01/27)" ¤È¤¤¤¦»ñÎÁ¤Î 3.6¾Ï(¥³¥Þ¥ó¥É¤Îȯ¹ÔÊýË¡)¡¢4.2¾Ï¡¢4.3¾Ï(¥ì¥¸¥¹¥¿¤ÎÆâÍÆ)¤Ëµ­½Ò¤¬¤¢¤ê¤Þ¤¹¡£

³°ÉÕ¤± SPI ROM ¤«¤é¥Ö¡¼¥È¤·¤¿¤¤(XC-1,¸Å¤¤¾ðÊó)

¢¨XMOS ¤«¤é SPI ROM ¤¬¤Ä¤¤¤¿¥Ð¡¼¥¸¥ç¥ó¡¢XC-1A ¤¬½Ð¤Þ¤·¤¿(2009/12)

¡¡¥Õ¥¡¡¼¥à¥¦¥§¥¢¥Ð¡¼¥¸¥ç¥ó 1.1 °Ê¹ß¤Ç¤Ï¡¢¥Ö¡¼¥È¡ÊUSB Àܳ¡Ë»þ¤Ë B ¥Ü¥¿¥ó¤ò²¡²¼¤¹¤ë¤È¡¢SPI ¥Ö¡¼¥È¤¹¤ë¤È¤¤¤¦µ­½Ò¤¬¤¢¤ê¤Þ¤¹¡£

¡¡¥Õ¥¡¡¼¥à¥¦¥§¥¢¥Ð¡¼¥¸¥ç¥ó¤Ï¡¢1.1 °Ê¹ß¤Î¥Õ¥¡¡¼¥à¥¦¥§¥¢¤Ç¤¢¤ì¤Ð¡¢USB Àܳľ¸å¡¢¥Ç¥âµ¯Æ°Á°¤ËÅÀÅô¤¹¤ë LED ¤ÇȽÊ̤Ǥ­¤Þ¤¹¡£(²¼µ­¤ÏXC-1 Development Kit Addendum ¤«¤é°úÍÑ)

You can check the firmware version installed when you connect the XC-1 to the
USB cable. The button LEDs light up to indicate the major version number and the
clock LEDs indicate the minor number. For example, version 1.1 is identified when
Button A LED and Clock LED 1 light up. If no LEDs light up the firmware is
version 1.0.

¡¡SPI FLASH ¥á¥â¥ê¤ÎÀܳÊýË¡¡¢¥×¥í¥°¥é¥à¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï¡¢Á°½Ò¤ÎXS1 System Specification¤ÎÂ裲¾Ï¤Ë¤«¤«¤ì¤Æ¤¤¤Þ¤¹¡£

¡¡SPI FLASH(ROM) ¤È¤¤¤Ã¤Æ¤â¤¤¤í¤¤¤í¤¢¤ê¤Þ¤¹¡£XMOS ¤Î¹ë²ÚÈǤΤۤ¦¤Î¥­¥Ã¥È¡¢XDK ¤Ç¤Ï EPCS1(Altera ¤Î FPGA ¥³¥ó¥Õ¥£¥°¥ì¡¼¥·¥ç¥óÍÑ) ¤¬»È¤ï¤ì¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢¤³¤ì¤Ï³Î¼Â¤Ë»È¤¨¤½¤¦¤Ç¤¹¡£

¡¡Â¾¤Ë¤â Xlinkers ¥Õ¥©¡¼¥é¥à¤ò¸«¤Æ¤¤¤ë¤È¡¢AT25F512 ¤ä M25PE10 ¤Ê¤É¤Î̾Á°¤¬½Ð¤Æ¤­¤Þ¤¹¡£¥Ç¡¼¥¿¥·¡¼¥È¤ò¸«¤ë¤È¡¢¤¿¤·¤«¤Ë¥³¥Þ¥ó¥É¤Ï¸ß´¹¤Ã¤Ý¤¤¤Ç¤¹¡£

¡¡¤È¤ê¤¢¤¨¤º¡¢°ÂÁ´¥Ñ¥¤¤Î EPCS1 ¤ò Digikey ¤Ç¹ØÆþ¤·¤Æ¡¢½ñ¤­¹þ¤ß¡¢SPI ¥Ö¡¼¥È¤·¤Æ¤ß¤Þ¤·¤¿¡£

¡¡¡ú¿·¤·¤¯½Ð¤¿XC-2 Ethernet ¥­¥Ã¥È¤Ç¤Ï¡¢Atmel ¤Î AT25DF041A ¤¬»È¤ï¤ì¤Æ¤¤¤Þ¤¹¡£¤³¤ì¤Ï EPCS1 ¤è¤ê¤â°Â¤¤¾å¤Ë¡¢ÍÆÎ̤âÂ礭¤¤(4MBit)¤Ç¤¹¤Î¤Ç¡¢¤³¤ì¤«¤éÇ㤦¤Ê¤é¤³¤Á¤é¤Ç¤·¤ç¤¦¤«¡£

¡¡SPI FLASH ¤Ø¤Î½ñ¤­¹þ¤ß¥Ä¡¼¥ë¤Ç¤¹¤¬¡¢Desktop Tools 9.2.0 ¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¤È¡¢xflash.exe ¤Ê¤ë¥³¥Þ¥ó¥É¤¬°ì½ï¤Ë¤Ä¤¤¤Æ¤­¤Þ¤¹¡£¥³¥ì¤ò»È¤¦¤È¡¢Æñ¤·¤¤¤³¤È¤ò¹Í¤¨¤º¤ËÀܳ¤¹¤ë¤È¡¢¤½¤Î¤Þ¤Þ XC-1 ¤ò FLASH ¥é¥¤¥¿¤È¤·¤Æ»È¤¨¤Þ¤¹¡£

¡¡¼ÂÂÎÇÛÀþ¿Þ¡ÊÅŸ»¤Î¥Ñ¥¹¥³¥ó(104)¤È nCS ¤Î¥×¥ë¥¢¥Ã¥×¤¬½ñ¤¤¤Æ¤Ê¤¤¤Ç¤¹¡£¥×¥ë¥¢¥Ã¥×¤Ï¤Ê¤¯¤Æ¤âÆ°¤­¤Þ¤·¤¿¡Ë¡£

¡¡¾åµ­¤Î¤è¤¦¤ËÀܳ¤·¡¢xflash ¤ò»È¤Ã¤Æ½ñ¤­¹þ¤à¤È¡¢°Ê²¼¤Î¤è¤¦¤Ê¥á¥Ã¥»¡¼¥¸¤ò½Ð¤·¤Æ½ñ¤­¹þ¤ß¤¬¤Ç¤­¤Þ¤·¤¿¡£

C:\Program Files\Xmos\DesktopTools\9.2.0>xflash  c:\work\xc1\tut1\Debug\tut1.xe
Building flash images...
Programmer started
Erase sectors:
 3...
 Programming page at address:
  0x000800...
SPI flash programming completed successfully.

C:\Program Files\Xmos\DesktopTools\9.2.0>

¡¡¤Þ¤¿¡¢SPI ROM ¤ò¼ÂÁõ¤»¤º¤Ë(XC-1 ¤ÏÀܳ¾õÂÖ)¼Â¹Ô¤¹¤ë¤È¡¢°Ê²¼¤Î¤è¤¦¤Ë½Ð¤Þ¤·¤¿¡£

C:\Program Files\Xmos\DesktopTools\9.2.0>xflash  c:\work\xc1\tut1\Debug\tut1.xe
Building flash images...
Programmer started
Failed to initialize access to SPI flash.
Error: F03013 Failed to complete flash programming.

¡¡¤µ¤Æ¡¢SPI ¤Ë½ñ¤­¹þ¤á¤¿¤ï¤±¤Ç¤¹¤¬¡¢B ¥Ü¥¿¥ó¤ò²¡¤·¤Ê¤¬¤é USB ¤òÁÞ¤¹¤È¡¢¤¿¤·¤«¤Ë½ñ¤­¹þ¤ó¤À¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬µ¯Æ°.....¤¹¤ë¤Ï¤º¤¬¡¢¤¹¤ë¤È¤­¤È¤·¤Ê¤¤¤È¤­¤¬¤¢¤ê¤Þ¤¹¡£

¡¡¤¤¤í¤¤¤íÄ´¤Ù¤Æ¤¤¤ë¤È¡¢Core0 ¤Î¤ß¤Î .xe ¤Ïµ¯Æ°¤¹¤ë¤Î¤Ç¤¹¤¬¡¢Ê£¿ô¤Î¥³¥¢¤ò»È¤¦ .xe ¤Ï SPI ¤Ë½ñ¤­¹þ¤á¤ë¤â¤Î¤Î¡¢B ¥Ü¥¿¥ó¤Ç¤Ïµ¯Æ°¤·¤Þ¤»¤ó¡£

¡¡xlinkers ¤Çʹ¤¤¤Æ¸«¤¿½ê¡¢

To boot multicore from flash, you need to move resistor R11 onto R12. 
This will set the other cores to boot from flash.

¡¡¡©¡©¡©R11¡©¡©¡©R12 ¤½¤ó¤Ê¥ì¥¸¥¹¥¿¤¢¤Ã¤¿¤Ã¤±¡©
¡¡¤È¿ôʬ¹Í¤¨¤Æ¡¢²óÏ©¿Þ¤Î R11 ¤È R12 (Äñ¹³=resistor!=registor ¤À!)
¤È¤¤¤¦¤³¤È¤Ëµ¤¤Å¤­¡¢Áá® R11¡ÊSS XC0 BS0=H ¤Ç¥Ö¡¼¥È¼ïÊÌ JTAG) ¤ò R12 (SS XC0 BS0=L ¤Ç¥Ö¡¼¥È¼ïÊÌ SPI) ¤ËÊѹ¹¡£

¡ú¤³¤ÎÊѹ¹(R11->R12)¤Î¤¢¤È¡¢²¿ÅÙ¤«¥Ç¥Ð¥Ã¥°¤ò¤ä¤Ã¤Æ¤ß¤Æ¡¢
¥Þ¥ë¥Á¥³¥¢¥¢¥×¥ê¤È¤½¤¦¤Ç¤Ê¤¤¥¢¥×¥ê¤Ç¡¢xrun ¤ä IDE ¤«¤é¤Î¥Ç¥Ð¥Ã¥°¤¬
Æ°ºî¤·¤¿¤ê¤·¤Ê¤«¤Ã¤¿¤ê¡¢¤È¤¤¤¦¤³¤È¤¬¤¢¤ê¤Þ¤·¤¿¡£
¤Ê¤Î¤Ç¡¢¸½ºß¤Ï¡¢¥¹¥¤¥Ã¥Á¤ò¤Ä¤±¤Æ¡¢SS XC0 BS0=L/H ¤òÀÚ¤êÂؤ¨
¤Ç¤­¤ë¤è¤¦¤Ë¤·¤Þ¤·¤¿¡£
¡úxrun ¼ºÇÔ,¥Ç¥Ð¥Ã¥°¥â¡¼¥É¤ËÆþ¤ì¤Ê¤¤¸½¾Ý¤¬½Ð¤ë¾ì¹ç¤Ë¤Ï¡¢
ɬ¤º USB Àܳ»þ¤Ë A ¥Ü¥¿¥ó²¡²¼¡Ê¥×¥í¥°¥é¥à¥â¡¼¥É¡Ë¤Ç A ¥Ü¥¿¥óÏƤÎ
LED ¤Î 3 ²óÅÀÌǤò³Îǧ¤¹¤ë¤è¤¦¤Ë¤¹¤ë¤È¤¦¤Þ¤¯¤¤¤¯¤è¤¦¤Ç¤¹¡£

¡¡¤·¤«¤·¡¢XC-1 ñÆȤǥ֡¼¥È¤¹¤ë¤Ë¤Ï¡¢¤Þ¤À¤¤¤¯¤Ä¤«¤ÎÊɤ¬¤¢¤ê¤Þ¤¹¡£

¡¡¤¿¤á¤·¤Ë·ÈÂÓ½¼ÅÅÍѤΡ¢+5V ÅŸ»¤À¤±¤­¤Æ¤¤¤ë¡¢¡Ö¥Ë¥» USB¡×¤ò¤Ä¤Ê¤¤¤Ç¤ß¤Þ¤·¤¿¤¬¡¢µ¯Æ°¤·¤Þ¤»¤ó¤Ç¤·¤¿¡£

¡¡XC-1 ¤Î²óÏ©¿Þ¤ò¤ß¤ë¤È¡¢USB ¥Ð¥¹¥Ñ¥ï¡¼¤Î¥¹¥¤¥Ã¥Á¥ó¥°¤¬ FTDI ¤Î USB-Serial&JTAG ¤ÎÀФǹԤï¤ì¤Æ¤¤¤ë(Q4)¤Î¤Ç¡¢Ã±½ã¤Ë USB ¤Î¤È¤³¤í¤«¤é 5V ¤òÆþ¤ì¤ë¤À¤±¤Ç¤ÏÂÌÌܤǡ¢FTDI ¤ÎÀФ¬¥Û¥¹¥È¤È¤Î¥ê¥ó¥¯¤ò³ÎΩ¤·¤Ê¤¤¤ÈÅŸ»¤¬¶¡µë¤µ¤ì¤Ê¤¤¤è¤¦¤Ç¤¹¡£

¡¡¤Þ¤¿¡¢Q12 ¤¬ FTDI ¤ÎÀФˤĤʤ¬¤Ã¤Æ¤¤¤Æ¡¢¤³¤ì¤¬¥ê¥»¥Ã¥È¥é¥¤¥ó¤ò°ú¤ÃÄ¥¤Ã¤Æ¤¤¤ë¤è¤¦¤Ç¤¹¡£¤Ê¤Î¤Ç¡¢¤³¤Î¤Ø¤ó¤â¤Ê¤ó¤È¤«¤·¤Ê¤¤¤È¥Ø¥Ã¥À¤«¤é 5V Æþ¤ì¤Æ¤âÆ°¤«¤Ê¤¤¤«¤â¤·¤ì¤Þ¤»¤ó¡£

¡¡¡ÊÄɵ­¡ËXlinkers ¤Ë¤è¤ë¤È¡¢Q4,Q12 ¤òñ½ã¤Ë¼è¤ê½ü¤¯¤À¤±¤Ç³°ÉôÅŸ»»ÅÍͤˤʤë¤è¤¦¤Ç¤¹¡£USB ¤âÆ°ºî¤¹¤ë¤é¤·¤¤¡Ê̤³Îǧ¡Ë¢­
¡¡http://www.xlinkers.org/forum/viewtopic.php?f=4&t=355

X2Port[A-D] ¤Î¥Ø¥Ã¥À¤Ï¤É¤³¤Ë¤Ä¤Ê¤¬¤Ã¤Æ¤ë¤Î¡©

¡¡²óÏ©¿Þ¤ò¸«¤ë¤È¡¢H16,H17,H18,H19 ¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹¤¬¡¢¥æ¥Ë¥Ð¡¼¥µ¥ë¥¨¥ê¥¢¤Î X0Dnn ¤ß¤¿¤¤¤Ê¥·¥ë¥¯°õºþ¤¬¤Ê¤¤¤Î¤Ç¡¢°ì½Ö¡©¡©¡©¤È¤Ê¤Ã¤Æ¤·¤Þ¤¤¤Þ¤·¤¿¡£

¡¡¤É¤³¤«¤Ç¸«¤¿¤è¤¦¤Êµ¤¤¬¤·¤¿¤Î¤Ç¡¢Ãµ¤·¤Æ¤ß¤¿¤é¡¢XC-1 ¤ÎÀ½ÉÊ¥Ú¡¼¥¸¤Î¤ï¤­¤Ë¤¢¤ë XC1 Tutorial(xport1.pdf) ¤ÎºÇ¸å¤ÎÊý¤Î"XC1 Board Layout and Port Map"¤Î core0 ¤Î¥Ý¡¼¥Èɽ(core0 ¤Î LED ¤Î¥Ý¡¼¥È¤¬´Ö°ã¤Ã¤Æ¤ë¤ä¤Ä)¤Î¼¡¤Î¥Ú¡¼¥¸¤ÎFigure 5:XC-1 Block Diagram ¤ÎÃæ¤Ë³ä¤êÅö¤Æ¤¬¤¢¤ê¤Þ¤·¤¿¡£

¡¡H16:X2PortA
¡¡H17:X2PortB
¡¡H18:X2PortC
¡¡H19:X2PortD

¤Î¤è¤¦¤Ç¤¹¡£

¤Þ¤¿¸«¼º¤ï¤Ê¤¤¤è¤¦¤Ë¡¢¥á¥â¤·¤Æ¤ª¤­¤Þ¤¹¡£
LED ¤ÈƱ¤¸¤¯¡¢¤º¤ì¤Æ¤¤¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¤¬......

violates variable disjointness rules ¤Ã¤Æ¡©

XC ¸À¸ì¤Ç¤Ï¡¢°Û¤Ê¤ë¥¹¥ì¥Ã¥É¤«¤éƱ¤¸¥á¥â¥ê¤Ø¤Î¥¢¥¯¥»¥¹¤ò¤·¤è¤¦¤È¤¹¤ë¤È¡¢¤³¤Î¥¨¥é¡¼¤Ë¤Ê¤ë¤è¤¦¤Ç¤¹¡£

¤¢¤ó¤Þ¤ê°ÕÌ£¤Î¤Ê¤¤¥³¡¼¥É¤Ç¤¹¤¬¡¢Îã.....

#include <xs1.h>
#include <platform.h> 

out port cled0 = XS1_PORT_4C; /* 12,1,2,3 */
out port cledG = XS1_PORT_1E;
out port cledR = XS1_PORT_1F;

unsigned share_mem[10] ; /* ¶¦Í­¥á¥â¥ê */

/* ¥¹¥ì¥Ã¥É1 */
void produce()
{
	unsigned a;
	while(1) {
		for (a =0;a<10;a++){
			share_mem[a] = a ; // ¤³¤³¤È
	}
	}
}

/* ¥¹¥ì¥Ã¥É2 */
void consume()
{
	unsigned a ;
	cledG <: 1 ;
	cledR <: 1 ;
	while(1){
		for (a=0;a<10;a++) {
			cled0 <: share_mem[a] ; // ¤³¤³¤È
		}
	}
}

int main()
{
	par { // ¤³¤³¤È¤Ç¡¢Åܤé¤ì¤ë
		produce() ;
		consume() ;
	}
	return 0;
}

¡¡¥¹¥ì¥Ã¥É´ÖÄÌ¿®¤Ï¥Á¥ã¥ó¥Í¥ë¤ò»È¤¨¡¢¤È¤¤¤¦¤³¤È¤é¤·¤¤¤Ç¤¹¡£

¤Ç¤â¡¢ÇÛÎó¤È¤«Î¾Êý¤Ç¥¢¥¯¥»¥¹¤Ç¤­¤Ê¤¤¤È¥¤¥ä¤Ê¾ì¹ç

C ¥Õ¥¡¥¤¥ë¤Ë¤Ï¡¢¾åµ­¤ÎÀ©¸Â¤¬¤Ê¤¤¡Ê¥Á¥§¥Ã¥¯¤¬¤­¤«¤Ê¤¤¡©¡Ë¤è¤¦¤Ç¤¹¡£
¤Ê¤Î¤Ç¡¢¾å¤ÎÇÛÎó¤Î¶¦Í­Éôʬ¤ò C ¤ÇÊÌ¥Õ¥¡¥¤¥ë¤Ë¡¢²¼µ­¤Î¤è¤¦¤Ë½ñ¤¤¤Æ¡¢

unsigned share_mem[10] ;

int readmem(unsigned addr)
{
	return share_mem[addr] ;
}

void setmem(unsigned addr,unsigned data)
{
	share_mem[addr] = data ;
}

¡¡XC ¦¤Ç¡¢°Ê²¼¤ÎÀë¸À¤ò¤·¤Æ¡¢

extern unsigned share_mem[10] ;
extern int readmem(unsigned addr) ;
extern void setmem(unsigned addr,unsigned data) ;

¡¡¥á¥â¥ê¥¢¥¯¥»¥¹¤ò°Ê²¼¤Î¤è¤¦¤Ë½ñ¤­´¹¤¨¤ë¤È¡¢¤ª¤³¤é¤ì¤Ê¤¯¤Ê¤ê¤Þ¤¹¡£

void produce()
{
	unsigned a;
	while(1) {
		for (a =0;a<10;a++){
			setmem(a,a) ; // ¤³¤³¤È
		}
	}
}

void consume()
{
	unsigned a ;
	cledG <: 1 ;
	cledR <: 1 ;
	while(1){
		for (a=0;a<10;a++) {
			cled0 <: readmem(a) ; // ¤³¤³
		}
	}
}

¥³¥ó¥Ñ¥¤¥ë»þ¤Ë³Æ¥³¥¢¤Î¥ê¥½¡¼¥¹¤Î»ÈÍѾõ¶·¤òÃΤëÊýË¡ (¸Å¤¤¾ðÊó)

¡¡Desktop Tools 9.2.0(Eclipse) ¤Î¾ì¹ç¡¢Project > Properties ¤ÎÃæ¤Î¡¢°Ê²¼¤Î Xmos Mapper ¤Î xcc ¤Î¤È¤³¤í¤Ë "--show-report" ¥ª¥×¥·¥ç¥ó¤ò¤Ä¤±¤ë¡Ê²èÁü»²¾È¡Ë¡£

¡¡¡úËÜÅö¤Ï Mapper ¥Ä¥ê¡¼¤Î Misc ¤Î¤È¤³¤í¤Ë½ñ¤¯¤Î¤¬Àµ¤·¤¤¤è¤¦¤Êµ¤¤¬¤·¤Ê¤¤¤³¤È¤â¤Ê¤¤¤«¤â :-)


XMOS ¤Î XS1-G4 ¤Ç¤¢¤½¤Ö¡¡¡Ã¡¡XMOS ¤Î XS1-G4 ¤Ç¤¢¤½¤Ö - ¤½¤Î£²¡ä¡ä

Power.c XC1_EPCS1.jpg showreport.jpg

¡¡¥«¥Æ¥´¥ê¡¡¡§¡¡¤â¤¯¤·¤¤¡Ã¥²¡¼¥à¡Ã¥ì¥·¥Ô¡Ã¥³¥ó¥Ô¥å¡¼¥¿¡Ã»¨Ê¸¡ÃÀ¸³è¡ÃÅŻҹ©ºî¡Ã¤ª¤¤¤·¤¤Å¹¥Þ¥Ã¥×

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Top¥Ú¡¼¥¸¤Ø¡¡|¡¡¤â¤Æ¤Ê¤¤SNS¡Ö¤â¤¯¤·¤¤¡×