1: /*
2: *----------------------------------------------------------------------
3: * T-Kernel 2.0 Software Package
4: *
5: * Copyright 2011 by Ken Sakamura.
6: * This software is distributed under the latest version of T-License 2.x.
7: *----------------------------------------------------------------------
8: *
9: * Released by T-Engine Forum(http://www.t-engine.org/) at 2011/05/17.
10: * Modified by TRON Forum(http://www.tron.org/) at 2015/06/01.
11: *
12: *----------------------------------------------------------------------
13: */
14:
15: /*
16: * monitor.lnk
17: *
18: * link specification for monitor
19: */
20:
21: OUTPUT_FORMAT("elf32-larm-tkernel", "elf32-barm-tkernel", "elf32-larm-tkernel")
22: OUTPUT_ARCH(arm)
23: ENTRY(_start)
24:
25: SECTIONS {
26: __loadaddr = 0x70000000;
27: _start = 0x70000000;
28: .eitbra _start : AT(__loadaddr) {
29: __eitbra_start = .;
30: *(EITBRA)
31: . = ALIGN(0x10);
32: }
33: .startup : {
34: *(.startup)
35: . = ALIGN(0x10);
36: }
37: __text_org = __loadaddr + SIZEOF(.startup) + SIZEOF(.eitbra);
38: .text __text_org : {
39: _stext = .;
40: KEEP (*(.init))
41: *(.text)
42: *(.text.*)
43: *(.stub)
44: *(.glue_7t)
45: *(.glue_7)
46: KEEP (*(.fini))
47: PROVIDE (__etext = .);
48: PROVIDE (_etext = .);
49: PROVIDE (etext = .);
50: *(.rodata)
51: *(.rodata.*)
52: *(.rodata1)
53: . = ALIGN(0x10);
54: } =0
55: __data_org = . ;
56: .data 0x30004440 : AT(LOADADDR(.text) + SIZEOF(.text)) {
57: __data_start = . ;
58: *(flashwr.rodata)
59: *(.data)
60: *(.data.*)
61: SORT(CONSTRUCTORS)
62: *(.data1)
63: KEEP (*(.eh_frame))
64: *(.gcc_except_table)
65: KEEP (*crtbegin.o(.ctors))
66: KEEP (*(EXCLUDE_FILE (*crtend.o ) .ctors))
67: KEEP (*(SORT(.ctors.*)))
68: KEEP (*(.ctors))
69: KEEP (*crtbegin.o(.dtors))
70: KEEP (*(EXCLUDE_FILE (*crtend.o ) .dtors))
71: KEEP (*(SORT(.dtors.*)))
72: KEEP (*(.dtors))
73: *(.got.plt)
74: *(.got)
75: *(.sdata)
76: *(.sdata.*)
77: . = ALIGN(0x10);
78: _edata = .;
79: PROVIDE (edata = .);
80: }
81: .bss (NOLOAD) : AT(LOADADDR(.data) + SIZEOF(.data)) {
82: __bss_start = .;
83: PROVIDE (__sbss_start = .);
84: PROVIDE (___sbss_start = .);
85: *(.sbss)
86: *(.sbss.*)
87: *(.scommon)
88: PROVIDE (__sbss_end = .);
89: PROVIDE (___sbss_end = .);
90: *(.bss)
91: *(.bss.*)
92: *(EXCLUDE_FILE(*/wrkbuf.o) COMMON)
93: . = ALIGN(0x10);
94: _end = .;
95: PROVIDE (end = .);
96: }
97: __flashwr_org = __data_org + SIZEOF(.data);
98: OVERLAY : AT(LOADADDR(.bss)) {
99: .flashwr {
100: __flashwr_start = .;
101: *(flashwr.text)
102: __flashwr_end = .;
103: }
104: .wrkbuf {
105: */wrkbuf.o(COMMON)
106: }
107: }
108: .stack ALIGN(0x10) (NOLOAD) : {
109: __stack_top = .;
110: __stack_bottom = 0x30006000 - ABSOLUTE(.);
111: }
112: }