OSDN Git Service

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