From 9c1299c9c1892efc67c75f8cd551ffe9f2863156 Mon Sep 17 00:00:00 2001 From: Linus Nielsen Feltzing Date: Thu, 25 Apr 2002 13:30:41 +0000 Subject: Working sleep() functionality git-svn-id: svn://svn.rockbox.org/rockbox/trunk@232 a1c6a512-1295-4272-9138-f99709370657 --- firmware/test/kernel/main.c | 17 ++++++++++------- firmware/test/kernel/timer.c | 3 ++- 2 files changed, 12 insertions(+), 8 deletions(-) (limited to 'firmware/test') diff --git a/firmware/test/kernel/main.c b/firmware/test/kernel/main.c index b52ecff21d..1280b8113b 100644 --- a/firmware/test/kernel/main.c +++ b/firmware/test/kernel/main.c @@ -42,36 +42,39 @@ int main(void) debugger when you hit CTRL-C */ SCR1 |= 0x40; SCR1 &= ~0x80; + IPRE |= 0xf000; /* Set to highest priority */ asm ("ldc\t%0,sr" : : "r"(0<<4)); debugf("OK. Let's go\n"); - tick_start(40); + tick_start(10); create_thread(t1, s1, 1024); create_thread(t2, s2, 1024); while(1) { - debugf("t0\n"); - sleep(100); + sleep(100); + debugf("Thread 0 awakened\n"); } } void t1(void) { + debugf("Thread 1 started\n"); while(1) { - debugf("t1\n"); - sleep(200); + sleep(200); + debugf("Thread 1 awakened\n"); } } void t2(void) { + debugf("Thread 2 started\n"); while(1) { - debugf("t2\n"); - sleep(300); + sleep(300); + debugf("Thread 2 awakened\n"); } } diff --git a/firmware/test/kernel/timer.c b/firmware/test/kernel/timer.c index 31c6f82baa..a0d180ab51 100644 --- a/firmware/test/kernel/timer.c +++ b/firmware/test/kernel/timer.c @@ -49,7 +49,7 @@ void tick_start(unsigned int interval_in_ms) IPRC = (IPRC & ~0x00f0) | 0x0010; TSR0 &= ~0x01; - TIER0 |= 0x01; /* Enable GRA match interrupt */ + TIER0 = 0xf9; /* Enable GRA match interrupt */ TSTR |= 0x01; /* Start timer 1 */ } @@ -59,5 +59,6 @@ void IMIA0(void) { current_tick++; +// debugf("t\n"); TSR0 &= ~0x01; } -- cgit v1.2.3