Can anyone pull my head out of the clouds
Posted: Fri Jan 15, 2010 7:05 pm
I have an XC-1A kit, and I have the book "Programming XC on XMOS Devices" and have read it.
while reading the book i was like ya its fast, but there is no built in peripherals. so you need to manually do everything, like UART, SPI, I2C , which i guess is no biggie but it chews up threads.
Not to mention to have such a fast processor with only 64k seem a bit strange to me. Then in the book i read on pg.12 "XC does not support floating point" i was like jeez, this thing is worthless compared to some ARM9 out there.
I have watched many utube videos from the XMOS site, and on things people have made and done which have all been impressive. If it was not for seeing these videos and all the impressive things XMOS is doing i would have just thrown the kit out after reading the book. The book to me explained things but in go great detail for me to comprehend things like sharing memory across cores. I felt there should have been more to that section than was there. I am still left bewildered about how to do that as there are different ways to share memory and why would i pick one over another method. It also seems that when sharing memory using the "chanend" method it only works accost 2 cores. I may be wrong on that.
So.... since XMOS is doing impressive things, that must mean that i am just not seeing things correctly. I dont know why by i am having trouble wrapping my mind around the whole 4 core concept. I was hoping that someone would be better able to explain some things to me than the book was.
Instead of being embarrassed about asking for this basic help i have chosen to ask.
The things that i am most troubled about are the following.
1) On the the G4 device there are 4 cores. So lets say i wanted to connect a external RAM IC to the processor and that requires me to use 2 core's IO pins to do that. For this example say stdcore[0] and stdcore[1] are used for the IO part of the RAM IC. Yet in stdcore[2] is the code that does things which require data to be read from the ram and in stdcore[3] there is code there that require data to be written to the ram. Since i cannot control one cores IO from another core, how am i going to achieve this task ?
2) I would also like to understand how the whole programming thing works. It appears that when i download my code to it, it is placed in the serial flash ? If this is the case, then am i only limited in code storage size by the size of the serial flash chip ? If so, how does one protect their code from simple being read out of the serial chip.
If anyone is bored and feels like explain this whole XMOS concept to me i would be very ,very thankful for it.
while reading the book i was like ya its fast, but there is no built in peripherals. so you need to manually do everything, like UART, SPI, I2C , which i guess is no biggie but it chews up threads.
Not to mention to have such a fast processor with only 64k seem a bit strange to me. Then in the book i read on pg.12 "XC does not support floating point" i was like jeez, this thing is worthless compared to some ARM9 out there.
I have watched many utube videos from the XMOS site, and on things people have made and done which have all been impressive. If it was not for seeing these videos and all the impressive things XMOS is doing i would have just thrown the kit out after reading the book. The book to me explained things but in go great detail for me to comprehend things like sharing memory across cores. I felt there should have been more to that section than was there. I am still left bewildered about how to do that as there are different ways to share memory and why would i pick one over another method. It also seems that when sharing memory using the "chanend" method it only works accost 2 cores. I may be wrong on that.
So.... since XMOS is doing impressive things, that must mean that i am just not seeing things correctly. I dont know why by i am having trouble wrapping my mind around the whole 4 core concept. I was hoping that someone would be better able to explain some things to me than the book was.
Instead of being embarrassed about asking for this basic help i have chosen to ask.
The things that i am most troubled about are the following.
1) On the the G4 device there are 4 cores. So lets say i wanted to connect a external RAM IC to the processor and that requires me to use 2 core's IO pins to do that. For this example say stdcore[0] and stdcore[1] are used for the IO part of the RAM IC. Yet in stdcore[2] is the code that does things which require data to be read from the ram and in stdcore[3] there is code there that require data to be written to the ram. Since i cannot control one cores IO from another core, how am i going to achieve this task ?
2) I would also like to understand how the whole programming thing works. It appears that when i download my code to it, it is placed in the serial flash ? If this is the case, then am i only limited in code storage size by the size of the serial flash chip ? If so, how does one protect their code from simple being read out of the serial chip.
If anyone is bored and feels like explain this whole XMOS concept to me i would be very ,very thankful for it.