Thread Dispatch via Interrupts

Sebastian Huber sebastian.huber at embedded-brains.de
Wed Apr 29 09:01:01 UTC 2009


Hi,

a common task of interrupt handlers is to do a thread dispatch after the actual
interrupt processing.  On many architectures this is done in assembler code
which lead recently to problems due to a data type size change, see also

https://www.rtems.org/bugzilla/show_bug.cgi?id=1385

On PowerPC we where not affected by this kind of problems, since we use this:

void _ISR_Thread_dispatch(void)
{
  if (_Context_Switch_necessary) {
    _Thread_Dispatch();
  } else if (_ISR_Signals_to_thread_executing) {
    _ISR_Signals_to_thread_executing = false;
    if (
      _Thread_Do_post_task_switch_extension
        || _Thread_Executing->do_post_task_switch_extension
    ) {
      _Thread_Executing->do_post_task_switch_extension = false;
      _API_extensions_Run_postswitch();
    }
  }
}

We should add this or a similar function to the super core.

The ARM and m68k for example the thread dispatch is not done in this way. Is
there a reason for this?

Have a nice day!

-- 
Sebastian Huber, Embedded Brains GmbH

Address : Obere Lagerstr. 30, D-82178 Puchheim, Germany
Phone   : +49 89 18 90 80 79-6
Fax     : +49 89 18 90 80 79-9
E-Mail  : sebastian.huber at embedded-brains.de
PGP     : Public key available on request

Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.



More information about the users mailing list