Catching Interrupts
Thomas Doerfler
Thomas.Doerfler at imd-systems.de
Tue Oct 12 12:41:51 UTC 2004
Hello Mark,
I don't know about the MIPS architecture, but I am
quite sure you should NEVER call I/O functions from
within an ISR.
wkr,
Thomas.
> I am attempting to write a response to an interrupt
> under RTEMS for the MIPS AU1100. I must be missing
> something, though, as the handler is never called. I
> register the handler as follows:
>
> rtems_isr_entry old_entry;
>
> rtems_status_code status;
>
> status =
> rtems_interrupt_catch(spi_isr,4,&old_entry); //4 is
> the SSI0 vector on the AU1100
>
> if (status != RTEMS_SUCCESSFUL) {
> //handle error
> }
>
> *(unsigned int*)(0xB16000008) = 0x00000002;
> //enable the done interrupt
>
>
> This routine returns an RTEMS_SUCCESSFUL. The
> function is as below:
>
>
> rtems_isr spi_isr(rtems_vector_number vector) {
>
> puts("spi_isr");
> *(unsigned int*)(0xB16000004) = 0x0000000E; //clear
> interrupts
> }
>
> This function is never called, even though polling the
> interrupt register shows that it should be. Any
> ideas?
>
> Thanks!
>
> Mark
>
> __________________________________________________
> Do You Yahoo!?
> Tired of spam? Yahoo! Mail has the best spam protection around
> http://mail.yahoo.com
--------------------------------------------
IMD Ingenieurbuero fuer Microcomputertechnik
Thomas Doerfler Herbststrasse 8
D-82178 Puchheim Germany
email: Thomas.Doerfler at imd-systems.de
PGP public key available at: http://www.imd-
systems.de/pgp_keys.htm
More information about the users
mailing list