non-maskable interrupt

Ilya Alexeev ilya at continuum.ru
Mon Dec 9 18:08:03 UTC 2002


Hello Joel,

>> >>
>> >> Hi all.
>> >>
>> >> I am using rtems-ss-20020301 and gen68360 bsp.
>> 
>> JS> I think this is the problem that tracked and fixed as PR267.  It
>> JS> was a bug in m68k/cpu_asm.S where it was not incrementing
>> JS> _ISR_Nest_level
>> JS> which violates the Watchdog* routines assumptions about knowing
>> JS> when an ISR happened.
>> 
>> JS> THe ChangeLog entry says it was fixed in August.  So anything newer
>> JS> than that has the fix.  CHeck out CVSweb to see what the change was
>> JS> or grab a newer version.
>> 
>> Joel, I have applied patch from the PR267 to my cpu/m68k/cpu_asm.S.
>> But it doesn't help.
>> Problems with Level 7 interrupts persist.
>> 
>> Also I tried to use cpu_asm.S from the latest (1118) snapshot,
>> but it doesn't help too.
>> 
>> What else I can try?

JS> Is the ISR installed as an RTEMS ISR or a "raw" ISR?  RTEMS should
JS> be totally unaware of it -- not vector it.  You need to have your
JS> own handler which saves a0/a1/d0/d1 and then calls it.  The non-maskable
JS> ISR should have NO connection to RTEMS whatsoever.

I use rtems_interrupt_catch for my ISR... It is a mistake, right?
Is '_CPU_ISR_install_raw_handler' function more correct?

So, my ISR must save and restore CPU registers... I'll try it, thanks.

>> >> My MC68360 board has external device which uses
>> >> non-maskable Level 7 Interrupt Autovector.
>> >>
>> >> RTEMS documentation says that it is OK to use non-maskable ISRs,
>> >> but they are must not use system calls.
>> >>
>> >> My ISR doen't use any system calls,
>> >> it just read/write a registers of external device,
>> >> but there are some problems then this ISR called too often.
>> >> This ISR spoils some RTEMS internal data structures.
>> >>
>> >> I have add a number of test tasks for my application,
>> >> which are just call rtems_task_wake_after(1).
>> >> Then I call the ISR enough often,
>> >> my system hangs somewhere in RTEMS' _Watchdog* routines...
>> >>
>> >> What I am doing wrong?
>> >> Is it possible to correctly use non-maskable ISR in RTEMS?
>> >>
>> >> And one more thing - I am using standart call - rtems_interrupt_catch
>> >> for attaching non-maskable ISR.. Is it OK?
>> >>
>> >> I will be grateful for any help.
>> >>
>> >> Ilya V. Alexeev
>> >> ilya at continuum.ru
>> >>
>> >> Continuum Plus JSC
>> >> Yaroslavl, Russia
>> >> Phone: (+7)0852 240200
>> >> Fax:   (+7)0852 359977
>> 
>> Ilya V. Alexeev
>> ilya at continuum.ru
>> 
>> Continuum Plus JSC
>> Yaroslavl, Russia
>> Phone: (+7)0852 240200
>> Fax:   (+7)0852 359977




Ilya V. Alexeev
ilya at continuum.ru

Continuum Plus JSC
Yaroslavl, Russia
Phone: (+7)0852 240200
Fax:   (+7)0852 359977




More information about the users mailing list