On 04.03.2010 10:38, Richard Rauch wrote: > - small footprint > - good realtime behaviour > - very short interrupt latency times, minimal overhead for task context > switching > - available for small microcontrollers (arm7,cortex m3)
And last but not least: in my opinion the eCos structure is cleaner and there is a lot less dependencies between various parts of the operating system. >> Maybe you can help me defending eCos ;-). >From my experience it is nearly impossible to write a non-trivial realtime application for Linux - in my opinion it simply is not there yet. I tried to port an application using realtime timers and ethernet networking to a variant of OSADL linux (http://www.osadl.org/). I ended hunting deadlocks and priority inversion cases over the whole system, had kernel softirq threads in uninterruptible sleeps (that shouldn't happen except hardware failure). I spoke to other developers who tried Linux for this kind of stuff and they had similar experience. The same application works like a charm under eCos or without using the realtime threads. I'd recommend Linux in following cases: - no or soft realtime - you need virtual memory - you need to load code dynamically - having separate processes instead of threads is an advantage - userspace/kernelspace isolation is needed - you need something (e.g. a driver) only the linux provides and don't have time/resources to port it Otherwise the eCos is better bet for an embedded device. Regards -- Stano