Thanks for the answer, Paolo i am afraid, I still don't understand:
On Fri, 11 Feb 2005, Paolo Mantegazza wrote: > Not exactly so. When the RTAI hal is started it virtualises all the irqs > to a single ADEOS handler (rtai_irq_trampoline) "all the irqs" - for whom? I thought the structure was roughly Adeos Adeos irq-pipe0 irq-pipeN [ ] - ... [ ] - Linux [ ] - ... [ ] - RTAI ^ ^ | ... | irq0 ... irqN which doesn't seem to hold. By virtualising all interrupts to one, you mean, that for all hardware irqs Adeos calls only one RTAI handler (dispatcher), right? That seems already to contradict Adeos' concept. If it is so, then who delivers interrupts further to Linux? Adeos on the pipe or RTAI bypassing Adeos? And then, rt_release_irq(RTAI_TIMER_IRQ); gives the RTAI interrupt free, not Linux, right? But normally, when this function is called there isn't a rt-timer ISR yet? Or is it done to make calling rt_request_timer() multiple times without releasing the timer? > that abstracts RTAI from > ADEOS. So ADEOS calls the RTAI trampoline and the RTAI interface appears > as an independent one. > > Thus rt_release_irq(RTAI_TIMER_IRQ) releases just the the HAL part. The > trampoline still sees the related interrupt as a hard one, but having no > own handler just propagate it to Linux. Well, looks like trampoline has not much chance to propagate the interrupt to Linux, as after releasing the timer-irq it gets immediately requested again (in rt_request_timer())? Thanks Guennadi --------------------------------- Guennadi Liakhovetski, Ph.D. DSA Daten- und Systemtechnik GmbH Pascalstr. 28 D-52076 Aachen Germany
