aboutsummaryrefslogtreecommitdiff
path: root/lib/chibios/demos/SPC5/RT-SPC560D-EVB/cw/ch/ch.lcf
diff options
context:
space:
mode:
Diffstat (limited to 'lib/chibios/demos/SPC5/RT-SPC560D-EVB/cw/ch/ch.lcf')
-rw-r--r--lib/chibios/demos/SPC5/RT-SPC560D-EVB/cw/ch/ch.lcf156
1 files changed, 156 insertions, 0 deletions
diff --git a/lib/chibios/demos/SPC5/RT-SPC560D-EVB/cw/ch/ch.lcf b/lib/chibios/demos/SPC5/RT-SPC560D-EVB/cw/ch/ch.lcf
new file mode 100644
index 000000000..e884720de
--- /dev/null
+++ b/lib/chibios/demos/SPC5/RT-SPC560D-EVB/cw/ch/ch.lcf
@@ -0,0 +1,156 @@
1/*
2 ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio.
3
4 This file is part of ChibiOS.
5
6 ChibiOS is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 3 of the License, or
9 (at your option) any later version.
10
11 ChibiOS is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with this program. If not, see <http://www.gnu.org/licenses/>.
18*/
19
20/*
21 * SPC560D40 memory setup.
22 */
23MEMORY
24{
25 rom : org = 0x00000000, len = 0x00040000
26 dataflash : org = 0x00800000, len = 0x00010000
27 ram : org = 0x40000000, len = 0x00004000
28}
29
30__irq_stack_size__ = 0;
31__process_stack_size__ = 0x0400;
32
33__ram_size__ = SIZEOF(ram);
34__ram_start__ = ADDR(ram);
35__ram_end__ = ADDR(ram) + SIZEOF(ram);
36
37SECTIONS
38{
39 GROUP:
40 {
41 .boot ALIGN(16):
42 {
43 KEEP(*(.boot))
44 }
45
46 .handlers (VLECODE) ALIGN(4): {
47 KEEP(*(.handlers))
48 }
49
50 .crt0 (VLECODE) ALIGN(4): {
51 *(.crt0)
52 }
53
54 .init: {}
55 .init_vle (VLECODE) ALIGN(4):
56 {
57 *(.init)
58 *(.init_vle)
59 }
60
61 .vectors ALIGN(0x800):
62 {
63 KEEP(*(.vectors))
64 }
65
66 .ivors (VLECODE) ALIGN(0x1000):
67 {
68 __ivpr_base__ = .;
69 KEEP(*(.ivors))
70 }
71
72 .code (VLECODE) ALIGN(16):
73 {
74 *(.text)
75 *(.text_vle)
76 }
77
78 .const (CONST) ALIGN(16):
79 {
80 *(.rdata)
81 *(.rodata)
82 }
83
84 .sdata2 (CONST) ALIGN(16):
85 {
86 __sdata2_start__ = . + 0x8000;
87 *(.sdata2)
88 *(.sbss2)
89 }
90
91 .ctors: {}
92 .dtors: {}
93 extab: {}
94 extabindex: {}
95
96 . = ALIGN(4);
97 __romdata_start__ = .;
98 } > rom
99
100 GROUP:
101 {
102 .stacks:
103 {
104 . = ALIGN(8);
105 __irq_stack_base__ = .;
106 . = . + __irq_stack_size__;
107 . = ALIGN(8);
108 __irq_stack_end__ = .;
109 __process_stack_base__ = .;
110 __main_thread_stack_base__ = .;
111 . = . + __process_stack_size__;
112 . = ALIGN(8);
113 __process_stack_end__ = .;
114 __main_thread_stack_end__ = .;
115 }
116
117 .data (DATA) LOAD(__romdata_start__):
118 {
119 . = ALIGN(4);
120 __data_start__ = .;
121 *(.data)
122 . = ALIGN(4);
123 }
124
125 .sdata (DATA) LOAD(ROMADDR(.data) + SIZEOF(.data)):
126 {
127 __sdata_start__ = . + 0x8000;
128 *(.sdata)
129 __data_end__ = .;
130 }
131
132 .sbss (BSS):
133 {
134 __bss_start__ = .;
135 *(.sbss)
136 }
137
138 .bss (BSS):
139 {
140 *(.bss)
141 __bss_end__ = .;
142 }
143
144 /* The default heap uses the (statically) unused part of a RAM section.*/
145 .heap:
146 {
147 . = ALIGN(8);
148 __heap_base__ = .;
149 . = ADDR(ram) + SIZEOF(ram);
150 __heap_end__ = .;
151 }
152
153 .PPC.EMB.sdata0: {}
154 .PPC.EMB.sbss0: {}
155 } > ram
156}