Mercurial > flash_v2
diff packages/hal/common/current/tests/intr.c @ 2:443894e2e912 ecos-v1_2_1-release
Block commit of eCos version 1.2.1
| author | jlarmour |
|---|---|
| date | Tue, 11 May 1999 12:24:34 +0000 |
| parents | 3111d98ba7b3 |
| children | ece80412419a |
line wrap: on
line diff
--- a/packages/hal/common/current/tests/intr.c +++ b/packages/hal/common/current/tests/intr.c @@ -22,7 +22,7 @@ // September 30, 1998. // // The Initial Developer of the Original Code is Cygnus. Portions created -// by Cygnus are Copyright (C) 1998 Cygnus Solutions. All Rights Reserved. +// by Cygnus are Copyright (C) 1998,1999 Cygnus Solutions. All Rights Reserved. // ------------------------------------------- // //####COPYRIGHTEND#### @@ -41,6 +41,14 @@ #include <cyg/hal/hal_intr.h> +#ifdef CYGPKG_KERNEL +#include <pkgconf/kernel.h> // Need to look for the RTC config. + +// These are redefined below. +#undef CYGNUM_KERNEL_COUNTERS_RTC_RESOLUTION +#undef CYGNUM_KERNEL_COUNTERS_RTC_PERIOD +#endif + // ------------------------------------------------------------------------- #if defined(CYG_HAL_MN10300_STDEVAL1) @@ -62,7 +70,6 @@ #define CYGNUM_KERNEL_COUNTERS_RTC_PERIOD 15625 #endif - #if defined(CYG_HAL_MIPS_SIM) #define CYGNUM_KERNEL_COUNTERS_RTC_RESOLUTION {1000000000, 1000} @@ -70,12 +77,23 @@ #endif -#if defined(CYG_HAL_POWERPC_MP860) +#if defined(CYG_HAL_POWERPC_COGENT) #define CYGNUM_KERNEL_COUNTERS_RTC_RESOLUTION {1000000000, 100} #define CYGNUM_KERNEL_COUNTERS_RTC_PERIOD 20625 #endif +#if defined(CYGPKG_HAL_POWERPC_SIM) + +#define CYGNUM_KERNEL_COUNTERS_RTC_RESOLUTION {1000000000, 100} +#define CYGNUM_KERNEL_COUNTERS_RTC_PERIOD 999 + +#endif + +#if defined(CYG_HAL_I386_LINUX) +#define CYGNUM_KERNEL_COUNTERS_RTC_RESOLUTION {1000000000, 100} +#define CYGNUM_KERNEL_COUNTERS_RTC_PERIOD 10000 +#endif #ifndef CYGNUM_KERNEL_COUNTERS_RTC_RESOLUTION @@ -97,7 +115,8 @@ volatile cyg_count32 ticks = 0; cyg_uint32 isr( cyg_uint32 vector, CYG_ADDRWORD data ) { CYG_TEST_CHECK( ISR_DATA == data , "Bad data passed to ISR"); - CYG_TEST_CHECK( CYG_VECTOR_RTC == vector , "Bad vector passed to ISR"); + CYG_TEST_CHECK( CYGNUM_HAL_INTERRUPT_RTC == vector , + "Bad vector passed to ISR"); HAL_CLOCK_RESET( vector, CYGNUM_KERNEL_COUNTERS_RTC_PERIOD ); @@ -113,14 +132,12 @@ cyg_uint32 isr( cyg_uint32 vector, CYG_A void intr_main( void ) { CYG_INTERRUPT_STATE oldints; - - CYG_TEST_INIT(); - HAL_INTERRUPT_ATTACH( CYG_VECTOR_RTC, isr, ISR_DATA, 0 ); + HAL_INTERRUPT_ATTACH( CYGNUM_HAL_INTERRUPT_RTC, isr, ISR_DATA, 0 ); HAL_CLOCK_INITIALIZE( CYGNUM_KERNEL_COUNTERS_RTC_PERIOD ); - HAL_INTERRUPT_UNMASK( CYG_VECTOR_RTC ); + HAL_INTERRUPT_UNMASK( CYGNUM_HAL_INTERRUPT_RTC ); HAL_ENABLE_INTERRUPTS(); @@ -132,6 +149,7 @@ void intr_main( void ) HAL_DISABLE_INTERRUPTS(oldints); CYG_TEST_PASS_FINISH("HAL interrupt test"); + } @@ -140,7 +158,19 @@ void intr_main( void ) externC void cyg_start( void ) { + CYG_TEST_INIT(); + + // Attaching the ISR will not succeed if the kernel real-time + // clock has been configured in. +#ifndef CYGVAR_KERNEL_COUNTERS_CLOCK + intr_main(); + +#else + + CYG_TEST_PASS_FINISH("N/A: Cannot override kernel real-time clock."); + +#endif }
