mirror of
https://github.com/apache/nuttx.git
synced 2026-08-19 12:38:18 +00:00
Shmem region lives in RAM and should not be load in FLASH. This fixes the issue with wrong binary size when build AMP configurations with RPTUN enabled. Before this change shmem region was exported by objcopy to binary file which caused the bin size to be huge and impossible to flash. Signed-off-by: raiden00pl <raiden00@railab.me>
127 lines
3.4 KiB
Text
127 lines
3.4 KiB
Text
/****************************************************************************
|
|
* boards/arm/nrf53/thingy53/scripts/flash_app.ld
|
|
*
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*
|
|
* Licensed to the Apache Software Foundation (ASF) under one or more
|
|
* contributor license agreements. See the NOTICE file distributed with
|
|
* this work for additional information regarding copyright ownership. The
|
|
* ASF licenses this file to you under the Apache License, Version 2.0 (the
|
|
* "License"); you may not use this file except in compliance with the
|
|
* License. You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
* License for the specific language governing permissions and limitations
|
|
* under the License.
|
|
*
|
|
****************************************************************************/
|
|
|
|
#include <nuttx/config.h>
|
|
|
|
#ifdef CONFIG_RPTUN
|
|
# define RPTUN_SHMEM 0x8000
|
|
#else
|
|
# define RPTUN_SHMEM 0
|
|
#endif
|
|
|
|
MEMORY
|
|
{
|
|
progmem (rx) : ORIGIN = 0x00000000, LENGTH = 1024K
|
|
datamem (rwx) : ORIGIN = 0x20000000, LENGTH = 512K - RPTUN_SHMEM
|
|
shmem (rw) : ORIGIN = 0x20078000, LENGTH = RPTUN_SHMEM
|
|
}
|
|
|
|
OUTPUT_ARCH(arm)
|
|
ENTRY(__start) /* Treat __start as the anchor for dead code stripping */
|
|
EXTERN(_vectors) /* Force the vectors to be included in the output */
|
|
SECTIONS
|
|
{
|
|
.text :
|
|
{
|
|
_stext = ABSOLUTE(.);
|
|
*(.vectors)
|
|
*(.text .text.*)
|
|
*(.fixup)
|
|
*(.gnu.warning)
|
|
*(.rodata .rodata.*)
|
|
*(.gnu.linkonce.t.*)
|
|
*(.glue_7)
|
|
*(.glue_7t)
|
|
*(.got)
|
|
*(.gcc_except_table)
|
|
*(.gnu.linkonce.r.*)
|
|
_etext = ABSOLUTE(.);
|
|
} > progmem
|
|
|
|
.init_section :
|
|
{
|
|
_sinit = ABSOLUTE(.);
|
|
KEEP(*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*)))
|
|
KEEP(*(.init_array EXCLUDE_FILE(*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o) .ctors))
|
|
_einit = ABSOLUTE(.);
|
|
} > progmem
|
|
|
|
.ARM.extab :
|
|
{
|
|
*(.ARM.extab*)
|
|
} > progmem
|
|
|
|
__exidx_start = ABSOLUTE(.);
|
|
.ARM.exidx :
|
|
{
|
|
*(.ARM.exidx*)
|
|
} > progmem
|
|
__exidx_end = ABSOLUTE(.);
|
|
|
|
_eronly = ABSOLUTE(.);
|
|
|
|
.data :
|
|
{
|
|
_sdata = ABSOLUTE(.);
|
|
*(.data .data.*)
|
|
*(.gnu.linkonce.d.*)
|
|
CONSTRUCTORS
|
|
. = ALIGN(4);
|
|
_edata = ABSOLUTE(.);
|
|
} > datamem AT > progmem
|
|
|
|
/* BSS */
|
|
|
|
.bss :
|
|
{
|
|
_sbss = ABSOLUTE(.);
|
|
*(.bss .bss.*)
|
|
*(.gnu.linkonce.b.*)
|
|
*(COMMON)
|
|
. = ALIGN(4);
|
|
_ebss = ABSOLUTE(.);
|
|
} > datamem
|
|
|
|
/* Shmem */
|
|
|
|
.shmem (NOLOAD):
|
|
{
|
|
. = ALIGN(4);
|
|
*(.shmem);
|
|
KEEP(*(.shmem))
|
|
} > shmem
|
|
|
|
/* 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) }
|
|
.debug_abbrev 0 : { *(.debug_abbrev) }
|
|
.debug_info 0 : { *(.debug_info) }
|
|
.debug_line 0 : { *(.debug_line) }
|
|
.debug_pubnames 0 : { *(.debug_pubnames) }
|
|
.debug_aranges 0 : { *(.debug_aranges) }
|
|
}
|