-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathkernel.ld
More file actions
61 lines (50 loc) · 1.33 KB
/
kernel.ld
File metadata and controls
61 lines (50 loc) · 1.33 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
/*
kernel.ls
kotetuco 2008 - 2016
*/
/*入力オブジェクトファイル(将来的にMakefileで定義)*/
/*出力オブジェクトファイル(Makefileで定義)*/
ENTRY(rusternel_main)
/*出力フォーマット*/
OUTPUT_FORMAT("binary")
/*セクション*/
SECTIONS{
/*.hrbオブジェクトファイルのフォーマットに従い、ヘッダを定義*/
.head 0x0 :
{
LONG((ADDR(.bss) + SIZEOF(.bss) + 0xfff) & ~ 0xfff)
BYTE(0x48) BYTE(0x61) BYTE(0x72) BYTE(0x69)
LONG(0x0)
LONG(ADDR(.data))
LONG(SIZEOF(.data))
LONG(LOADADDR(.data))
LONG(0xe9000000)
LONG(rusternel_main - 0x20)
LONG((ADDR(.bss) + SIZEOF(.bss) + 0xf) & ~ 0xf)
}
/*.textセクションのメモリ開始位置*/
.text ADDR(.head) + SIZEOF(.head) : SUBALIGN(1)
{
/*.textセクション全部を含む*/
*(.text.os_main)
*(.text*)
}
/*.dataセクションのメモリ開始位置*/
.data 0x00000400:
/*.data :*/
/*.dataセクションのファイル上の開始位置*/
AT(LOADADDR(.text) + SIZEOF(.text)) SUBALIGN(4)
{
*(.data)
*(.rodata*)
}
/*.bssセクションのメモリ開始位置(.dataセクションの終端から)*/
.bss :
/*.bssセクションのファイル上の開始位置*/
AT(LOADADDR(.data) + SIZEOF(.data)) SUBALIGN(4)
{
*(.bss)
}
/* 上記以外のセクションは無視する */
/DISCARD/ : {*(*)}
}