2 ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio.
\r
4 This file is part of ChibiOS.
\r
6 ChibiOS is free software; you can redistribute it and/or modify
\r
7 it under the terms of the GNU General Public License as published by
\r
8 the Free Software Foundation; either version 3 of the License, or
\r
9 (at your option) any later version.
\r
11 ChibiOS is distributed in the hope that it will be useful,
\r
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
\r
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
\r
14 GNU General Public License for more details.
\r
16 You should have received a copy of the GNU General Public License
\r
17 along with this program. If not, see <http://www.gnu.org/licenses/>.
\r
21 * KL25Z64 memory setup.
\r
24 ENTRY(Reset_Handler)
\r
28 flash0 : org = 0x00000000, len = 0xc0
\r
29 flashcfg : org = 0x00000400, len = 0x10
\r
30 flash : org = 0x00000410, len = 62k - 0x410
\r
31 eeprom_emu : org = 0x0000F800, len = 2k
\r
32 ram : org = 0x1FFFF800, len = 8k
\r
35 __ram_start__ = ORIGIN(ram);
\r
36 __ram_size__ = LENGTH(ram);
\r
37 __ram_end__ = __ram_start__ + __ram_size__;
\r
39 __eeprom_workarea_start__ = ORIGIN(eeprom_emu);
\r
40 __eeprom_workarea_size__ = LENGTH(eeprom_emu);
\r
41 __eeprom_workarea_end__ = __eeprom_workarea_start__ + __eeprom_workarea_size__;
\r
47 .isr : ALIGN(4) SUBALIGN(4)
\r
52 .cfmprotect : ALIGN(4) SUBALIGN(4)
\r
59 constructors : ALIGN(4) SUBALIGN(4)
\r
61 PROVIDE(__init_array_start = .);
\r
62 KEEP(*(SORT(.init_array.*)))
\r
63 KEEP(*(.init_array))
\r
64 PROVIDE(__init_array_end = .);
\r
67 destructors : ALIGN(4) SUBALIGN(4)
\r
69 PROVIDE(__fini_array_start = .);
\r
70 KEEP(*(.fini_array))
\r
71 KEEP(*(SORT(.fini_array.*)))
\r
72 PROVIDE(__fini_array_end = .);
\r
75 .text : ALIGN(4) SUBALIGN(4)
\r
88 *(.ARM.extab* .gnu.linkonce.armextab.*)
\r
92 PROVIDE(__exidx_start = .);
\r
93 *(.ARM.exidx* .gnu.linkonce.armexidx.*)
\r
94 PROVIDE(__exidx_end = .);
\r
102 .eh_frame : ONLY_IF_RO
\r
107 .textalign : ONLY_IF_RO
\r
113 _textdata = _etext;
\r
118 __main_stack_base__ = .;
\r
119 . += __main_stack_size__;
\r
121 __main_stack_end__ = .;
\r
122 __process_stack_base__ = .;
\r
123 __main_thread_stack_base__ = .;
\r
124 . += __process_stack_size__;
\r
126 __process_stack_end__ = .;
\r
127 __main_thread_stack_end__ = .;
\r
133 PROVIDE(_data = .);
\r
140 PROVIDE(_edata = .);
\r
146 PROVIDE(_bss_start = .);
\r
153 PROVIDE(_bss_end = .);
\r
160 __heap_base__ = _end;
\r
161 __heap_end__ = __ram_end__;
\r