- Why Register?
- Download development tools
- Create and track support tickets
- Subscribe to resource updates
- Access latest developer news
XC-1 Tutorial (Korean)
XC-1
Version 9.9
Publication Date: 2009/10/16
Copyright © 2009 XMOS Ltd. All Rights Reserved.
XC-1
(9.9)
2/19
1
XC-1 XMOS XS1-G4 (Event-Driven Proces-
sor) . XC-1 XS1-G4, 16 LEDs, 4 press-buttons,
speaker, JTAG and ,
(through-hole prototyping) .
XS1-G4 XCore I/O
.
8 , 400 MIPS, 64Kbytes RAM . XS1-G4
( 9 ).
XMOS XC [1]C , I/O , ,
. XMOS
XC C .
XC-1 XC
. C [2]
. .
· LED
· LED
· LED 12-LED
· LED
· LED
· UART PC "Hello World"
·
XC ;
.
.
XMOS 9.7 .
[3]
.
www.xmos.com
XC-1
(9.9)
3/19
2
LED : port, <:
XC XC-1 LED
.
XC-1 16 LED . LED
( LED )
. 12 / LED X1-G4
( LED ). LED
.
XC-1 LED .
# include <platform .h>
out port bled = PORT_BUTTONLED ;
int main () {
bled <: 0x10;
while (1)
;
return 0;
}
bled
PORT_BUTTON_LED . XC-1.xn xs1.h
PORT_BUTTON_LED XS1_PORT_8D . 8D (8
bit) (D) . XC-1, bit of pins 8D
-LED . LED (active high)
.
,
. XC
I/O .
main .
bled <: 0x10;
<: (0b00010000) (bled)
. -LED LED
. bled -LED
.
www.xmos.com
XC-1
(9.9)
4/19
, LED
.
(global variables) .
out
.
XC-1 . (
[3] .) LED
.
4 LED LED
.
12 -LED LED (anodes)
4 (PORT_CLOCKLED_0/1/2 4A, 4B
4C .) (cathodes) 2 1
(PORT_CLOCKLED_SELG PORT_CLOCKLED_SELR
1E 1F .) , (active
high) . -LED 1 .
PORT_CLOCKLED_0: LED
.
I
II
III
IIII
V
VI
VII
VIII
IX
X
XI
XII
X0D15 X0D20 X0D21
X0D2
X0D3
X0D8
X0D9
X0D4
X0D5
X0D6
X0D7
X0D14
PORT_CLOCKLED_2
PORT_CLOCKLED_0
PORT_CLOCKLED_1
PORT_CLOCKLED_SELG
X0D12
PORT_CLOCKLED_SELR
X0D13
1: XC-1 12 2 -LED
www.xmos.com
XC-1
(9.9)
5/19
# include <platform .h>
out port cled0 = PORT_CLOCKLED_0 ;
out port cledG = PORT_CLOCKLED_SELG ;
out port cledR = PORT_CLOCKLED_SELR ;
int main(void) {
cledG <: 0;
// disable GREEN line
cledR <: 1;
// enable RED line
cled0 <: 0x1; // LED pattern
while (1);
return 0;
}
PORT_CLOCKLED_SELG low , high ,
0x1 PORT_CLOCKLED_0 (IIII, V, VI, VII) .
XC-1 . LED VII
.
12 LED .
(0xf PORT_CLOCKLED_0, PORT_CLOCKLED_1
PORT_CLOCKLED_2 .)
3
LED : timer, :>
LED XC
.
.
100 MHz
.
tmr t .
timer tmr;
tmr :> t;
,
.
t += FLASH_PERIOD ;
tmr when timerafter (t) :> void;
www.xmos.com
XC-1
(9.9)
6/19
,
. XC void .
LED - LED
.
.
# include <platform .h>
# define FLASH_PERIOD 20000000
out port cled0 = PORT_CLOCKLED_0 ;
out port cledG = PORT_CLOCKLED_SELG ;
out port cledR = PORT_CLOCKLED_SELR ;
int main(void) {
timer tmr;
unsigned ledGreen = 1;
unsigned t;
tmr :> t;
while (1) {
cledG <:
ledGreen ;
cledR <: ! ledGreen ;
cled0 <: 0x1;
t += FLASH_PERIOD ;
tmr when timerafter (t) :> void;
ledGreen = ! ledGreen ;
}
return 0;
}
XC-1 . LED
.
. LED LED 5 ,
LED LED 5
.
www.xmos.com
XC-1
(9.9)
7/19
4
LED : select
LED XC-1 XC select
.
select
.
case break return .
select
.
select
.
select {
case tmrF when timerafter ( timeF ) :> void :
/* respond to timeout ,
* switch LED between on and off */
...
break ;
case tmrC when timerafter ( timeC ) :> void :
/* respond to timeout ,
* change which LED is flashing */
...
break ;
}
select LED
.
# include <platform .h>
# define FLASH_PERIOD 10000000
# define CYCLE_PERIOD 60000000
out port cled0 = PORT_CLOCKLED_0 ;
out port cled1 = PORT_CLOCKLED_1 ;
out port cled2 = PORT_CLOCKLED_2 ;
out port cledG = PORT_CLOCKLED_SELG ;
out port cledR = PORT_CLOCKLED_SELR ;
www.xmos.com
XC-1
(9.9)
8/19
int main(void) {
unsigned ledOn = 1;
unsigned ledVal = 1;
timer tmrF , tmrC;
unsigned timeF , timeC ;
tmrF :> timeF;
tmrC :> timeC;
while (1) {
select {
case tmrF when timerafter ( timeF) :> void :
ledOn = !ledOn ;
cledG <: ledOn ;
timeF += FLASH_PERIOD ;
break;
case tmrC when timerafter ( timeC) :> void :
cled0 <: ledVal ;
cled1 <: ( ledVal >> 4);
cled2 <: ( ledVal >> 8);
ledVal <<= 1;
if ( ledVal == 0 x1000 )
ledVal = 1;
timeC += CYCLE_PERIOD ;
break;
}
}
return 0;
}
XC-1 . LED
.
5
: par
XC par
. XC-1
LED
www.xmos.com
XC-1
(9.9)
9/19
.
par
. .
in
port buttons = PORT_BUTTON ;
out port speaker = PORT_SPEAKER ;
int main(void) {
par {
cycleLED (cled0 , cled1 , cled2 ,
cledG , cledR ,
FLASH_PERIOD , CYCLE_PERIOD );
buttonListener (buttons , speaker );
}
return 0;
}
cycleLED LED (Section
4 ). buttonListener
.
# define TDELAY
100000
# define TLENGTH 500
void buttonListener (in port b, out port spkr) {
timer tmr;
int t, isOn = 1;
while (1) {
b when pinsneq (0 xf) :> void;
tmr :> t;
for (int i=0; i< TLENGTH ; i++) {
isOn = !isOn;
t += TDELAY ;
tmr when timerafter (t) :> void;
spkr <: isOn;
}
}
}
www.xmos.com
XC-1
(9.9)
10/19
pinsneq 0xf , 4
. for 0 1
, (audible sound)
.
4 LED
cycleLED . XC-1
. LED , 4
.
buttonListener 4 ,
.
6
LED : chan, chanend
XC .
, LED LED
.
XC .
chan .
int main(void) {
chan c;
par {
cycleLED (cled0 , cled1 , cled2 ,
cledG , cledR ,
FLASH_PERIOD , CYCLE_PERIOD ,
c);
buttonListener (buttons , speaker , c);
}
return 0;
}
(Channel ends) ,
par .
chanend .
www.xmos.com
XC-1
(9.9)
11/19
void buttonListener (in port b, out port spkr ,
chanend c);
XP .
c <: 0;
0 c .
.
.
buttonListener 0 c
.
cycleLED
isGreen . select
; .
case c :> int :
isGreen = ! isGreen ;
break ;
, isGreen
LED . XC-1 .
LED .
.
. (racing condition)
.
7
UART
.
UART
. , .
2 . high(1) .
(0)
(1) .
(asserted).
www.xmos.com
XC-1
/*
(9.9)
12/19
START
STOP
Bit
Bit
2: UART
1 (serialize)
1- .
# include <platform .h>
# define BIT_RATE 115200
# define BIT_TIME XS1_TIMER_HZ / BIT_RATE
void txByte (out port TXD , int byte );
out port TXD= PORT_UART_TX ;
int main ()
{
return 0;
}
void txByte (out port TXD , int byte) {
unsigned time;
timer t;
/* get initial time */
t :> time;
/* send start bit */
TXD <: 0;
time += BIT_TIME ;
t when timerafter (time) :> void;
www.xmos.com
XC-1
(9.9)
13/19
/* send data bits */
for (int i=0; i <8; i++) {
TXD <: >> byte;
time += BIT_TIME ;
t when timerafter (time) :> void;
}
/* send stop bit */
TXD <: 1;
time += BIT_TIME ;
t when timerafter (time) :> void;
}
UART (baud
rate) .
# define BIT RATE 115200
# define BIT_TIME XS1 - TIMER_HZ / BIT_RATE
TXD .
TXD <: 0;
time BIT_TIME
.
t when timerafter (time) :> time;
for .
.
for
TXD <: >> byte;
>> , (port-width)
(1) (right-shift).
, (shift)
.
--(output-shift-right) <: >> (output expression)
int .
www.xmos.com
XC-1
(9.9)
14/19
XC-1 USB- . USB
PC ,
COM 1 .
, XMOS XMOS
2 . XMOS ,
.
"Hello World" main .
XC-1 COM
XC-1 .
.
8
(prototyping) : on
XC on
. XCore2 (X2)
X2 UART
.
3 4 .
, (X0/PORT_BUTTON) 0
. 2
UART . UART
(X2/1A) .
2 (X2/1B)
UART . UART 0
.
.
1 PC COM JTAG .
2http://www.xmoslinkers.org/tag_search?tag=uart
www.xmos.com
XC-1
(9.9)
15/19
CORE 0
CORE 2
Button
UART
Listener
Channel c
Transmit
Speaker
Channel d
UART
Listener
Receive
3: UART
, 4 XC-1
.
1B
1A
X2PortA
4: XC-1 (prototyping) .
1A 1B .
stdcore platform.h
, XS1-G4.
(substatements) on .
# include <platform .h>
on stdcore [0] : in
port buttons = PORT_BUTTON ;
on stdcore [0] : out port speaker = PORT_SPEAKER ;
on stdcore [2] : in
port uartIn
= XS1_PORT_1A ;
on stdcore [2] : out port uartOut = XS1_PORT_1B ;
www.xmos.com
XC-1
(9.9)
16/19
int main(void) {
chan c, d;
par {
on stdcore [0] : buttonListener (buttons , c);
on stdcore [2] : transmit (uartOut , c);
on stdcore [2] : receive (uartIn , d);
on stdcore [0] : speakerListener (d, speaker );
}
return 0;
}
main on , par
(optional) return .
6 buttonListener
. (: . 1
.)
7 transmit
transmitByte .
receive .
receiveByte . (: --(input-
shirt-right) :> >> int 1 int
.
24 (right-shift) .
speakerListener .
XC-1 . 4
.
.
XC-1 XC-1
. XC , UART
UART .
. 4
.
www.xmos.com
XC-1
(9.9)
17/19
9
XC1
XC-1 5 .
XC-1 /
XC-1 Hardware Manual () [4] .
XC Programming XC on XMOS Devices () [1]
.
ToolsUser Guide () [3] .
XS1 XS1 Architecture() [5], Instruction Set (
) [6], System () [7] .
.
· http://www.xmos.com
· http://www.xmoslinkers.org
www.xmos.com
XC-1
(9.9)
18/19
XCORE2
X2PortA Header
X2PortB Header
X2D0
X2D1
X2D12
X2D13
X2D2
X2D3
X2D14
X2D15
X2D4
X2D5
X2D16
X2D17
3V3
GND
3V3
GND
X2D6
X2D7
X2D18
X2D19
X2D8
X2D9
X2D20
X2D21
X2D10
X2D11
X2D22
X2D23
XCORE0 PORT_BUTTONLED [A:D]
5V
GND
5V
GND
X2D[0:11]
X2D[12:23]
PORT_BUTTON [A:D]
XCORE0
PORT_CLOCKLED_0/1/2
X0D0
X010
X0D10
X0D11
XOD26
X0D27
PORT_SPEAKER
X0D28
PORT_UART_RX
X0D29
XS1-G4
X0D30
EE2
PORT_UART_TX
X0D31
X0D32
X0D33
X0D36
X0D37
mUSB-B
FTDI
X0D38
X0D39
DEBUG
PROTOTYPE AREA
JTAG
RST
RESET
PGOOD
CLOCK
X2D[24:35]
X2D[36:43]
PWREN#
XCORE2
3V3
PSU
20MHz
XTO
1V
X2D24
X2D25
X2D36
X2D37
X2D26
X2D27
X2D38
X2D39
5V
X2D28
X2D29
X2D40
X2D41
3V3
GND
3V3
GND
X2D30
X2D31
X2D42
X2D43
X2D32
X2D33
NC
NC
X2D34
X2D35
NC
NC
5V
GND
5V
X2PortC Header
X2PortD Header
5: XC-1
www.xmos.com
19/19
[1] Douglas Watt. Programming XC on XMOS Devices. XMOS Limited, Sep 2009.
http://www.xmos.com/published/xc_kr.
[2] Brian W. Kernighan and Dennis M. Ritchie. The C programming language.
Prentice Hall Press, Upper Saddle River, NJ, USA, 1988.
[3] Douglas Watt and Huw Geddes. The XMOS Tools User Guide. XMOS Limited,
2009. http://www.xmos.com/published/xtools_en.
[4] XMOS Ltd. XC-1 Hardware Manual. Website, 2009. http://www.xmos.com/
published/xc1hw.
[5] David May. XMOS XS1 Architecture. Website, 2008. http://www.xmos.com/
published/xs1-87.
[6] David May and Henk Muller. XMOS XS1 Instruction Set Architecture. Web-
site, 2008. http://www.xmos.com/published/xs1inst87.
[7] David May and Ali Dixon and Ayewin Oung and Henk Muller. XS1-G System
Specification. Website, 2008. http://www.xmos.com/publi
Version 9.9
Publication Date: 2009/10/16
Copyright © 2009 XMOS Ltd. All Rights Reserved.
XC-1
(9.9)
2/19
1
XC-1 XMOS XS1-G4 (Event-Driven Proces-
sor) . XC-1 XS1-G4, 16 LEDs, 4 press-buttons,
speaker, JTAG and ,
(through-hole prototyping) .
XS1-G4 XCore I/O
.
8 , 400 MIPS, 64Kbytes RAM . XS1-G4
( 9 ).
XMOS XC [1]C , I/O , ,
. XMOS
XC C .
XC-1 XC
. C [2]
. .
· LED
· LED
· LED 12-LED
· LED
· LED
· UART PC "Hello World"
·
XC ;
.
.
XMOS 9.7 .
[3]
.
www.xmos.com
XC-1
(9.9)
3/19
2
LED : port, <:
XC XC-1 LED
.
XC-1 16 LED . LED
( LED )
. 12 / LED X1-G4
( LED ). LED
.
XC-1 LED .
# include <platform .h>
out port bled = PORT_BUTTONLED ;
int main () {
bled <: 0x10;
while (1)
;
return 0;
}
bled
PORT_BUTTON_LED . XC-1.xn xs1.h
PORT_BUTTON_LED XS1_PORT_8D . 8D (8
bit) (D) . XC-1, bit of pins 8D
-LED . LED (active high)
.
,
. XC
I/O .
main .
bled <: 0x10;
<: (0b00010000) (bled)
. -LED LED
. bled -LED
.
www.xmos.com
XC-1
(9.9)
4/19
, LED
.
(global variables) .
out
.
XC-1 . (
[3] .) LED
.
4 LED LED
.
12 -LED LED (anodes)
4 (PORT_CLOCKLED_0/1/2 4A, 4B
4C .) (cathodes) 2 1
(PORT_CLOCKLED_SELG PORT_CLOCKLED_SELR
1E 1F .) , (active
high) . -LED 1 .
PORT_CLOCKLED_0: LED
.
I
II
III
IIII
V
VI
VII
VIII
IX
X
XI
XII
X0D15 X0D20 X0D21
X0D2
X0D3
X0D8
X0D9
X0D4
X0D5
X0D6
X0D7
X0D14
PORT_CLOCKLED_2
PORT_CLOCKLED_0
PORT_CLOCKLED_1
PORT_CLOCKLED_SELG
X0D12
PORT_CLOCKLED_SELR
X0D13
1: XC-1 12 2 -LED
www.xmos.com
XC-1
(9.9)
5/19
# include <platform .h>
out port cled0 = PORT_CLOCKLED_0 ;
out port cledG = PORT_CLOCKLED_SELG ;
out port cledR = PORT_CLOCKLED_SELR ;
int main(void) {
cledG <: 0;
// disable GREEN line
cledR <: 1;
// enable RED line
cled0 <: 0x1; // LED pattern
while (1);
return 0;
}
PORT_CLOCKLED_SELG low , high ,
0x1 PORT_CLOCKLED_0 (IIII, V, VI, VII) .
XC-1 . LED VII
.
12 LED .
(0xf PORT_CLOCKLED_0, PORT_CLOCKLED_1
PORT_CLOCKLED_2 .)
3
LED : timer, :>
LED XC
.
.
100 MHz
.
tmr t .
timer tmr;
tmr :> t;
,
.
t += FLASH_PERIOD ;
tmr when timerafter (t) :> void;
www.xmos.com
XC-1
(9.9)
6/19
,
. XC void .
LED - LED
.
.
# include <platform .h>
# define FLASH_PERIOD 20000000
out port cled0 = PORT_CLOCKLED_0 ;
out port cledG = PORT_CLOCKLED_SELG ;
out port cledR = PORT_CLOCKLED_SELR ;
int main(void) {
timer tmr;
unsigned ledGreen = 1;
unsigned t;
tmr :> t;
while (1) {
cledG <:
ledGreen ;
cledR <: ! ledGreen ;
cled0 <: 0x1;
t += FLASH_PERIOD ;
tmr when timerafter (t) :> void;
ledGreen = ! ledGreen ;
}
return 0;
}
XC-1 . LED
.
. LED LED 5 ,
LED LED 5
.
www.xmos.com
XC-1
(9.9)
7/19
4
LED : select
LED XC-1 XC select
.
select
.
case break return .
select
.
select
.
select {
case tmrF when timerafter ( timeF ) :> void :
/* respond to timeout ,
* switch LED between on and off */
...
break ;
case tmrC when timerafter ( timeC ) :> void :
/* respond to timeout ,
* change which LED is flashing */
...
break ;
}
select LED
.
# include <platform .h>
# define FLASH_PERIOD 10000000
# define CYCLE_PERIOD 60000000
out port cled0 = PORT_CLOCKLED_0 ;
out port cled1 = PORT_CLOCKLED_1 ;
out port cled2 = PORT_CLOCKLED_2 ;
out port cledG = PORT_CLOCKLED_SELG ;
out port cledR = PORT_CLOCKLED_SELR ;
www.xmos.com
XC-1
(9.9)
8/19
int main(void) {
unsigned ledOn = 1;
unsigned ledVal = 1;
timer tmrF , tmrC;
unsigned timeF , timeC ;
tmrF :> timeF;
tmrC :> timeC;
while (1) {
select {
case tmrF when timerafter ( timeF) :> void :
ledOn = !ledOn ;
cledG <: ledOn ;
timeF += FLASH_PERIOD ;
break;
case tmrC when timerafter ( timeC) :> void :
cled0 <: ledVal ;
cled1 <: ( ledVal >> 4);
cled2 <: ( ledVal >> 8);
ledVal <<= 1;
if ( ledVal == 0 x1000 )
ledVal = 1;
timeC += CYCLE_PERIOD ;
break;
}
}
return 0;
}
XC-1 . LED
.
5
: par
XC par
. XC-1
LED
www.xmos.com
XC-1
(9.9)
9/19
.
par
. .
in
port buttons = PORT_BUTTON ;
out port speaker = PORT_SPEAKER ;
int main(void) {
par {
cycleLED (cled0 , cled1 , cled2 ,
cledG , cledR ,
FLASH_PERIOD , CYCLE_PERIOD );
buttonListener (buttons , speaker );
}
return 0;
}
cycleLED LED (Section
4 ). buttonListener
.
# define TDELAY
100000
# define TLENGTH 500
void buttonListener (in port b, out port spkr) {
timer tmr;
int t, isOn = 1;
while (1) {
b when pinsneq (0 xf) :> void;
tmr :> t;
for (int i=0; i< TLENGTH ; i++) {
isOn = !isOn;
t += TDELAY ;
tmr when timerafter (t) :> void;
spkr <: isOn;
}
}
}
www.xmos.com
XC-1
(9.9)
10/19
pinsneq 0xf , 4
. for 0 1
, (audible sound)
.
4 LED
cycleLED . XC-1
. LED , 4
.
buttonListener 4 ,
.
6
LED : chan, chanend
XC .
, LED LED
.
XC .
chan .
int main(void) {
chan c;
par {
cycleLED (cled0 , cled1 , cled2 ,
cledG , cledR ,
FLASH_PERIOD , CYCLE_PERIOD ,
c);
buttonListener (buttons , speaker , c);
}
return 0;
}
(Channel ends) ,
par .
chanend .
www.xmos.com
XC-1
(9.9)
11/19
void buttonListener (in port b, out port spkr ,
chanend c);
XP .
c <: 0;
0 c .
.
.
buttonListener 0 c
.
cycleLED
isGreen . select
; .
case c :> int :
isGreen = ! isGreen ;
break ;
, isGreen
LED . XC-1 .
LED .
.
. (racing condition)
.
7
UART
.
UART
. , .
2 . high(1) .
(0)
(1) .
(asserted).
www.xmos.com
XC-1
/*
(9.9)
12/19
START
STOP
Bit
Bit
2: UART
1 (serialize)
1- .
# include <platform .h>
# define BIT_RATE 115200
# define BIT_TIME XS1_TIMER_HZ / BIT_RATE
void txByte (out port TXD , int byte );
out port TXD= PORT_UART_TX ;
int main ()
{
return 0;
}
void txByte (out port TXD , int byte) {
unsigned time;
timer t;
/* get initial time */
t :> time;
/* send start bit */
TXD <: 0;
time += BIT_TIME ;
t when timerafter (time) :> void;
www.xmos.com
XC-1
(9.9)
13/19
/* send data bits */
for (int i=0; i <8; i++) {
TXD <: >> byte;
time += BIT_TIME ;
t when timerafter (time) :> void;
}
/* send stop bit */
TXD <: 1;
time += BIT_TIME ;
t when timerafter (time) :> void;
}
UART (baud
rate) .
# define BIT RATE 115200
# define BIT_TIME XS1 - TIMER_HZ / BIT_RATE
TXD .
TXD <: 0;
time BIT_TIME
.
t when timerafter (time) :> time;
for .
.
for
TXD <: >> byte;
>> , (port-width)
(1) (right-shift).
, (shift)
.
--(output-shift-right) <: >> (output expression)
int .
www.xmos.com
XC-1
(9.9)
14/19
XC-1 USB- . USB
PC ,
COM 1 .
, XMOS XMOS
2 . XMOS ,
.
"Hello World" main .
XC-1 COM
XC-1 .
.
8
(prototyping) : on
XC on
. XCore2 (X2)
X2 UART
.
3 4 .
, (X0/PORT_BUTTON) 0
. 2
UART . UART
(X2/1A) .
2 (X2/1B)
UART . UART 0
.
.
1 PC COM JTAG .
2http://www.xmoslinkers.org/tag_search?tag=uart
www.xmos.com
XC-1
(9.9)
15/19
CORE 0
CORE 2
Button
UART
Listener
Channel c
Transmit
Speaker
Channel d
UART
Listener
Receive
3: UART
, 4 XC-1
.
1B
1A
X2PortA
4: XC-1 (prototyping) .
1A 1B .
stdcore platform.h
, XS1-G4.
(substatements) on .
# include <platform .h>
on stdcore [0] : in
port buttons = PORT_BUTTON ;
on stdcore [0] : out port speaker = PORT_SPEAKER ;
on stdcore [2] : in
port uartIn
= XS1_PORT_1A ;
on stdcore [2] : out port uartOut = XS1_PORT_1B ;
www.xmos.com
XC-1
(9.9)
16/19
int main(void) {
chan c, d;
par {
on stdcore [0] : buttonListener (buttons , c);
on stdcore [2] : transmit (uartOut , c);
on stdcore [2] : receive (uartIn , d);
on stdcore [0] : speakerListener (d, speaker );
}
return 0;
}
main on , par
(optional) return .
6 buttonListener
. (: . 1
.)
7 transmit
transmitByte .
receive .
receiveByte . (: --(input-
shirt-right) :> >> int 1 int
.
24 (right-shift) .
speakerListener .
XC-1 . 4
.
.
XC-1 XC-1
. XC , UART
UART .
. 4
.
www.xmos.com
XC-1
(9.9)
17/19
9
XC1
XC-1 5 .
XC-1 /
XC-1 Hardware Manual () [4] .
XC Programming XC on XMOS Devices () [1]
.
ToolsUser Guide () [3] .
XS1 XS1 Architecture() [5], Instruction Set (
) [6], System () [7] .
.
· http://www.xmos.com
· http://www.xmoslinkers.org
www.xmos.com
XC-1
(9.9)
18/19
XCORE2
X2PortA Header
X2PortB Header
X2D0
X2D1
X2D12
X2D13
X2D2
X2D3
X2D14
X2D15
X2D4
X2D5
X2D16
X2D17
3V3
GND
3V3
GND
X2D6
X2D7
X2D18
X2D19
X2D8
X2D9
X2D20
X2D21
X2D10
X2D11
X2D22
X2D23
XCORE0 PORT_BUTTONLED [A:D]
5V
GND
5V
GND
X2D[0:11]
X2D[12:23]
PORT_BUTTON [A:D]
XCORE0
PORT_CLOCKLED_0/1/2
X0D0
X010
X0D10
X0D11
XOD26
X0D27
PORT_SPEAKER
X0D28
PORT_UART_RX
X0D29
XS1-G4
X0D30
EE2
PORT_UART_TX
X0D31
X0D32
X0D33
X0D36
X0D37
mUSB-B
FTDI
X0D38
X0D39
DEBUG
PROTOTYPE AREA
JTAG
RST
RESET
PGOOD
CLOCK
X2D[24:35]
X2D[36:43]
PWREN#
XCORE2
3V3
PSU
20MHz
XTO
1V
X2D24
X2D25
X2D36
X2D37
X2D26
X2D27
X2D38
X2D39
5V
X2D28
X2D29
X2D40
X2D41
3V3
GND
3V3
GND
X2D30
X2D31
X2D42
X2D43
X2D32
X2D33
NC
NC
X2D34
X2D35
NC
NC
5V
GND
5V
X2PortC Header
X2PortD Header
5: XC-1
www.xmos.com
19/19
[1] Douglas Watt. Programming XC on XMOS Devices. XMOS Limited, Sep 2009.
http://www.xmos.com/published/xc_kr.
[2] Brian W. Kernighan and Dennis M. Ritchie. The C programming language.
Prentice Hall Press, Upper Saddle River, NJ, USA, 1988.
[3] Douglas Watt and Huw Geddes. The XMOS Tools User Guide. XMOS Limited,
2009. http://www.xmos.com/published/xtools_en.
[4] XMOS Ltd. XC-1 Hardware Manual. Website, 2009. http://www.xmos.com/
published/xc1hw.
[5] David May. XMOS XS1 Architecture. Website, 2008. http://www.xmos.com/
published/xs1-87.
[6] David May and Henk Muller. XMOS XS1 Instruction Set Architecture. Web-
site, 2008. http://www.xmos.com/published/xs1inst87.
[7] David May and Ali Dixon and Ayewin Oung and Henk Muller. XS1-G System
Specification. Website, 2008. http://www.xmos.com/publi
Revision History
| Revision | Released | Formats | Supported Tools |
|---|---|---|---|
| Version: 9.9-[Y-M] | September 15, 2010 | download | N/A |
