Added scheduler test.
authormarco <marco@38d2e660-2303-0410-9eaa-f027e97ec537>
Wed, 20 Sep 2006 14:53:22 +0000 (14:53 +0000)
committermarco <marco@38d2e660-2303-0410-9eaa-f027e97ec537>
Wed, 20 Sep 2006 14:53:22 +0000 (14:53 +0000)
git-svn-id: https://src.develer.com/svnoss/bertos/trunk@717 38d2e660-2303-0410-9eaa-f027e97ec537

kern/proc_test.c [new file with mode: 0755]

diff --git a/kern/proc_test.c b/kern/proc_test.c
new file mode 100755 (executable)
index 0000000..3191525
--- /dev/null
@@ -0,0 +1,58 @@
+
+#include <kern/proc.h>
+#include <drv/timer.h>
+
+/**
+ * Proc scheduling test subthread 1
+ */
+static void NORETURN proc_test_thread1(void)
+{
+       for (;;)
+       {
+               kputs(">task 1\n");
+               timer_delay(50);
+               proc_switch();
+       }
+}
+
+/**
+ * Proc scheduling test subthread 2
+ */
+static void NORETURN proc_test_thread2(void)
+{
+       for (;;)
+       {
+               kputs(">task 2\n");
+               timer_delay(75);
+               proc_switch();
+       }
+}
+
+static cpustack_t proc_test_stack1[CONFIG_KERN_DEFSTACKSIZE/sizeof(cpustack_t)];
+static cpustack_t proc_test_stack2[CONFIG_KERN_DEFSTACKSIZE/sizeof(cpustack_t)];
+
+/**
+ * Proc scheduling test
+ */
+void NORETURN proc_test(void)
+{
+       proc_new(proc_test_thread1, NULL, sizeof(proc_test_stack1), proc_test_stack1);
+       proc_new(proc_test_thread2, NULL, sizeof(proc_test_stack2), proc_test_stack2);
+       kputs("Created tasks\n");
+
+       kputs("stack1:\n");
+       #warning FIXME
+       //kdump(proc_test_stack1+sizeof(proc_test_stack1)-64, 64);
+       kputs("stack2:\n");
+       #warning FIXME
+       //kdump(proc_test_stack2+sizeof(proc_test_stack1)-64, 64);
+
+       for (;;)
+       {
+               kputs(">main task\n");
+               timer_delay(93);
+               proc_switch();
+       }
+
+       ASSERT(false);
+}