summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinus Nielsen Feltzing <linus@haxx.se>2002-04-25 13:30:41 +0000
committerLinus Nielsen Feltzing <linus@haxx.se>2002-04-25 13:30:41 +0000
commit9c1299c9c1892efc67c75f8cd551ffe9f2863156 (patch)
tree56fbd7a85b1d04a2392dd73a03db6a80df7837bf
parentb3aecff464e83ae3ab7245f323687aec78544533 (diff)
downloadrockbox-9c1299c9c1892efc67c75f8cd551ffe9f2863156.tar.gz
rockbox-9c1299c9c1892efc67c75f8cd551ffe9f2863156.zip
Working sleep() functionality
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@232 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--firmware/test/kernel/main.c17
-rw-r--r--firmware/test/kernel/timer.c3
2 files changed, 12 insertions, 8 deletions
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)
42 debugger when you hit CTRL-C */ 42 debugger when you hit CTRL-C */
43 SCR1 |= 0x40; 43 SCR1 |= 0x40;
44 SCR1 &= ~0x80; 44 SCR1 &= ~0x80;
45 IPRE |= 0xf000; /* Set to highest priority */
45 asm ("ldc\t%0,sr" : : "r"(0<<4)); 46 asm ("ldc\t%0,sr" : : "r"(0<<4));
46 47
47 debugf("OK. Let's go\n"); 48 debugf("OK. Let's go\n");
48 49
49 tick_start(40); 50 tick_start(10);
50 51
51 create_thread(t1, s1, 1024); 52 create_thread(t1, s1, 1024);
52 create_thread(t2, s2, 1024); 53 create_thread(t2, s2, 1024);
53 54
54 while(1) 55 while(1)
55 { 56 {
56 debugf("t0\n"); 57 sleep(100);
57 sleep(100); 58 debugf("Thread 0 awakened\n");
58 } 59 }
59} 60}
60 61
61void t1(void) 62void t1(void)
62{ 63{
64 debugf("Thread 1 started\n");
63 while(1) 65 while(1)
64 { 66 {
65 debugf("t1\n"); 67 sleep(200);
66 sleep(200); 68 debugf("Thread 1 awakened\n");
67 } 69 }
68} 70}
69 71
70void t2(void) 72void t2(void)
71{ 73{
74 debugf("Thread 2 started\n");
72 while(1) 75 while(1)
73 { 76 {
74 debugf("t2\n"); 77 sleep(300);
75 sleep(300); 78 debugf("Thread 2 awakened\n");
76 } 79 }
77} 80}
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)
49 IPRC = (IPRC & ~0x00f0) | 0x0010; 49 IPRC = (IPRC & ~0x00f0) | 0x0010;
50 50
51 TSR0 &= ~0x01; 51 TSR0 &= ~0x01;
52 TIER0 |= 0x01; /* Enable GRA match interrupt */ 52 TIER0 = 0xf9; /* Enable GRA match interrupt */
53 53
54 TSTR |= 0x01; /* Start timer 1 */ 54 TSTR |= 0x01; /* Start timer 1 */
55} 55}
@@ -59,5 +59,6 @@ void IMIA0(void)
59{ 59{
60 current_tick++; 60 current_tick++;
61 61
62// debugf("t\n");
62 TSR0 &= ~0x01; 63 TSR0 &= ~0x01;
63} 64}