Problem with rtems directive

Joel Sherrill joel at OARcorp.com
Mon May 21 15:56:22 UTC 2001



jennifer averett wrote:

> If you have disabled interrupts you should enable them prior
> to calling rtems_task_suspend.

Actually interrupts will be set to a different level as part of the 
context switch.  So
when you get to the idle task, they are reenabled.  You probably do not have
the interrupt handler installed.  As soon as the context switch restores 
the eflags
of the idle task, BAM the interrupt occurs with no handler.

--joel

> 
> Jennifer
> 
> Soumyadeb Mitra wrote:
> 
>> Hello
>>         I am using RTEMS for an academic project invloving porting
>> a linux driver to rtems.
>> 
>>         I am having a problem with the following piece of code.
>> 
>>         __asm__("cli");
>>         fpga[0]=0;
>>         rtems_task_suspend(RTEMS_SELF);
>> 
>> This is the only thread running(apart from the idle thread).The assignment
>> statement fpga[0]=0 immediately triggers a hardware interrupt.But since
>> the current thread has interrupts disabled the ISR is not called.
>>         However once the current thread is suspended ,the ISR should be
>> invoked.
>>         For somme strange reason the above code generates an exception.The
>> thread id  printed by the exception handler is that of the idle-thread.
>> 
>> Has anyone faced similar problems or has a solution?
>> 
>> Thanks
>> 
>> Soumyadeb
> 




More information about the users mailing list