Heikki Lindholm wrote:
Wolfgang Grandegger kirjoitti:
Heikki Lindholm wrote:
Niklaus Giger kirjoitti:
Hi
I tried to use the FIT (Fixed Interrupt Timer) on my PPC405GPr
board, which uses 0x1010 as its interrupt vector in a user space
(vxworks-skin) application.
<..>
RT_INTR FITnterrupt;
res = rt_intr_create(&FITnterrupt, 0, 0x1010, I_NOAUTOENA);
<..>
But I got -22 EINVAL as error.
Could somebody please tell me, what is wrong with my example.
The 0x1010 is the HW interrupt vector, but the argument should be the
interrupt _line_. Besides, last time I checked, the ppc405 FIT isn't
even 'wired' in the kernel; actually, there's no space for the
interrupt prologue code, which basically results that no handler is
called when the FIT interrupt occurs.
Yes, in head_4xx.c there is the following note:
/* NOTE:
* FIT and WDT handlers are not implemented yet.
*/
But the relevant code could be copied from the PIT interrupt.
/* 0x1000 - Programmable Interval Timer (PIT) Exception */
START_EXCEPTION(0x1000, Decrementer)
NORMAL_EXCEPTION_PROLOG
lis r0,[EMAIL PROTECTED]
mtspr SPRN_TSR,r0 /* Clear the PIT exception */
addi r3,r1,STACK_FRAME_OVERHEAD
#ifdef CONFIG_IPIPE
EXC_XFER_IPIPE(0x1000, __ipipe_grab_timer)
#else /* !CONFIG_IPIPE */
EXC_XFER_LITE(0x1000, timer_interrupt)
#endif /* CONFIG_IPIPE */
and modified accordingly.
But one should note that the decrementer vector is at 0x1000 and the FIT
vector at 0x1010. The decrementer exception prologue is obviously bigger
than 0x10 (16) bytes and thus needs to be moved elsewhere (and branched
to from the decr vector.) It might be feasible to unite the handlers,
though, by passing some variable to the C-language handler, telling
which happened.
The above code snippet has to be modified for the FIT exception, of
course, which calls _ipipe_grap_fit(). Here is what is basically needed:
__ipipe_init_platform()
calls fit_virq = ipipe_alloc_virq();
__ipipe_grap_fit(regs)
calls __ipipe_handle_irq(IPIPE_FIT_VIRQ, regs);
And the FIT timer has to be programed properly elsewhere.
Wolfgang.
_______________________________________________
Xenomai-help mailing list
[email protected]
https://mail.gna.org/listinfo/xenomai-help