boards/nrf53: unify linker scripts

Unify linker scripts:
- use the same name for linker scripts
- merge RPTUN linker scripts with standard linker scripts
This commit is contained in:
raiden00pl 2023-05-31 08:54:25 +02:00 committed by Xiang Xiao
parent e6506619ac
commit ebfd0b22f9
13 changed files with 58 additions and 472 deletions

View File

@ -23,11 +23,11 @@ include $(TOPDIR)/tools/Config.mk
include $(TOPDIR)/arch/arm/src/armv8-m/Toolchain.defs
ifeq ($(CONFIG_ARCH_CHIP_NRF5340_CPUAPP),y)
LDSCRIPT = flash_config_app.ld
LDSCRIPT = flash_app.ld
endif
ifeq ($(CONFIG_ARCH_CHIP_NRF5340_CPUNET),y)
LDSCRIPT = flash_config_net.ld
LDSCRIPT = flash_net.ld
endif
ARCHSCRIPT += $(BOARD_DIR)$(DELIM)scripts$(DELIM)$(LDSCRIPT)

View File

@ -1,5 +1,5 @@
/****************************************************************************
* boards/arm/nrf53/nrf5340-audio-dk/scripts/flash_config_net.ld
* boards/arm/nrf53/nrf5340-audio-dk/scripts/flash_net.ld
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@ -18,10 +18,18 @@
*
****************************************************************************/
#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
datamem (rwx) : ORIGIN = 0x20000000, LENGTH = 512K - RPTUN_SHMEM
}
OUTPUT_ARCH(arm)

View File

@ -1,108 +0,0 @@
/****************************************************************************
* boards/arm/nrf53/nrf5340-audio-dk/scripts/flash_config_net.ld
*
* 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.
*
****************************************************************************/
MEMORY
{
app_progmem (rx) : ORIGIN = 0x00000000, LENGTH = 1024K
app_datamem (rwx) : ORIGIN = 0x20000000, LENGTH = 512K
progmem (rx) : ORIGIN = 0x01000000, LENGTH = 256K
datamem (rwx) : ORIGIN = 0x21000000, LENGTH = 64K
}
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(.);
*(.init_array .init_array.*)
_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
/* 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) }
}

View File

@ -1,5 +1,5 @@
/****************************************************************************
* boards/arm/nrf53/thingy53/scripts/flash_rptun_net.ld
* boards/arm/nrf53/nrf5340-audio-dk/scripts/flash_net.ld
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@ -18,11 +18,18 @@
*
****************************************************************************/
#include <nuttx/config.h>
#ifdef CONFIG_RPTUN
# define RPTUN_SHMEM 0x8000
#else
# define RPTUN_SHMEM 0
#endif
MEMORY
{
app_progmem (rx) : ORIGIN = 0x00000000, LENGTH = 1024K
app_datamem (rwx) : ORIGIN = 0x20000000, LENGTH = 512K-32K
shared (rwx) : ORIGIN = 0x20078000, LENGTH = 32K
app_datamem (rwx) : ORIGIN = 0x20000000, LENGTH = 512K - RPTUN_SHMEM
progmem (rx) : ORIGIN = 0x01000000, LENGTH = 256K
datamem (rwx) : ORIGIN = 0x21000000, LENGTH = 64K
}

View File

@ -23,20 +23,12 @@ include $(TOPDIR)/tools/Config.mk
include $(TOPDIR)/arch/arm/src/armv8-m/Toolchain.defs
ifeq ($(CONFIG_ARCH_CHIP_NRF5340_CPUAPP),y)
ifeq ($(CONFIG_RPTUN),y)
LDSCRIPT = flash_rptun_app.ld
else
LDSCRIPT = flash_app.ld
endif
endif
ifeq ($(CONFIG_ARCH_CHIP_NRF5340_CPUNET),y)
ifeq ($(CONFIG_RPTUN),y)
LDSCRIPT = flash_rptun_net.ld
else
LDSCRIPT = flash_net.ld
endif
endif
ARCHSCRIPT += $(BOARD_DIR)$(DELIM)scripts$(DELIM)$(LDSCRIPT)

View File

@ -18,10 +18,18 @@
*
****************************************************************************/
#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
datamem (rwx) : ORIGIN = 0x20000000, LENGTH = 512K - RPTUN_SHMEM
}
OUTPUT_ARCH(arm)

View File

