Checking the ADI Blackfin DSPs, I see they can do 200MHz ~ 600MHz, and the cheapest with HS USB is $3.99/1K on their indicator table. (QFN88)
That model looks to be 200MHz and has
On-Chip Memory
- 136KB L1 SRAM with multi-parity-bit protection (64KB instruction, 64KB data, 8KB scratchpad)
- 128KByte on-chip L2 SRAM with ECC protection
- 512KByte On-chip L2 ROM
Key Peripherals include
- USB2.0 HS OTG
- 2x CAN2.0B
- ePPI Video I/O
- 2x SPORTs (w/I2S)
- 2xQuad-SPI / 1xDual-SPI (w/ Host mode option)
- I2C
- 2xUART
- SD/SDIO/MMC (4-bit)
Are there any nice little dev boards for XMOS devices now a days?
Seems the little red original dev boards that I have were phased out and replaced with "slice kits" or whatever they were called. I did not much like the look of them.
There is the $14.99 startKIT, of course. That has one of the xCORE-ANALOG chips on it and XMOS links are brought out to a connector.
I've got some of the cheaper sliceKIT boards and the sliceKIT core board which holds four slices. Multiple core boards can be connected together via XMOS Links. They are quite nice, but some of the slices are rather expensive. The startKIT has a connector for a single sliceKIT.
Question 1: Is there a name for the syndrome where an individual endlessly criticizes Company X and its practices rather than simply using Company Y's product and shutting up?
Question 2: What is the motive behind this behavior?
Question 3: Is there UPS delivery to Antelope Valley?
As I have been critical of the marketing blurb of a company whose name happens to begin with "X" I can only guess your slur is directed at me.
To insinuate that some ones observations, criticisms and, well, opinions are somehow a sickness is insulting, to do it it such an indirect manner is underhand.
However, to answer you points:
XMOS is being deceptive in their advertising. Many XMOS users on the XMOS forum spoke their mind about that when it started to happen. I think that truth in advertising is something a respectable tech company should at least try to aim for. I think that pointing this out is a good thing. If nothing else it's an interesting case.
As it happens I love XMOS devices. And I love the ideas embodied in the XC language. David May, the chief architect of all this has been a hero of mine ever since the Transputer and Occam days.
I love the Propeller too. Chip is also a hero. I feel justified in making comparisons between these devices.
I do hope some one can get XMOS devices to Antelope Valley. They are well worth investigating.
I am surprised this thread did not gather a little more attention. Sounded pretty interesting to me. I think I might get one of their boards just to check it out.
I can't wait to bash on the P2. It's a usable scripting language. The P2 FPGA image will be here soon, and we'll C if we can go Forth once it's here. Even though many may think it will be quite Basic I'm really looking forward to taking it for a Spin. So everybody take a chill pill and quit have sPASMs about it.
Lest one thinks I'm pimping for Xmos, I don't own any Xmos products, the last thing I programmed from Inmos were some T425's with Occam and Modula-2 back in the late 80's. Personally I really can't get into Xmos's chips and development system.
Since I do mostly do retro stuff now I really don't have a place to use them. A Pic32 or LPC1100 in a DIP package is more my speed at the moment for trying things out.
Interesting - lists the XE216-512-TQ128 at around $10, in modest volumes for 128 pins and 512K of RAM.The Eval board is a little pricey for a ~$10 device, but it does have 1G Ethernet and HS USB.
XMOS also claim this "The XE216-512-TQ128 will cost less than $4.75 in high volume"
Which is to say that XC is not C at all.
Now, I don't mind that it is not C. It has great features like making it dead easy to start parallel threads, communicate between threads through channels, disallowing shared memory between threads, place threads on separate processors and so on. It's an event based programming model.
Shame is that XC is not available for other machines, Portability is out of the question. Although I can imagine any other processors that have the support for it's features.
The PII perhaps?
For a quick over view of XC see here: https://en.wikipedia.org/wiki/XC_(programming_language) It's pretty neat. Has C style syntax but is clearly as different from C as Javascript is.
Tisk, tisk, Heater. That's a tad unfair. It's just like the situation with the Prop. There is no way anyone should be simply building from generic C code for these processors. So much of what's common is written for single threaded CPUs.
I will agree it's a lot more than just some multiprocessor/event system extensions though. There is clearly a whole OOP system in there that is pretty arbitrary.
Wow. Looking at the Wikipedia page I would say that it's a totally different language with only basic similarities with C. Not that it isn't interesting. And maybe it could be implemented as a preprocessor which generates (sometimes complicated) pthreads-based C code. A bit like the original C++ parser, which generated C code.
I don't think we can describe XC as OOP. Certainly not in the sense of object oriented languages like Eiffel, Simula, C++, C#, Java etc. It has no classes, no methods, no inheritance, no polymorphism and so on.
XC is more an embodiment of Tony Hoare's concepts of Communicating Sequential Processes (CSP) as seen in the Occam language for the old Transputer chips or Erlang or the new Go language from Google.
Certainly XC does includes things that look like objects, functions that are very encapsulated and run in threads, indeed unable to see outside their own memory space or share memory with other such objects in any way. Communicating between each other only via channels. But that is the CSP model.
I guess one could compile XC to something that uses pthreads or some other tasking system on PC's and such. After all that is what Go does.
The problem I see with that is the very tight connection between hardware IO, timers, channels and events in the language. Bodging that up in a processor not designed for it may not be very performant.
Edit:
It occurs to me that the original descriptions of Object Oriented Programming did indeed talk of isolated "actors" or objects interacting through messaging. I believe it was Allen Kay who said such things. That is something that confused me for ages as so called OOP languages like Eiffel, Simula, C++, C#, Java etc. don't do that. They have methods and parameters, same old functions and parameters as we know from C but wrapped up differently.
What we call OOP today is not actually OOP
The simple GPIO test program here (http://www.xmos.com/support/appnotes/an00155) works OK. I used the command line tools to build the application and download the resultant binary file. I had to give it a .c extension instead of .xc, to save it here.
Leon,
That is probably the most complex GPIO test program I have ever seen!
Isn't there a more 10 line "hello world" example?
I have written UART drivers in less code for XMOS.
This is a very simple program that just turns on an LED:
/*
============================================================================
Name : xk1-led.xc
Description : Illuminate an LED on the XK-1 card
============================================================================
*/
Says way, way back in Wed Jun 30, 2010 that
["For some time we (XMOS) have been planning to open-source the XC tools (compiler etc)."]
did that claimed 'plan', ever amount to anything ?
That very simple test program worked OK on the new xCORE-200 eXplorer kit. I received the first one of the batch in stock at Digi-Key. It's rather nice, if a bit expensive.
The source code for some of the tools is available here:
I see no evidence that the xc compiler ever became open source.
I did find a nice repo of software components for XMOS, i2c, spi, tcp/ip, etc etc. Kind of like OBEX but with a lot less entries: http://xcore.github.io/repo_index/index.html
Covers a lot of useful ground though.
I believe it is Leon. That is to say XC is based on LLVM. The C/C++ compiler is based on GCC, if I remember correctly.
Unlike GCC, the LLVM licence does not require your changes or additions be open sourced. The XC language extensions at one end, and the xcore code generation at the other end in this case.
As far as I can find XMOS never got around to opensourcing those extensions.
Comments
That model looks to be 200MHz and has
On-Chip Memory
- 136KB L1 SRAM with multi-parity-bit protection (64KB instruction, 64KB data, 8KB scratchpad)
- 128KByte on-chip L2 SRAM with ECC protection
- 512KByte On-chip L2 ROM
Key Peripherals include
- USB2.0 HS OTG
- 2x CAN2.0B
- ePPI Video I/O
- 2x SPORTs (w/I2S)
- 2xQuad-SPI / 1xDual-SPI (w/ Host mode option)
- I2C
- 2xUART
- SD/SDIO/MMC (4-bit)
There is the $14.99 startKIT, of course. That has one of the xCORE-ANALOG chips on it and XMOS links are brought out to a connector.
I've got some of the cheaper sliceKIT boards and the sliceKIT core board which holds four slices. Multiple core boards can be connected together via XMOS Links. They are quite nice, but some of the slices are rather expensive. The startKIT has a connector for a single sliceKIT.
To insinuate that some ones observations, criticisms and, well, opinions are somehow a sickness is insulting, to do it it such an indirect manner is underhand.
However, to answer you points:
XMOS is being deceptive in their advertising. Many XMOS users on the XMOS forum spoke their mind about that when it started to happen. I think that truth in advertising is something a respectable tech company should at least try to aim for. I think that pointing this out is a good thing. If nothing else it's an interesting case.
As it happens I love XMOS devices. And I love the ideas embodied in the XC language. David May, the chief architect of all this has been a hero of mine ever since the Transputer and Occam days.
I love the Propeller too. Chip is also a hero. I feel justified in making comparisons between these devices.
I do hope some one can get XMOS devices to Antelope Valley. They are well worth investigating.
Just for the record:
1) XMOS - Very nice and interesting multi-core devices. Crappy marketing.
2) Propeller - Very nice and interesting multi-core devices. Perhaps not for the same reasons as 1) but in a strange way comparable.
3) Propeller 2 - Does not exist yet. But conceptually comparable.
Are any of these useful for what you want to do. Who knows?
Edit: moderators, please be kind. It's poetry.
Lest one thinks I'm pimping for Xmos, I don't own any Xmos products, the last thing I programmed from Inmos were some T425's with Occam and Modula-2 back in the late 80's. Personally I really can't get into Xmos's chips and development system.
Since I do mostly do retro stuff now I really don't have a place to use them. A Pic32 or LPC1100 in a DIP package is more my speed at the moment for trying things out.
I think the chips are great. You won't want to be programming them in assembler though.
I like their XC language but it worries me that it a device specific language.
https://www.xmos.com/support/boards?product=18230&secure=1
I ordered one last week, it's arriving today.
XMOS also claim this "The XE216-512-TQ128 will cost less than $4.75 in high volume"
No worries, I don't like that Eclipse IDE either. You have to work with a lot to become familiar with it.
I think the chips are great. You won't want to be programming them in assembler though.
I like their XC language but it worries me that it a device specific language.
It's basically standard C with extensions.
Now, I don't mind that it is not C. It has great features like making it dead easy to start parallel threads, communicate between threads through channels, disallowing shared memory between threads, place threads on separate processors and so on. It's an event based programming model.
Shame is that XC is not available for other machines, Portability is out of the question. Although I can imagine any other processors that have the support for it's features.
The PII perhaps?
For a quick over view of XC see here: https://en.wikipedia.org/wiki/XC_(programming_language) It's pretty neat. Has C style syntax but is clearly as different from C as Javascript is.
-Tor
XC is more an embodiment of Tony Hoare's concepts of Communicating Sequential Processes (CSP) as seen in the Occam language for the old Transputer chips or Erlang or the new Go language from Google.
Certainly XC does includes things that look like objects, functions that are very encapsulated and run in threads, indeed unable to see outside their own memory space or share memory with other such objects in any way. Communicating between each other only via channels. But that is the CSP model.
I guess one could compile XC to something that uses pthreads or some other tasking system on PC's and such. After all that is what Go does.
The problem I see with that is the very tight connection between hardware IO, timers, channels and events in the language. Bodging that up in a processor not designed for it may not be very performant.
Edit:
It occurs to me that the original descriptions of Object Oriented Programming did indeed talk of isolated "actors" or objects interacting through messaging. I believe it was Allen Kay who said such things. That is something that confused me for ages as so called OOP languages like Eiffel, Simula, C++, C#, Java etc. don't do that. They have methods and parameters, same old functions and parameters as we know from C but wrapped up differently.
What we call OOP today is not actually OOP
That is probably the most complex GPIO test program I have ever seen!
Isn't there a more 10 line "hello world" example?
I have written UART drivers in less code for XMOS.
This is a very simple program that just turns on an LED:
/*
============================================================================
Name : xk1-led.xc
Description : Illuminate an LED on the XK-1 card
============================================================================
*/
#include <xs1.h>
out port led = XS1_PORT_4F;
int main() {
led <: 0x1;
while(1)
;
return 0;
}
I'll try it on the eXplorerKIT.
Little reading from XMOS people.
http://www.xcore.com/forum/viewtopic.php?f=26&t=544&p=12459
Little reading from XMOS people.
http://www.xcore.com/forum/viewtopic.php?f=26&t=544&p=12459
Says way, way back in Wed Jun 30, 2010 that
["For some time we (XMOS) have been planning to open-source the XC tools (compiler etc)."]
did that claimed 'plan', ever amount to anything ?
The source code for some of the tools is available here:
https://www.xmos.com/support/tools/source
That for the LLVM-GCC compiler is available with an earlier release. I don't know if that is actually the XC compiler, though.
I did find a nice repo of software components for XMOS, i2c, spi, tcp/ip, etc etc. Kind of like OBEX but with a lot less entries: http://xcore.github.io/repo_index/index.html
Covers a lot of useful ground though.
Unlike GCC, the LLVM licence does not require your changes or additions be open sourced. The XC language extensions at one end, and the xcore code generation at the other end in this case.
As far as I can find XMOS never got around to opensourcing those extensions.