A Small Cooperative Multitasking Kernel

Dependencies:   mbed

Committer:
Ivop
Date:
Sun Jul 24 17:15:42 2011 +0000
Revision:
0:73b89fc74e9f
first release

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Ivop 0:73b89fc74e9f 1 #include "kernel.h"
Ivop 0:73b89fc74e9f 2 #include <stdio.h>
Ivop 0:73b89fc74e9f 3
Ivop 0:73b89fc74e9f 4 static void task_zero(void);
Ivop 0:73b89fc74e9f 5 static void task_one(void);
Ivop 0:73b89fc74e9f 6
Ivop 0:73b89fc74e9f 7 struct ou_task ou_tasks[] = {
Ivop 0:73b89fc74e9f 8 { task_zero, 2, 0, 0, 0, NULL },
Ivop 0:73b89fc74e9f 9 { task_one, 1, 0, 0, 0, NULL }
Ivop 0:73b89fc74e9f 10 };
Ivop 0:73b89fc74e9f 11
Ivop 0:73b89fc74e9f 12 const unsigned ou_ntasks = sizeof(ou_tasks)/sizeof(struct ou_task);
Ivop 0:73b89fc74e9f 13
Ivop 0:73b89fc74e9f 14 OU_TASK(task_zero)
Ivop 0:73b89fc74e9f 15 OU_WAIT(100);
Ivop 0:73b89fc74e9f 16 printf("hello\r\n");
Ivop 0:73b89fc74e9f 17 OU_WAIT(100);
Ivop 0:73b89fc74e9f 18 printf("world\r\n");
Ivop 0:73b89fc74e9f 19 OU_ENDTASK
Ivop 0:73b89fc74e9f 20
Ivop 0:73b89fc74e9f 21 OU_TASK(task_one)
Ivop 0:73b89fc74e9f 22 OU_WAIT(100);
Ivop 0:73b89fc74e9f 23 printf("goodbye\r\n");
Ivop 0:73b89fc74e9f 24 OU_WAIT(100);
Ivop 0:73b89fc74e9f 25 printf("cruel\r\n");
Ivop 0:73b89fc74e9f 26 OU_WAIT(100);
Ivop 0:73b89fc74e9f 27 printf("world...\r\n");
Ivop 0:73b89fc74e9f 28 for(;;) {
Ivop 0:73b89fc74e9f 29 OU_WAIT(50);
Ivop 0:73b89fc74e9f 30 printf("loop\r\n");
Ivop 0:73b89fc74e9f 31 }
Ivop 0:73b89fc74e9f 32 OU_ENDTASK