rtems_task_resume within ISR

Tobias Schoofs tobias.schoofs at gmx.net
Thu Oct 16 21:39:25 UTC 2008


I installed the ISR with:

rtems_isr_entry old_catcher;
status = rtems_interrupt_catch(fault, 0, &old_catcher); // use division
by zero for testing
if (status != RTEMS_SUCCESSFUL) {
    /* do error stuff */
}

@Till: i386-rtems4.8/pc386


Joel Sherrill wrote:

> Tobias Schoofs wrote:
>
>> Hi,
>>
>> I want an ISR to activate an error handler process on certain faults. I
>> assumed that the following simple code would activate the error handler
>> (which is the process with the highest priority, but normally suspended)
>> AFTER the completion of the ISR:
>>
>> rtems_isr fault(rtems_vector_number vector) {
>>     rtems_task_resume(eh_id); // eh_id is the error handler
>>     /* do some other stuff */
>>     return;
>> }
>>
>> But it seems that the error handler (eh_id) becomes immediately ready
>> and starts execution BEFORE the ISR termates. Is there anything wrong
>> with my code?
>>   
>
> Did you install this as an RTEMS ISR or a raw ISR attached
> directly to the hardware vector?
>
>> Thanks,
>>
>> Tobias
>> _______________________________________________
>> rtems-users mailing list
>> rtems-users at rtems.com
>> http://rtems.rtems.org/mailman/listinfo/rtems-users
>>   
>
>
>




More information about the users mailing list