Seperate load images & open channel ends

Technical questions regarding the XTC tools and programming with XMOS.
User avatar
pstnotpd
XCore Addict
Posts: 161
Joined: Sun Jun 12, 2011 11:47 am

Seperate load images & open channel ends

Post by pstnotpd »

I've been trying to connect some startkits together, but with no success so far. I suspect the link wires might not work due to length or bad soldering, but it is kind of hard to check using the method described in this Q&A topic.

What I actually want to do insert some debug messages into the processes on the startkit tiles to see if anything comes through. Using the flash images method described I cannot see how to do this.

Is there a way to either
- Create a multi-tile app and then create 2 "xrun-able" images to which a console can be attached?

- Create a single tile app with an open channel and to wich another single tile app can link?

The idea is to first load a "receiver" app on one startkit on one tile with console to see it actually running and then load a "sender" on another startkit which starts sending data over the link.

From what I've read in the assembly manual this certainly seems feasible, but can this be done using c or xc?


User avatar
sethu_jangala
XCore Expert
Posts: 589
Joined: Wed Feb 29, 2012 10:03 am

Post by sethu_jangala »

Have you tried the startKIT example which is explained in the Q&A section? You should power cycle both the devices at the same time. The Link connections should be as follows:

GND --> GND
1OU --> 1IN
0OU --> 0IN
0IN --> 0OUT
1IN --> 1OUT

The example which I have added in the above Q&A section is tested on startKIT by following the steps that are explained in the answer.

Sethu.
User avatar
pstnotpd
XCore Addict
Posts: 161
Joined: Sun Jun 12, 2011 11:47 am

Post by pstnotpd »

I power-cycled by disconnecting the USB hub all the startkits are connected to.

Link connections are as you stated, but I'm using 20cm jumpers which I suspect might be too long. That's why I want do do that extra debugging. I did check the soldering point for shorts and they seem ok.

I did create a working 2 tile dummy application on the slicekit without channel communication which I then tried out on the startkits to just show some leds blinking, but apart from the single flashing led on on powerup it doesn't seem to do anything on the startkits.

That brings me to another question. If the links are specified in the XN does that mean something happens during boot? I.e. might the problem be that the startkits are trying to talk to each other over the links and freeze because the jumper wires are too long?

Regardless of this particular issue I'm just curious if I can create "xrun-able" applications with open channel ends. For instance I'd want to run a server process on device id 0 which dumps debug output to the console and then load and debug a client process on device id 1 which connects to that server.
User avatar
sethu_jangala
XCore Expert
Posts: 589
Joined: Wed Feb 29, 2012 10:03 am

Post by sethu_jangala »

pstnotpd wrote: That brings me to another question. If the links are specified in the XN does that mean something happens during boot? I.e. might the problem be that the startkits are trying to talk to each other over the links and freeze because the jumper wires are too long?
Yes, When multi tile device boots up, they communicate hello message between the tiles using xCONNECT links which are specified in the XN file. If you have specified the Links in XN file and if you have not connected the Links, the devices does not boot up.

Sethu.
User avatar
pstnotpd
XCore Addict
Posts: 161
Joined: Sun Jun 12, 2011 11:47 am

Post by pstnotpd »

sethu wrote:Yes, When multi tile device boots up, they communicate hello message between the tiles using xCONNECT links which are specified in the XN file. If you have specified the Links in XN file and if you have not connected the Links, the devices does not boot up.
Ok, that explains things. I'll try to shorten the jumper wires first and re-check the soldering.

The original question still stands. Can links be set up dynamically using xc or c, or must I drop to assembly (or something like sire) to do that.
User avatar
sethu_jangala
XCore Expert
Posts: 589
Joined: Wed Feb 29, 2012 10:03 am

Post by sethu_jangala »

I don't think links can be setup dynamically. In a multi tile system on boot up, routing information is carried between the links and the resource id is added in the routing table of each device. Once this is done, the device boots up as multi tile device. This might be possible in assembly, but not sure as I haven't tried.

Sethu.
User avatar
pstnotpd
XCore Addict
Posts: 161
Joined: Sun Jun 12, 2011 11:47 am

Post by pstnotpd »

Well the root cause for this question is fixed. Using a derivative if mio's Q&A topic I finally got 2 startkits talking to each other.

The 20cm jumper cables were indeed too long so at last I've got 2 startkits communicating with each other using link wires shortened to about 5 cm. Added note: When power cycling both boards through USB it seems unstable. It works better by connecting the 5V pin 13 on J8 together.

Further experiments will surely follow, including trying to answer my own OT questions :o)