void Isr_handler_inner( void ) { /*enable_tracing();*/ Clear_tm27_intr(); switch ( Interrupt_nest ) { case 0: Interrupt_enter_time = end_time; break; case 1: Interrupt_enter_time = end_time; Interrupt_nest = 2; Interrupt_occurred = 0; Lower_tm27_intr(); benchmark_timer_initialize(); Cause_tm27_intr(); /* goes to a nested copy of Isr_handler */ #if (MUST_WAIT_FOR_INTERRUPT == 1) while ( Interrupt_occurred == 0 ); #endif Interrupt_return_nested_time = benchmark_timer_read(); break; case 2: Interrupt_enter_nested_time = end_time; break; } benchmark_timer_initialize(); }
rtems_isr Isr_handler( rtems_vector_number vector ) { /* See how long it took system to recognize interrupt */ Interrupt_enter_time = benchmark_timer_read(); Clear_tm27_intr(); }