You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
165 lines
5.0 KiB
165 lines
5.0 KiB
/**************************************************************************** |
|
* configs/olimex-lpc2378/nsh/ld.script |
|
* |
|
* Copyright (C) 2010 Rommel Marcelo. All rights reserved. |
|
* Author: Rommel Marcelo |
|
* |
|
* This is part of the NuttX RTOS and based on the LPC2148 port: |
|
* |
|
* Copyright (C) 2010, 2011 Gregory Nutt. All rights reserved. |
|
* Author: Gregory Nutt <spudmonkey@racsa.co.cr> |
|
* |
|
* Redistribution and use in source and binary forms, with or without |
|
* modification, are permitted provided that the following conditions |
|
* are met: |
|
* |
|
* 1. Redistributions of source code must retain the above copyright |
|
* notice, this list of conditions and the following disclaimer. |
|
* 2. Redistributions in binary form must reproduce the above copyright |
|
* notice, this list of conditions and the following disclaimer in |
|
* the documentation and/or other materials provided with the |
|
* distribution. |
|
* 3. Neither the name NuttX nor the names of its contributors may be |
|
* used to endorse or promote products derived from this software |
|
* without specific prior written permission. |
|
* |
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS |
|
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE |
|
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, |
|
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, |
|
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS |
|
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED |
|
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |
|
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN |
|
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
|
* POSSIBILITY OF SUCH DAMAGE. |
|
* |
|
****************************************************************************/ |
|
MEMORY |
|
{ |
|
ROM (rx) : ORIGIN = 0x00000000, LENGTH = (512k-8k) /* Flash: 512k - boot code */ |
|
RAM (rw) : ORIGIN = 0x40000000, LENGTH = (32k-32) /* SRAM: 32k - IAP work */ |
|
URAM (rw) : ORIGIN = 0x7FD00000, LENGTH = (8k) /* USB RAM: 8k */ |
|
ERAM (rw) : ORIGIN = 0x7FE00000, LENGTH = (16k) /* Ethernet RAM: 16k */ |
|
BRAM (rw) : ORIGIN = 0xE0084000, LENGTH = (2k) /* Battery RAM: 2k */ |
|
} |
|
|
|
OUTPUT_ARCH(arm) |
|
ENTRY(_stext) |
|
SECTIONS |
|
{ |
|
.text : { |
|
_stext = ABSOLUTE(.); |
|
*(.vectors) /* Startup code */ |
|
*(.text .text.*) /* remaining code */ |
|
*(.fixup) |
|
*(.gnu.warning) |
|
*(.rodata .rodata.*) /* read-only data (constants) */ |
|
*(.gnu.linkonce.t.*) |
|
*(.glue_7) |
|
*(.glue_7t) |
|
*(.got) |
|
*(.gcc_except_table) |
|
*(.gnu.linkonce.r.*) |
|
_etext = ABSOLUTE(.); |
|
. = ALIGN(4); |
|
} > ROM |
|
|
|
/* This is where the .data section is relocated for execution out |
|
* FLASH. The .data section will be relocated from _eronly |
|
* to _sdata at boot time. |
|
*/ |
|
. = ALIGN(4); |
|
_eronly = ABSOLUTE(.); |
|
|
|
.data : |
|
{ |
|
_sdata = ABSOLUTE(.); |
|
*(.data .data.*) |
|
*(.gnu.linkonce.d.*) |
|
CONSTRUCTORS |
|
_edata = ABSOLUTE(.); |
|
} > RAM AT > ROM |
|
|
|
.ARM.extab : { |
|
*(.ARM.extab*) |
|
} > RAM |
|
|
|
__exidx_start = ABSOLUTE(.); |
|
.ARM.exidx : { |
|
*(.ARM.exidx*) |
|
} > RAM |
|
__exidx_end = ABSOLUTE(.); |
|
|
|
/* .bss section which is initialized by 0 */ |
|
/* This section will be filled with zero by startup code */ |
|
.bss (NOLOAD) : |
|
{ |
|
_sbss = ABSOLUTE(.) ; |
|
*(.bss) |
|
*(.bss.*) |
|
*(.gnu.linkonce.b*) |
|
*(COMMON) |
|
_ebss = ABSOLUTE(.); |
|
} > RAM |
|
|
|
.usbram (NOLOAD) : |
|
{ |
|
__usbram_start = . ; |
|
__usbram_start__ = . ; |
|
*(.usbram) |
|
. = ALIGN(4); |
|
} > URAM |
|
|
|
.etherram (NOLOAD) : |
|
{ |
|
__etherram_start = . ; |
|
__etherram_start__ = . ; |
|
*(.etherram) |
|
. = ALIGN(4); |
|
} > ERAM |
|
|
|
.batteryram (NOLOAD) : |
|
{ |
|
__batteryram_start = . ; |
|
__batteryram_start__ = . ; |
|
*(.batteryram) |
|
. = ALIGN(4); |
|
} > BRAM |
|
|
|
/* Stabs debugging sections. */ |
|
.stab 0 : { *(.stab) } |
|
.stabstr 0 : { *(.stabstr) } |
|
.stab.excl 0 : { *(.stab.excl) } |
|
.stab.exclstr 0 : { *(.stab.exclstr) } |
|
.stab.index 0 : { *(.stab.index) } |
|
.stab.indexstr 0 : { *(.stab.indexstr) } |
|
.comment 0 : { *(.comment) } |
|
/* DWARF debug sections. |
|
Symbols in the DWARF debugging sections are relative to the beginning |
|
of the section so we begin them at 0. */ |
|
/* DWARF 1 */ |
|
.debug 0 : { *(.debug) } |
|
.line 0 : { *(.line) } |
|
/* GNU DWARF 1 extensions */ |
|
.debug_srcinfo 0 : { *(.debug_srcinfo) } |
|
.debug_sfnames 0 : { *(.debug_sfnames) } |
|
/* DWARF 1.1 and DWARF 2 */ |
|
.debug_aranges 0 : { *(.debug_aranges) } |
|
.debug_pubnames 0 : { *(.debug_pubnames) } |
|
/* DWARF 2 */ |
|
.debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } |
|
.debug_abbrev 0 : { *(.debug_abbrev) } |
|
.debug_line 0 : { *(.debug_line) } |
|
.debug_frame 0 : { *(.debug_frame) } |
|
.debug_str 0 : { *(.debug_str) } |
|
.debug_loc 0 : { *(.debug_loc) } |
|
.debug_macinfo 0 : { *(.debug_macinfo) } |
|
/* SGI/MIPS DWARF 2 extensions */ |
|
.debug_weaknames 0 : { *(.debug_weaknames) } |
|
.debug_funcnames 0 : { *(.debug_funcnames) } |
|
.debug_typenames 0 : { *(.debug_typenames) } |
|
.debug_varnames 0 : { *(.debug_varnames) } |
|
}
|
|
|