diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2009-02-26 20:45:48 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2009-02-26 20:45:48 +0000 |
commit | 5d64375f71346512e836fde360bef250c8a20a57 (patch) | |
tree | a3072fd89d2707160c1cbba72803b31cd711250d /c/src/lib/libbsp/lm32/shared | |
parent | 2009-02-26 Joel Sherrill <joel.sherrill@oarcorp.com> (diff) | |
download | rtems-5d64375f71346512e836fde360bef250c8a20a57.tar.bz2 |
2009-02-26 Joel Sherrill <joel.sherrill@oarcorp.com>
* shared/clock/ckinit.c, shared/start/start.S, shared/timer/timer.c:
Run better on simulator. Timer is probably not right yet but
Diffstat (limited to 'c/src/lib/libbsp/lm32/shared')
-rw-r--r-- | c/src/lib/libbsp/lm32/shared/clock/ckinit.c | 2 | ||||
-rw-r--r-- | c/src/lib/libbsp/lm32/shared/start/start.S | 16 | ||||
-rw-r--r-- | c/src/lib/libbsp/lm32/shared/timer/timer.c | 10 |
3 files changed, 18 insertions, 10 deletions
diff --git a/c/src/lib/libbsp/lm32/shared/clock/ckinit.c b/c/src/lib/libbsp/lm32/shared/clock/ckinit.c index 832213f806..6f2c4aa127 100644 --- a/c/src/lib/libbsp/lm32/shared/clock/ckinit.c +++ b/c/src/lib/libbsp/lm32/shared/clock/ckinit.c @@ -20,7 +20,7 @@ #include "clock.h" #include "bspopts.h" -#if SIMULATOR_FAST_IDLE +#if ON_SIMULATOR #define CLOCK_DRIVER_USE_FAST_IDLE #endif diff --git a/c/src/lib/libbsp/lm32/shared/start/start.S b/c/src/lib/libbsp/lm32/shared/start/start.S index 6cfa9268f1..52beb69ac6 100644 --- a/c/src/lib/libbsp/lm32/shared/start/start.S +++ b/c/src/lib/libbsp/lm32/shared/start/start.S @@ -13,6 +13,8 @@ * Micro-Research Finland Oy */ +#include "bspopts.h" + .section .boot,"a",@progbits .align 4 @@ -145,12 +147,14 @@ crt0: mvi r2, 0 mvi r3, 0 calli boot_card -.dead_end: - bi .dead_end + # boot_card returns when RTEMS is shutdown +#if ON_SIMULATOR + #define SYS_exit 1 - calli boot_card -# boot_card should never return -_stuck_in_start: - bi _stuck_in_start + mvi r8, SYS_exit + scall +#endif +.dead_end: + bi .dead_end diff --git a/c/src/lib/libbsp/lm32/shared/timer/timer.c b/c/src/lib/libbsp/lm32/shared/timer/timer.c index 4fef00ce37..1ffc3653d8 100644 --- a/c/src/lib/libbsp/lm32/shared/timer/timer.c +++ b/c/src/lib/libbsp/lm32/shared/timer/timer.c @@ -29,17 +29,21 @@ static inline int timerread(unsigned int reg) { -#ifdef TIMER1_BASE_ADDRESS +#if ON_SIMULATOR && defined(TIMER0_BASE_ADDRESS) + return *((int*)(TIMER0_BASE_ADDRESS + reg)); +#elif defined(TIMER1_BASE_ADDRESS) return *((int*)(TIMER1_BASE_ADDRESS + reg)); #else -#warning "Benchmarking timer TIMER1 not available!" +#warning "Benchmarking timer not available!" return 0; #endif } static inline void timerwrite(unsigned int reg, int value) { -#ifdef TIMER1_BASE_ADDRESS +#if ON_SIMULATOR && defined(TIMER0_BASE_ADDRESS) + *((int*)(TIMER0_BASE_ADDRESS + reg)) = value; +#elif defined(TIMER1_BASE_ADDRESS) *((int*)(TIMER1_BASE_ADDRESS + reg)) = value; #endif } |