[转帖]我能够连接两个startkit通过XMOS Links?
Hi,
我过去常常连接两个XK-1板,和它们都工作的很好。
现在,我从Digikey再得到两个startkit。
我想通过XMOS Link连接两个板,像两个XK-1
可是,我不知道怎么样为两个startkit写入合适的XN文件,
和我不知道怎么样分别为每个核写程序。
(XK-1的连接器有JTAG链。所以为两个XK-1编程跟为单个核一样)
这里有任何文件或者样本吗?
请让我知道。
回答:
通过link把两个startkit连接起来和从SPI启动它们是有可能的。步骤应该按照下面:
1.用附加的.xn文件编译一个两tile应用程序。你只能用ADC tile中的一个(不可能同时包括在网络中,因为它们将具有相同的路由ID)。例如:
xcc app.xc 2_STARTKITS.xn -o app.xe
2.接着生成两个flash二进制图像:
xflash app.xe --noinq --boot-partition-size 0x20000 -o flash_image
这将创建两个图像(flash_image_0和flash_image_1)。
3.最后在jtag上写进flash图像:
xflash --id <board_0_id> --write-all flash_image_0 --target STARTKIT
xflash --id <board_1_id> --write-all flash_image_1 --target STARTKIT
4.如果你两个板电源循环在同一时间,它们应该启动到两个你已经写入flash的tile应用程序
附件是ExampleXN文件
附件:
回复:
HI
附上我的测试程序-LED闪烁程序-不工作。
我的测试程序是...
1)用你告诉我的方法编译app.xc和xflash的代码。
附件app.xc程序是LED闪烁程序,所以
tile[1] counter send -- XMOS Link C --> tile[0] recieve -> out to tile[0] LED0,1 (XS1_PORT_1A.1D)
2)我连接每个板的linkc
J8的连接是
Board 0 J8 ---- Board 1 J8
Pin3 (1OUT) ---- Pin6 (1IN)
Pin4 (0OUT) ---- Pin5 (0IN)
Pin5 (0IN) ---- Pin4 (0OUT)
Pin6 (1IN) ---- Pin3 (1OUT)
Pin11(GND) ---- Pin11(GND)
Pin13(+5V) ---- Pin13(+5V)
3)我连接USB只有board0通过J8-PIN13电源。
4)引导每个内核(可能),但指示灯不闪烁。
5)xrun --dump-state在下面,看来要被停止。
--- tile(board) 0 side---
xrun --dump-state-with-no-xe
***** Active Cores *****
* 1 tile[0] core[0] 0x000102a4 in ?? ()
Thread 1 (tile[0] core[0]):
***** Call Stack *****
#0 0x000102a4 in ?? ()
***** Disassembly *****
0x102a4: in (2r) r0, res[r1] *
0x102a6: chkct (rus) res[r1], 0x1 *
0x102a8: ldc (ru6) r5, 0x0
0x102aa: out (r2r) res[r1], r5 *
0x102ac: outct (rus) res[r1], 0x1 *
***** Registers *****
r0 0x80012002 -2147409918
r1 0x80010002 -2147418110
r2 0x80020002 -2147352574
r3 0x104c4 66756
r4 0x1 1
r5 0x10450 66640
r6 0x0 0
r7 0x0 0
r8 0x0 0
r9 0x0 0
r10 0x0 0
r11 0x104c4 66756
cp 0x10440 66624
dp 0x10460 66656
sp 0x1ff74 130932
lr 0x101b2 65970
pc 0x102a4 66212
sr 0x40 64
spc 0x0 0
ssr 0x0 0
et 0x0 0
ed 0x0 0
sed 0x0 0
kep 0x10080 65664
ksp 0x0 0
---- tile(board) 1 side---
***** Active Cores *****
* 1 tile[0] core[0] 0x0001016e in ?? ()
Thread 1 (tile[0] core[0]):
***** Call Stack *****
#0 0x0001016e in ?? ()
***** Disassembly *****
0x1016e: in (2r) r4, res[r0] *
0x10170: setd (r2r) res[r0], r4
0x10172: in (2r) r6, res[r0] *
0x10174: ldw (3r) r4, r11[r6]
0x10176: in (2r) r5, res[r0] *
***** Registers *****
r0 0x80020002 -2147352574
r1 0x1 1
r2 0x1 1
r3 0x0 0
r4 0x0 0
r5 0x80020102 -2147352318
r6 0x0 0
r7 0xff00 65280
r8 0x0 0
r9 0x0 0
r10 0x0 0
r11 0x10364 66404
cp 0x10320 66336
dp 0x10330 66352
sp 0x1ff74 130932
lr 0x1006c 65644
pc 0x1016e 65902
sr 0x40 64
spc 0x0 0
ssr 0x0 0
et 0x0 0
ed 0x0 0
sed 0x0 0
kep 0x10080 65664
ksp 0x0 0
附件:
回答:
工作例子的工作区附件。
附件:
发表时间:2014年8月15日18:02:00