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

Interrupts Disabled After First Context Switch



Upon entering a task, the interrupts at the hardware level are enabled.
After a call to rtems_task_wake_after() the interrupts are disabled and
remain disabled while the task is running.  What part of the code should
I look at to diagnose this issue? It seems that interrupts get disabled
before the task switch is performed.

The code sample below illustrates what I am doing. At the first
printf(), the interrupts are enabled.  After the second printf(), the
interrupts are disabled.

rtems_task GUITask ( rtems_task_argument ignored )
{
  //Local Varaibles
  rtems_interrupt_level level;

  /* Wait 100ms til everyone is up and running */
  rtems_interrupt_disable(level);
  rtems_interrupt_enable(level);
  printf( "\r\nINT BEFORE: %08lX", level );
  rtems_task_wake_after( 10 );
  rtems_interrupt_disable(level);
  rtems_interrupt_enable(level);
  printf ( "\r\nINT AFTER: %08lX", level );
}

Kevin Kirspel
Osmetech 
235 Hembree Park Drive
Roswell GA, 30076
770-510-4444 x4568