summaryrefslogtreecommitdiffstats
path: root/c
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2009-02-26 20:45:48 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2009-02-26 20:45:48 +0000
commit5d64375f71346512e836fde360bef250c8a20a57 (patch)
treea3072fd89d2707160c1cbba72803b31cd711250d /c
parent2009-02-26 Joel Sherrill <joel.sherrill@oarcorp.com> (diff)
downloadrtems-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')
-rw-r--r--c/src/lib/libbsp/lm32/ChangeLog5
-rw-r--r--c/src/lib/libbsp/lm32/shared/clock/ckinit.c2
-rw-r--r--c/src/lib/libbsp/lm32/shared/start/start.S16
-rw-r--r--c/src/lib/libbsp/lm32/shared/timer/timer.c10
4 files changed, 23 insertions, 10 deletions
diff --git a/c/src/lib/libbsp/lm32/ChangeLog b/c/src/lib/libbsp/lm32/ChangeLog
index 80d691d8e6..f5c2d3b2c8 100644
--- a/c/src/lib/libbsp/lm32/ChangeLog
+++ b/c/src/lib/libbsp/lm32/ChangeLog
@@ -1,3 +1,8 @@
+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
+
2009-02-25 Joel Sherrill <joel.sherrill@oarcorp.com>
* shared/clock/ckinit.c: Use shared Clock Driver Template and support
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
}