@ -18,10 +18,18 @@
*
****************************************************************************/
#include <nuttx/config.h>
#ifdef CONFIG_RPTUN
# define RPTUN_SHMEM 0x8000
#else
# define RPTUN_SHMEM 0
#endif
MEMORY
{
app_progmem (rx) : ORIGIN = 0x00000000, LENGTH = 1024K
app_datamem (rwx) : ORIGIN = 0x20000000, LENGTH = 512K
app_datamem (rwx) : ORIGIN = 0x20000000, LENGTH = 512K - RPTUN_SHMEM
progmem (rx) : ORIGIN = 0x01000000, LENGTH = 256K
datamem (rwx) : ORIGIN = 0x21000000, LENGTH = 64K
}

View File

@ -1,114 +0,0 @@
/****************************************************************************
* boards/arm/nrf53/nrf5340-dk/scripts/flash_rptun_app.ld
*
* 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.
*
****************************************************************************/
MEMORY
{
progmem (rx) : ORIGIN = 0x00000000, LENGTH = 1024K
datamem (rwx) : ORIGIN = 0x20000000, LENGTH = 512K-32K
shared (rwx) : ORIGIN = 0x20078000, LENGTH = 32K
}
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(.);
*(.init_array .init_array.*)
_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
/* Shared memory */
.shmem :
{
*(.shmem)
} > shared
/* 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) }
}

View File

@ -1,109 +0,0 @@
/****************************************************************************
* boards/arm/nrf53/nrf5340-dk/scripts/flash_rptun_net.ld
*
* 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.
*
****************************************************************************/
MEMORY
{
app_progmem (rx) : ORIGIN = 0x00000000, LENGTH = 1024K
app_datamem (rwx) : ORIGIN = 0x20000000, LENGTH = 512K-32K
shared (rwx) : ORIGIN = 0x20078000, LENGTH = 32K
progmem (rx) : ORIGIN = 0x01000000, LENGTH = 256K
datamem (rwx) : ORIGIN = 0x21000000, LENGTH = 64K
}
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(.);
*(.init_array .init_array.*)
_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
/* 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) }
}

View File

@ -23,20 +23,12 @@ include $(TOPDIR)/tools/Config.mk
include $(TOPDIR)/arch/arm/src/armv8-m/Toolchain.defs
ifeq ($(CONFIG_ARCH_CHIP_NRF5340_CPUAPP),y)
ifeq ($(CONFIG_RPTUN),y)
LDSCRIPT = flash_rptun_app.ld
else
LDSCRIPT = flash_app.ld
endif
endif
ifeq ($(CONFIG_ARCH_CHIP_NRF5340_CPUNET),y)
ifeq ($(CONFIG_RPTUN),y)
LDSCRIPT = flash_rptun_net.ld
else
LDSCRIPT = flash_net.ld
endif
endif
ARCHSCRIPT += $(BOARD_DIR)$(DELIM)scripts$(DELIM)$(LDSCRIPT)

View File

@ -18,10 +18,18 @@
*
****************************************************************************/
#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
datamem (rwx) : ORIGIN = 0x20000000, LENGTH = 512K - RPTUN_SHMEM
}
OUTPUT_ARCH(arm)

View File

@ -18,10 +18,18 @@
*
****************************************************************************/
#include <nuttx/config.h>
#ifdef CONFIG_RPTUN
# define RPTUN_SHMEM 0x8000
#else
# define RPTUN_SHMEM 0
#endif
MEMORY
{
app_progmem (rx) : ORIGIN = 0x00000000, LENGTH = 1024K
app_datamem (rwx) : ORIGIN = 0x20000000, LENGTH = 512K
app_datamem (rwx) : ORIGIN = 0x20000000, LENGTH = 512K - RPTUN_SHMEM
progmem (rx) : ORIGIN = 0x01000000, LENGTH = 256K
datamem (rwx) : ORIGIN = 0x21000000, LENGTH = 64K
}

View File

@ -1,114 +0,0 @@
/****************************************************************************
* boards/arm/nrf53/thingy53/scripts/flash_rptun_app.ld
*
* 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.
*
****************************************************************************/
MEMORY
{
progmem (rx) : ORIGIN = 0x00000000, LENGTH = 1024K
datamem (rwx) : ORIGIN = 0x20000000, LENGTH = 512K-32K
shared (rwx) : ORIGIN = 0x20078000, LENGTH = 32K
}
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(.);
*(.init_array .init_array.*)
_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
/* Shared memory */
.shmem :
{
*(.shmem)
} > shared
/* 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) }
}