[ECOS] AT91 on EB55 DSR is started only once
Nick Garnett
nickg@ecoscentric.com
Thu May 19 04:25:00 GMT 2005
Marcel Ovidiu Achim <marcel.achim@ovidius-ib.de> writes:
> Dear all,
>
> I am experiencing some weird behaviour when trying to setup a timer
> interrupt on an EB55 board.
> I attached the relevant code below.
> What happens is that the DSR is started only once after init from main,
> and then never again, although the
> timer interrupt is shown to occur (on an ascilloscope).
> By accident I discovered that this can be fixed if I insert the
> following line in the DSR:
>
> HAL_READ_UINT32( AT91_TC1 + AT91_TC_SR, i );
>
> Although the read seems to have no impact of the content of the SR
> register,
> it seems to magically have the DSR activated again.
The timers need the SR register to be read to clear the interrupt,
although this does not seem to be documented. Take a look at the code
in eCos that sets up timer0 to generate clock interrupts.
> I could live fine with that, but then other external interrupts seem to
> considerably bring down overall system performance.
> What am I overseeing here? Can anyone please help?
I'm afraid I cannot help with these other interrupts, but I doubt that
they have anything to do with your timer. Try turning on assertions
and find out where they are coming from.
--
Nick Garnett eCos Kernel Architect
http://www.ecoscentric.com The eCos and RedBoot experts
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss
More information about the Ecos-discuss
mailing list