This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
a qustion about measure real-time interrupt latency
- To: "ecos" <ecos-discuss at sources dot redhat dot com>
- Subject: [ECOS] a qustion about measure real-time interrupt latency
- From: "xuas" <xuas at 163 dot net>
- Date: Thu, 30 Nov 2000 14:41:04 +0800
- Reply-To: "xuas" <xuas at 163 dot net>
I cant understand something about isr doing.
can someone help me ?
what is mean measure real-time interrupt latency?
what is aim?
the isr code is:
cyg_uint32 Cyg_RealTimeClock::isr(cyg_vector vector, CYG_ADDRWORD data)
{
#if defined(CYGVAR_KERNEL_COUNTERS_CLOCK_LATENCY) && defined(HAL_CLOCK_LATENCY)
if (measure_clock_latency) {
cyg_int32 delta;
HAL_CLOCK_LATENCY(&delta);
// Note: Ignore a latency of 0 when finding min_clock_latency.
if (delta > 0) {
// Valid delta measured
total_clock_latency += delta;
total_clock_interrupts++;
if (min_clock_latency > delta) min_clock_latency = delta;
if (max_clock_latency < delta) max_clock_latency = delta;
}
}
#endif
CYG_INSTRUMENT_CLOCK( ISR, 0, 0);
HAL_CLOCK_RESET( CYGNUM_HAL_INTERRUPT_RTC, CYGNUM_KERNEL_COUNTERS_RTC_PERIOD );
Cyg_Interrupt::acknowledge_interrupt(CYGNUM_HAL_INTERRUPT_RTC);
#if defined(CYGVAR_KERNEL_COUNTERS_CLOCK_DSR_LATENCY)
HAL_CLOCK_READ(&clock_dsr_start);
#endif
return Cyg_Interrupt::CALL_DSR|Cyg_Interrupt::HANDLED;
}