1: /*
2: *----------------------------------------------------------------------
3: * micro T-Kernel 3.00.01
4: *
5: * Copyright (C) 2006-2020 by Ken Sakamura.
6: * This software is distributed under the T-License 2.2.
7: *----------------------------------------------------------------------
8: *
9: * Released by TRON Forum(http://www.tron.org) at 2020/05/29.
10: *
11: *----------------------------------------------------------------------
12: */
13:
14: /*
15: * tkernel_map.ld
16: * micro T-Kernel linker script for RX231 IoT-Engine
17: */
18:
19: MEMORY
20: {
21: RAM : ORIGIN = 0x0, LENGTH = 65536
22: ROM : ORIGIN = 0xFFF80000, LENGTH = 524288
23: }
24: SECTIONS
25: {
26: .exvectors 0xFFFFFF80: AT(0xFFFFFF80) {
27: _exvectors_start = .;
28: KEEP(*(.exvectors))
29: _exvectors_end = .;
30: } > ROM
31: .fvectors 0xFFFFFFFC: AT(0xFFFFFFFC) {
32: KEEP(*(.fvectors))
33: } > ROM
34: .text 0xFFF80000: AT(0xFFF80000) {
35: *(.text)
36: *(.text.*)
37: *(P)
38: etext = .;
39: } > ROM
40: .rvectors ALIGN(4): {
41: _rvectors_start = .;
42: KEEP(*(.rvectors))
43: _rvectors_end = .;
44: . = ALIGN(4);
45: KEEP(*(.hvectors))
46: } > ROM
47: .init :
48: {
49: KEEP(*(.init))
50: __preinit_array_start = .;
51: KEEP(*(.preinit_array))
52: __preinit_array_end = .;
53: __init_array_start = (. + 3) & ~ 3;
54: KEEP(*(.init_array))
55: KEEP(*(SORT(.init_array.*)))
56: __init_array_end = .;
57: __fini_array_start = .;
58: KEEP(*(.fini_array))
59: KEEP(*(SORT(.fini_array.*)))
60: __fini_array_end = .;
61: } > ROM
62: .fini :
63: {
64: KEEP(*(.fini))
65: } > ROM
66: .got :
67: {
68: *(.got)
69: *(.got.plt)
70: } > ROM
71: .rodata : {
72: *(.rodata)
73: *(.rodata.*)
74: *(C_1)
75: *(C_2)
76: *(C)
77: _erodata = .;
78: } > ROM
79: .eh_frame_hdr :
80: {
81: *(.eh_frame_hdr)
82: } > ROM
83: .eh_frame :
84: {
85: *(.eh_frame)
86: } > ROM
87: .jcr :
88: {
89: *(.jcr)
90: } > ROM
91: .tors : {
92: __CTOR_LIST__ = .;
93: . = ALIGN(2);
94: ___ctors = .;
95: *(.ctors)
96: ___ctors_end = .;
97: __CTOR_END__ = .;
98: __DTOR_LIST__ = .;
99: ___dtors = .;
100: *(.dtors)
101: ___dtors_end = .;
102: __DTOR_END__ = .;
103: . = ALIGN(2);
104: __data_org = .;
105: } > ROM
106: .vector 0x0 : {
107: . = ALIGN(4);
108: *(.data_ivector)
109: . = ALIGN(4);
110: *(.data_hvector)
111: } > RAM
112: .data : AT(__data_org) {
113: . = ALIGN(4);
114: __data_start = .;
115: *(.data)
116: *(.data.*)
117: *(D)
118: *(D_1)
119: *(D_2)
120: __data_end = .;
121: } > RAM
122: .gcc_exc : {
123: *(.gcc_exc)
124: } > RAM
125: .bss ALIGN(4) (NOLOAD) : {
126: __bss_start = .;
127: PROVIDE (__noinit_start = .);
128: *(.noinit)
129: PROVIDE (__noinit_end = .);
130: *(.bss)
131: *(.bss.**)
132: *(COMMON)
133: *(B)
134: *(B_1)
135: *(B_2)
136: __bss_end = .;
137: _end = .;
138: } > RAM
139: }