OSDN Git Service

Changed system task structure.
[kozos-expbrd/kozos_expbrd.git] / firm / sample / sample1 / os / main.c
1 #include "defines.h"
2 #include "kozos.h"
3 #include "interrupt.h"
4 #include "lib.h"
5
6 /* ¥·¥¹¥Æ¥à¡¦¥¿¥¹¥¯¤È¥æ¡¼¥¶¡¦¥¿¥¹¥¯¤Îµ¯Æ° */
7 static int start_threads(int argc, char *argv[])
8 {
9   /*
10    * Drivers
11    */
12   kz_run(driver_console,    "dConsole",  1, 0x200, 0, NULL);
13   kz_run(driver_timer,      "dTimer",    2, 0x200, 0, NULL);
14
15   /*
16    * Tasks
17    */
18   kz_run(task_audio,        "tAudio",    5, 0x800, 0, NULL);
19   kz_run(task_display,      "tDisplay",  6, 0x800, 0, NULL);
20   kz_run(task_menu,         "tMenu",     8, 0x800, 0, NULL);
21   kz_run(task_input,        "tInput",    8, 0x800, 0, NULL);
22   kz_run(task_command,      "tCommand",  9, 0x800, 0, NULL);
23
24   kz_chpri(15); /* Í¥Àè½ç°Ì¤ò²¼¤²¤Æ¡¤¥¢¥¤¥É¥ë¥¹¥ì¥Ã¥É¤Ë°Ü¹Ô¤¹¤ë */
25   INTR_ENABLE; /* ³ä¹þ¤ßÍ­¸ú¤Ë¤¹¤ë */
26   while (1) {
27     asm volatile ("sleep"); /* ¾ÊÅÅÎϥ⡼¥É¤Ë°Ü¹Ô */
28   }
29
30   return 0;
31 }
32
33 int main(void)
34 {
35   INTR_DISABLE; /* ³ä¹þ¤ß̵¸ú¤Ë¤¹¤ë */
36
37   puts("kozos boot succeed!\n");
38
39   /* OS¤ÎÆ°ºî³«»Ï */
40   kz_start(start_threads, "idle", 0, 0x100, 0, NULL);
41   /* ¤³¤³¤Ë¤ÏÌá¤Ã¤Æ¤³¤Ê¤¤ */
42
43   return 0;
44 }
45