[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Interrupt control



  Chris Johns explained that rtems_interrupt_disable is a macro and where
it's found, and Joel said something about Ada.  But I'm still left with
my initial concerns:

  1. The M68K implementation of rtems_interrupt_disable doesn't
     store the previous interrupt level as documented.

  2. rtems_interrupt_enable, as used in the code I've searched,
     changes the privilege state from supervisor to user.

  OK, maybe some different questions.  I was having problems with
a UART driver when an interrupt occurred.  Unlike the driver in the
EFI332 BSP, mine was placed under control of the interrupt manager
(set_vector was called at initialization time with a non-zero
third argument, which results in a subsequent call to
rtems_interrupt_catch.)  The EFI332 BSP uses a raw interrupt
handler.  Has anyone successfully used the RTEMS interrupt manager
for an M68K task?  If so, did you use the enable/disable macros
without modification?  Save the returned value from
rtems_interrupt_disable and provide it to rtems_interrupt_enable?
Are you sure you're not dropping into user mode when you re-enable
interrupts?

  The interrupt manager looks (both from the documentation and the
code itself) like such an elegant mechanism, I'd really like to be
able to use it.  Could someone please confirm that it does (or can)
actually work as advertised?

					-- MC --