On Mon, 29 May 2006, Wolfgang Köbler wrote: > Hello, > > I am also interested in using eCos for hard realtime applications. > > So just some thoughts about hard realtime and eCos: > I think that simple hard realtime applications are already possible with > eCos, if you are carefull enough. > > With eCos I know all the software that is running on my system. I can strip > it down to the absolute minimum and review the code I use (when necessary). > > When creating a hard realtime application I need to make sure I always meet > my deadlines. This means > 1. I have to write my time-critical code so that it has deterministic > behaviour (Very few, well known, things should affect its > worst-case execution-time). > 2. I have to make sure that no other code disturbs my time-critical > code. > > With RTAI and Linux there is usually a whole lot of code that may not > disturb realtime code and is unknown. With eCos usually the whole system is > known and so the problem is much smaller. > > So what do we need (or want) for a hard realtime system: > > 1. Anything that is called by realtime code needs deterministic behaviour > itself. This is probably what you are talking about here: >> I am currently working on making eCos hard-real time. As the developers of >> RTAI claim that RTAI is hard-realtime, I have been comparing the code of >> RTAI and eCos w.r.t the interrupt handling, kernel primitives, system >> calls etc. That is correct. I have been comparing/analyzing the code w.r.t them being deterministic. But as far as the primitives are mentioned, their design is not much different from their RTAI counterparts. i.e somehow or the other I think I can compute the worst case time in executing a particular system call based on known information like (Max. no. of threads etc.. ) So could the designers of eCos please enumerate why eCos isn't deemed as "Hard" realtime. Where and what is eCos missing ? > > 2. Something to control DMA-transfers, as they may unexpectedly reduce memory > bandwidth and so slow down realtime code execution. But usually this is > ignored. Yeah, I think this can be taken care of during design of the real-time application. > > 3. Something to control interrupts, including special interrupts such as NMI > and SMI on PCs. They may not unexpectedly interrupt realtime code. > If you only want hard realtime in some IRQs, propper interrupt priorities > might be enough. If you want realtime in tasks you need to > - know the high priority interrupts and > - bound the time needed by low pritority interrupts > > RTAI does some interrupt virtualization and thus makes it possible to run > realtime-threads that have a higher priority than the non-realtime-interrupts. > This would certainly be a nice feature for eCos, too. > Maybe this could be one of the reasons why eCos is not "Hard" realtime. > 4. One important point is to make sure that no "normal" code can disable > interrupts, as this could add unpredictable additional latencies to interrups > (and the scheduler). Therefore RTAI replaces all cli-commands in the Linux > kernel with its own code. > This we can do. We can check the eCos code for the usage of cli/sti commands. > 5. If you want hard realtime in tasks, you need a scheduler that does what > you want. Usually you want a scheduler that only executes the task with the > currently highest priority instead of giving cpu-time to all tasks. (Or you > might even want an EDF scheduler) eCos already has Bitmap and MLQ schedulers which are pre-emptive priority driven scheduling algorithms. > > 6. It often helps if you have inter-task-communication mechanisms that > support things like priority inheritance and priority ceiling. > Priority inheritance and pririty ceiling have already been implemented. > 7. A realtime TCP/IP stack (or rather UDP/IP) would be nice. > Currently I intend to work only on the kernel part although would be nice to have a realtime TCP/IP stack. > 8. ... > > I have not checked which of these wishes are already fulfilled by eCos. > And I do not claim that the above list is complete. > > Bye, > Wolfgang > Could the developers please help us in enumerating, what makes ecos soft real-time. -- Regards, Vamshi ------------------------------------------------- R.Vamshi Krishna, M.Tech. CSE (II year), IIT Bombay Room no. 320, A-wing, Hostel-12 Mobile : +919869781633 ------------------------------------------------- Yesterday is a past, tomorrow is a future , today is a gift that's why it's called 'present'