Question about rtems_irq_symbolic_name, rtems_vector_number and IRQ stuff.

Pavel Pisa ppisa4lists at pikron.com
Tue Oct 19 15:27:59 UTC 2004


Greeting to all RTEMS developers,

I have more RTEMS IRQ handling related questions.

1) what is difference of types rtems_irq_symbolic_name, rtems_vector_number
   Is there some function to convert one value to another or the value
   is supposed to be equal? Or they are opaque and there is no public
   relation between them.

2) Is there some declared way to get pointer to rtems_irq_connect_data
   from rtems_vector_number in the ISR routine
         xxxxx_isr(rtems_vector_number v)

3) Is it correct to use BSP_install_rtems_irq_handler in device like code
   implemented in my application or rtems_interrupt_catch is supposed
   to be used there exclusively?

4) Is there some way, how to block IRQ source in the ISR routine
   until event is processed by worker thread? Only way I see from
   the sources is to try to locate rtems_irq_connect_data and call
   its off routine. But this could lead to some collision with
   RTEMS internal use of this routine.
    
I have tried to go through sources, but SCORE cares little about
above problems :-) and BSPs where it is implemented are fuzzy.
There is very important lack of feature in RTEMS IRQ handling.
There have to be way, how to deliver some context pointer
into ISR. I have seen some discussion about that already
on the list, but I would like to know actual state of your mind.
If it is problem to change ISR definition, it would be enough
to provide (long) or (void *) "private" fields into rtems_irq_connect_data
and define way, how to get from (rtems_vector_number) to the
(rtems_irq_connect_data *). The private field could mean benefit even
for xxxxx_isr_on(), xxxxx_isr_off() and xxxxx_isr_is_on() in some
setups.

I have got lost within above problems when implementing SPI driver
for our M9328 MX1 ARM920T system.

What I have done and could offer till now:

  - USB loader and flasher for this target with Linux support application
  - MicroWindows compatible UID keyboard driver for matrix keyboard
    connected to GPIO. Implemented as worker thread driven by GPIO
    interrupts and RTEMS time.
  - MicroWindows changes to support framebuffer output on the target
  - I2C driver with request queues running as RTEMS task

  some of the works can be downloaded from my page, other items can
  be provided on request. If there is interrest I can put them
  into Wiki pages when I find some spare time (not before mid of November). 

  I use August CVS snapshot of development RTEMS branch for my work.

What I need to do:

  - SPI communication driver
  - USB device support for MX1 UDC, I have it running outside of RTEMS
    but I would be pleased, if there is some USB device framework defined
    for RTEMS. If not, I can provide our simple code.

There is even prepared and running simple flat widget library (SUITK).
It enables to define screen in XML files and build screens
from this description.

Thanks for replies in advance
Best wishes

                Pavel Pisa
        e-mail: pisa at cmp.felk.cvut.cz
        www:    http://cmp.felk.cvut.cz/~pisa
        work:   http://www.pikron.com



More information about the users mailing list