Hi Gilles, I've followed your advices and reimplemented the timer management. Now it's an up counter wrapping to 0 on overflow, it uses a match register to trigger the interrupt and it's never disabled.
I've also cleaned the code : suppressed linux specific calls, move update_tsc to linux handler, etc... as you advised me. Then, I tested this with both CONFIG_IPIPE and CONFIG_XENOMAI disabled, and it's working fine. I also tested with only CONFIG_XENOMAI disabled and it's still working as expected. Nevertheless, the issue is still the same. It hangs after starting the init program. After investigations, the problem is that __ipipe__mach_set_dec is never called after Xenomai has taken control of the timer. The last timer update was done in rthal_timer_calibrate and it effectively triggers an interrupt after MAXINT ticks (I've put a printk in the linux timer handler and it's displayed after a few time). My problem is that i don't really understand the timer management by Xenomai. As i understood each skin has its own timers and Xenomai manages to trigger them when expected. But what code is managing the linux timer ? I'm expecting to probably have errors in my ipipe code that's why i'm asking this, to follow the execution and see where it is broken. Thank you very much, -- Aubin REBILLAT _______________________________________________ Xenomai-help mailing list Xenomai-help@gna.org https://mail.gna.org/listinfo/xenomai-help