I must say at the moment I feel rather like a general (stop laughing) in the 2nd half of the 19th century. Up to his ears in battle with cavalry charges and fixed formations without enough time to evaluate the gatling gun.
This product looks great and as soon as I can find the time, I am going to have to spend some time evaluating and seeing whether it can do what I want. I wish there was some kind of video or app note that can hand hold me through whether this will work for me or whether I will have to have something written for the processor that I use (and incur some of the costs discussed).
I am not an embedded systems developer, but this reminds me of eCOS, a mostly failed attempt to provide a configurable open-source embedded OS. The promise of a highly modular design and the ability to fine tune if necessary (source availability) seemed like it would be very attractive for embedded systems, as would the open-source licensing.
(On the hardware side, Tensilica's XTensa and TIE have a similar attraction.)
I have a little bit of an engineering mindset, so customization to meet design targets has some appeal. SynthOS sounds like an indication that technology has not stood still.
@Paul. thanks for the comments. I see that eCOS is still around as an open source RTOS (see here), though it's only used by about 2% of developers according to a 2013 study by UBM. One big difference is that SynthOS is algorithmic rather than modular. SynthOS uses algorithms to analyze your source code and then generates an RTOS. There are no modules. I think most RTOSes are really modular, but the modules are fixed size and fixed functionality and tied to particular hardware.
I think the problem is not with the modularity of eCOS, but the fact that every RTOS that is tied to a particular processor eventually becomes obsolete when the processor becomes obsolete. Look at VRTX, Monta Vista Linux, PSOS, eCOS... and the list goes on. One significant advantage of SynthOS is that it ports to any new processor with a C compiler, which means it's not obsolete when a new processor comes out.
I am one of the old timers who designed their own RTOS for the embedded applications.
I had designed my RTOS as a guest operating system on PC intially and could port the same on different microprocessors -8086, 6502 and so on.
One thing is very critical while designing the RTOS is use of stack for interrupt handling and task switching. Since differenet micro processors have different stack structure, stack size and stack pushing sequences , I am curious to know how this is handled in this SynthOS design? for true portability
@prabhakar_deosthali, thanks for your post. Interestingly, because SynthOS generates C code, the resulting system can be run directly on a PC for debugging before being ported to the actual hardware. Of course, the actual hardware will require specialized drivers (but we will eventually have a solution for converting these to PC drivers automatically).
SynthOS creates it's own stacks in software (we may eventually make custom versions to use specific processor hardware like stack hardware). The advantage is that your processor can be so simple it doesn't even need contect switching hardware. While the hardware can be very fast, it can also be very slow for most applications. For example, if a task uses 3 out of 256 registers, context switching hardware will typically swap all 256 registers, but SynthOS knows the task is only using 3 registers so it only swaps out 3 registers.
@Sanjib: We've just completed an Arduino-based robot and are writing an article we hope to get published soon. We've also tested it on the Altera Nios, Xilinx Microblaze, IBM PowerPC, Cypress PSoC, Freescale ColdFire, and a couple different ARM processors.