@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.
@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.
@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
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.
A Book For All Reasons Bernard Cole3 comments Robert Oshana's recent book "Software Engineering for Embedded Systems (Newnes/Elsevier)," written and edited with Mark Kraeling, is a 'book for all reasons.' At almost 1,200 pages, it ...