OSDN Git Service

78732121d20865cbb749292e83e039e316d2489a
[kozos-expbrd/kozos_expbrd.git] / firm / simple_mp3_player / bootload / init.c
1
2 #include "init.h"
3 #include "lib.h"
4 #include "interrupt.h"
5 #include "defines.h"
6 #include "banner.h"
7 #include "serial.h"
8 #include "dram.h"
9 #include "led.h"
10 #include "re.h"
11 #include "sw.h"
12 #include "sg12232c.h"
13 #include "spi.h"
14 #include "vs1011e.h"
15
16 int init_system(void)
17 {
18   /* 以下はリンカ・スクリプトで定義してあるシンボル */
19   extern int erodata, data_start, edata, bss_start, ebss;
20
21   /*
22    * データ領域とBSS領域を初期化する.この処理以降でないと,
23    * グローバル変数が初期化されていないので注意.
24    */
25   memcpy(&data_start, &erodata, (long)&edata - (long)&data_start);
26   memset(&bss_start, 0, (long)&ebss - (long)&bss_start);
27
28   /* ソフトウエア・割り込みベクタを初期化する */
29   softvec_init();
30
31   /* シリアルの初期化 */
32   serial_init(SERIAL_DEFAULT_DEVICE);
33
34   banner();
35
36   return 0;
37 }
38
39 int init_components(void)
40 {
41   /* DRAMの初期化 */
42   puts("Init : DRAM...");
43   dram_init();
44   puts("Done.\n");
45
46   /* LEDの初期化 */
47   puts("Init : LED...");
48   led_init();
49   puts("Done.\n");
50
51   /* ロータリーエンコーダーの初期化 */
52   puts("Init : Rotary Encoder...");
53   re_init();
54   puts("Done.\n");
55
56   /* スイッチの初期化 */
57   puts("Init : Switch...");
58   sw_init();
59   puts("Done.\n");
60
61   /* LCDの初期化 */
62   puts("Init : LCD...");
63   sg12232c_init();
64   sg12232c_clear();
65   sg12232c_draw_box(0, 0, 121, 31, 0);
66   sg12232c_draw_string(2, 2, "KOZOS EXPBRD #00", 0);
67   puts("Done.\n");
68
69   /* SPI Bus initializing. */
70   puts("Init : SPI Bus...");
71   spi_init();
72   puts("Done.\n");
73
74   /* VS1011e */
75   puts("Init : VS1011E...");
76   vs1011e_init();
77   vs1011e_volume_write(0x40, 0x40);
78   puts("Done.\n");
79
80   puts("Init : All Done.\n");
81
82   return 0;
83 }
84