OSDN Git Service

Step 10 added.
[kozos-expbrd/kozos_expbrd.git] / firm / junk / 06 / 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   kz_run(consdrv_main,  "consdrv",  1, 0x200, 0, NULL);
10   kz_run(command_main,  "command",  8, 0x200, 0, NULL);
11   kz_run(timerdrv_main, "timerdrv", 2, 0x100, 0, NULL);
12   kz_run(leddrv_main,   "leddrv",   7, 0x100, 0, NULL);
13   kz_run(clock_main,    "clock",    9, 0x100, 0, NULL);
14   kz_run(remocon_main,  "remocon", 10, 0x100, 0, NULL);
15
16   kz_chpri(15); /* Í¥Àè½ç°Ì¤ò²¼¤²¤Æ¡¤¥¢¥¤¥É¥ë¥¹¥ì¥Ã¥É¤Ë°Ü¹Ô¤¹¤ë */
17   INTR_ENABLE; /* ³ä¹þ¤ßÍ­¸ú¤Ë¤¹¤ë */
18   while (1) {
19     asm volatile ("sleep"); /* ¾ÊÅÅÎϥ⡼¥É¤Ë°Ü¹Ô */
20   }
21
22   return 0;
23 }
24
25 int main(void)
26 {
27   INTR_DISABLE; /* ³ä¹þ¤ß̵¸ú¤Ë¤¹¤ë */
28
29   puts("kozos boot succeed!\n");
30
31   /* OS¤ÎÆ°ºî³«»Ï */
32   kz_start(start_threads, "idle", 0, 0x100, 0, NULL);
33   /* ¤³¤³¤Ë¤ÏÌá¤Ã¤Æ¤³¤Ê¤¤ */
34
35   return 0;
36 }