[ECOS] Virtual interrupts?

Will Wagner will_wagner@carallon.com
Wed Oct 12 13:41:00 GMT 2011


On 12/10/2011 14:25, Tom Schouten wrote:

<snip>

>
>  From my limited knowledge it seems however that it is not possible to
> "fake" an interrupt, i.e.
>
> #define CYGNUM_HAL_INTERRUPT_VIRTUAL0 33
> #define CYGNUM_HAL_INTERRUPT_VIRTUAL1 34
>
> such that these 33 and 34 vectors can be used in
> cyg_drv_interrupt_create() of some eCos driver.

If I understand what you are asking for this is pretty straight forward, 
in fact for the at91 there is already code doing this for the SYS 
interrupt and so extending it to PIOa and PIOB is pretty easy. If you 
look in packages\hal\arm\at91\var\current\src\at91_misc.c you can see 
how this is done for the SYS interrupt.

The only drawback of this is in a generic way is that you'll end up 
creating 64 more interrupts which will make the interrupt tables quite a 
lot bigger in RAM when you may only be interested in getting interrupts 
on a few PIO pins. One way to tackle this would be to make it so that 
you picked which pins you wanted to make become interrupts in the CDL.

Hope that helps.
Regards
Will


-- 
------------------------------------------------------------------------
Will Wagner                                     will_wagner@carallon.com
Development Manager                      Office Tel: +44 (0)20 7371 2032
Carallon Ltd, Studio G20, Shepherds Building, Rockley Rd, London W14 0DA
------------------------------------------------------------------------


-- 
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