You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mynewt.apache.org by vi...@apache.org on 2017/02/23 22:33:14 UTC
[20/50] incubator-mynewt-core git commit: MYNEWT-545;
switch from using load address to using load region.
MYNEWT-545; switch from using load address to using load region.
Project: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/commit/4f4f6870
Tree: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/tree/4f4f6870
Diff: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/diff/4f4f6870
Branch: refs/heads/sensors_branch
Commit: 4f4f6870154765bea18eb6cf73d97b896bb0f59a
Parents: d3397d7
Author: Marko Kiiskila <ma...@runtime.io>
Authored: Mon Feb 13 17:53:28 2017 -0800
Committer: Marko Kiiskila <ma...@runtime.io>
Committed: Mon Feb 13 17:53:28 2017 -0800
----------------------------------------------------------------------
hw/bsp/arduino_primo_nrf52/split-primo.ld | 4 +-
hw/bsp/bmd200/split-nrf51dk.ld | 4 +-
hw/bsp/bmd300eval/split-bmd300eval.ld | 4 +-
hw/bsp/nrf51dk/split-nrf51dk.ld | 4 +-
hw/bsp/nrf52dk/split-nrf52dk.ld | 4 +-
.../run_from_flash.ld | 204 ------------------
.../run_from_loader.ld | 210 -------------------
.../olimex_stm32-e407_devboard/run_from_sram.ld | 202 ------------------
hw/bsp/rb-nano2/split-rb-nano2.ld | 4 +-
hw/bsp/stm32f4discovery/run_from_flash.ld | 204 ------------------
hw/bsp/stm32f4discovery/run_from_loader.ld | 210 -------------------
hw/bsp/stm32f4discovery/run_from_sram.ld | 202 ------------------
hw/bsp/usbmkw41z/boot-mkw41z512.ld | 4 +-
hw/bsp/usbmkw41z/mkw41z512.ld | 4 +-
hw/mcu/nordic/nrf51xxx/nrf51.ld | 4 +-
hw/mcu/nordic/nrf52xxx/nrf52.ld | 4 +-
hw/mcu/stm/stm32f4xx/stm32f401.ld | 8 +-
hw/mcu/stm/stm32f4xx/stm32f407.ld | 8 +-
18 files changed, 28 insertions(+), 1260 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/4f4f6870/hw/bsp/arduino_primo_nrf52/split-primo.ld
----------------------------------------------------------------------
diff --git a/hw/bsp/arduino_primo_nrf52/split-primo.ld b/hw/bsp/arduino_primo_nrf52/split-primo.ld
index ebfac21..f4ffe5a 100755
--- a/hw/bsp/arduino_primo_nrf52/split-primo.ld
+++ b/hw/bsp/arduino_primo_nrf52/split-primo.ld
@@ -122,7 +122,7 @@ SECTIONS
_loader_ram_end = .;
} > RAM
- .data : AT (__etext)
+ .data :
{
__data_start__ = .;
*(.data*)
@@ -151,7 +151,7 @@ SECTIONS
. = ALIGN(4);
/* All data end */
__data_end__ = .;
- } > RAM
+ } > RAM AT > FLASH
/* Non-zeroed BSS. This section is similar to BSS, with the following two
* caveats:
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/4f4f6870/hw/bsp/bmd200/split-nrf51dk.ld
----------------------------------------------------------------------
diff --git a/hw/bsp/bmd200/split-nrf51dk.ld b/hw/bsp/bmd200/split-nrf51dk.ld
index bd8c2be..55d154e 100644
--- a/hw/bsp/bmd200/split-nrf51dk.ld
+++ b/hw/bsp/bmd200/split-nrf51dk.ld
@@ -116,7 +116,7 @@ SECTIONS
_loader_ram_end = .;
} > RAM
- .data : AT (__etext)
+ .data :
{
__data_start__ = .;
*(.data*)
@@ -146,7 +146,7 @@ SECTIONS
. = ALIGN(4);
/* All data end */
__data_end__ = .;
- } > RAM
+ } > RAM AT > FLASH
.bss :
{
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/4f4f6870/hw/bsp/bmd300eval/split-bmd300eval.ld
----------------------------------------------------------------------
diff --git a/hw/bsp/bmd300eval/split-bmd300eval.ld b/hw/bsp/bmd300eval/split-bmd300eval.ld
index ebfac21..f4ffe5a 100755
--- a/hw/bsp/bmd300eval/split-bmd300eval.ld
+++ b/hw/bsp/bmd300eval/split-bmd300eval.ld
@@ -122,7 +122,7 @@ SECTIONS
_loader_ram_end = .;
} > RAM
- .data : AT (__etext)
+ .data :
{
__data_start__ = .;
*(.data*)
@@ -151,7 +151,7 @@ SECTIONS
. = ALIGN(4);
/* All data end */
__data_end__ = .;
- } > RAM
+ } > RAM AT > FLASH
/* Non-zeroed BSS. This section is similar to BSS, with the following two
* caveats:
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/4f4f6870/hw/bsp/nrf51dk/split-nrf51dk.ld
----------------------------------------------------------------------
diff --git a/hw/bsp/nrf51dk/split-nrf51dk.ld b/hw/bsp/nrf51dk/split-nrf51dk.ld
index bd8c2be..55d154e 100755
--- a/hw/bsp/nrf51dk/split-nrf51dk.ld
+++ b/hw/bsp/nrf51dk/split-nrf51dk.ld
@@ -116,7 +116,7 @@ SECTIONS
_loader_ram_end = .;
} > RAM
- .data : AT (__etext)
+ .data :
{
__data_start__ = .;
*(.data*)
@@ -146,7 +146,7 @@ SECTIONS
. = ALIGN(4);
/* All data end */
__data_end__ = .;
- } > RAM
+ } > RAM AT > FLASH
.bss :
{
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/4f4f6870/hw/bsp/nrf52dk/split-nrf52dk.ld
----------------------------------------------------------------------
diff --git a/hw/bsp/nrf52dk/split-nrf52dk.ld b/hw/bsp/nrf52dk/split-nrf52dk.ld
index ebfac21..f4ffe5a 100755
--- a/hw/bsp/nrf52dk/split-nrf52dk.ld
+++ b/hw/bsp/nrf52dk/split-nrf52dk.ld
@@ -122,7 +122,7 @@ SECTIONS
_loader_ram_end = .;
} > RAM
- .data : AT (__etext)
+ .data :
{
__data_start__ = .;
*(.data*)
@@ -151,7 +151,7 @@ SECTIONS
. = ALIGN(4);
/* All data end */
__data_end__ = .;
- } > RAM
+ } > RAM AT > FLASH
/* Non-zeroed BSS. This section is similar to BSS, with the following two
* caveats:
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/4f4f6870/hw/bsp/olimex_stm32-e407_devboard/run_from_flash.ld
----------------------------------------------------------------------
diff --git a/hw/bsp/olimex_stm32-e407_devboard/run_from_flash.ld b/hw/bsp/olimex_stm32-e407_devboard/run_from_flash.ld
deleted file mode 100644
index caff52b..0000000
--- a/hw/bsp/olimex_stm32-e407_devboard/run_from_flash.ld
+++ /dev/null
@@ -1,204 +0,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.
- */
-
-/* Linker script for STM32F407 when running from flash and not using the bootloader */
-
-/* Linker script to configure memory regions. */
-MEMORY
-{
- FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 1024K
- CCM (rwx) : ORIGIN = 0x10000000, LENGTH = 64K
- RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 0x20000
-}
-
-/* Linker script to place sections and symbol values. Should be used together
- * with other linker script that defines memory regions FLASH and RAM.
- * It references following symbols, which must be defined in code:
- * Reset_Handler : Entry of reset handler
- *
- * It defines following symbols, which code can use without definition:
- * __exidx_start
- * __exidx_end
- * __etext
- * __data_start__
- * __preinit_array_start
- * __preinit_array_end
- * __init_array_start
- * __init_array_end
- * __fini_array_start
- * __fini_array_end
- * __data_end__
- * __bss_start__
- * __bss_end__
- * __end__
- * end
- * __HeapBase
- * __HeapLimit
- * __StackLimit
- * __StackTop
- * __stack
- * __coredata_start__
- * __coredata_end__
- * __corebss_start__
- * __corebss_end__
- * __ecoredata
- * __ecorebs
- */
-ENTRY(Reset_Handler)
-
-SECTIONS
-{
- .text :
- {
- __isr_vector_start = .;
- KEEP(*(.isr_vector))
- __isr_vector_end = .;
- *(.text*)
-
- KEEP(*(.init))
- KEEP(*(.fini))
-
- /* .ctors */
- *crtbegin.o(.ctors)
- *crtbegin?.o(.ctors)
- *(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors)
- *(SORT(.ctors.*))
- *(.ctors)
-
- /* .dtors */
- *crtbegin.o(.dtors)
- *crtbegin?.o(.dtors)
- *(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors)
- *(SORT(.dtors.*))
- *(.dtors)
-
- *(.rodata*)
-
- KEEP(*(.eh_frame*))
- } > FLASH
-
- .ARM.extab :
- {
- *(.ARM.extab* .gnu.linkonce.armextab.*)
- } > FLASH
-
- __exidx_start = .;
- .ARM.exidx :
- {
- *(.ARM.exidx* .gnu.linkonce.armexidx.*)
- } > FLASH
-
- __exidx_end = .;
-
- __etext = .;
-
- .vector_relocation :
- {
- . = ALIGN(4);
- __vector_tbl_reloc__ = .;
- . = . + (__isr_vector_end - __isr_vector_start);
- . = ALIGN(4);
- } > RAM
-
- .coredata : AT (__etext)
- {
- __coredata_start__ = .;
- *(.data.core)
- . = ALIGN(4);
- __coredata_end__ = .;
- } > CCM
-
- __ecoredata = __etext + SIZEOF(.coredata);
-
- .data : AT (__ecoredata)
- {
- __data_start__ = .;
- *(vtable)
- *(.data*)
-
- /* preinit data */
- PROVIDE_HIDDEN (__preinit_array_start = .);
- KEEP(*(.preinit_array))
- PROVIDE_HIDDEN (__preinit_array_end = .);
-
- . = ALIGN(4);
- /* init data */
- PROVIDE_HIDDEN (__init_array_start = .);
- KEEP(*(SORT(.init_array.*)))
- KEEP(*(.init_array))
- PROVIDE_HIDDEN (__init_array_end = .);
-
-
- . = ALIGN(4);
- /* finit data */
- PROVIDE_HIDDEN (__fini_array_start = .);
- KEEP(*(SORT(.fini_array.*)))
- KEEP(*(.fini_array))
- PROVIDE_HIDDEN (__fini_array_end = .);
-
- KEEP(*(.jcr*))
- . = ALIGN(4);
- /* All data end */
- __data_end__ = .;
-
- } > RAM
-
- .corebss (NOLOAD):
- {
- . = ALIGN(4);
- __corebss_start__ = .;
- *(.bss.core)
- . = ALIGN(4);
- __corebss_end__ = .;
- *(.corebss*)
- *(.bss.core.nz)
- . = ALIGN(4);
- __ecorebss = .;
- } > CCM
-
- .bss :
- {
- . = ALIGN(4);
- __bss_start__ = .;
- *(.bss*)
- *(COMMON)
- . = ALIGN(4);
- __bss_end__ = .;
- } > RAM
-
- __HeapBase = .;
- __HeapLimit = ORIGIN(RAM) + LENGTH(RAM);
-
- /* .stack_dummy section doesn't contains any symbols. It is only
- * used for linker to calculate size of stack sections, and assign
- * values to stack symbols later */
- .stack_dummy (COPY):
- {
- *(.stack*)
- } > CCM
-
- /* Set stack top to end of CCM; stack limit is bottom of stack */
- __StackTop = ORIGIN(CCM) + LENGTH(CCM);
- __StackLimit = __StackTop - SIZEOF(.stack_dummy);
- PROVIDE(__stack = __StackTop);
-
- /* Check for CCM overflow */
- ASSERT(__StackLimit >= __ecorebss, "CCM overflow!")
-}
-
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/4f4f6870/hw/bsp/olimex_stm32-e407_devboard/run_from_loader.ld
----------------------------------------------------------------------
diff --git a/hw/bsp/olimex_stm32-e407_devboard/run_from_loader.ld b/hw/bsp/olimex_stm32-e407_devboard/run_from_loader.ld
deleted file mode 100755
index e3061dc..0000000
--- a/hw/bsp/olimex_stm32-e407_devboard/run_from_loader.ld
+++ /dev/null
@@ -1,210 +0,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.
- */
-
-/* Linker script for STM32F407 when running from flash and using the bootloader */
-
-/* Linker script to configure memory regions. */
-MEMORY
-{
- FLASH (rx) : ORIGIN = 0x08020000, LENGTH = 384K /* First image slot. */
- CCM (rwx) : ORIGIN = 0x10000000, LENGTH = 64K
- RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 128K
-}
-
-/* Linker script to place sections and symbol values. Should be used together
- * with other linker script that defines memory regions FLASH and RAM.
- * It references following symbols, which must be defined in code:
- * Reset_Handler : Entry of reset handler
- *
- * It defines following symbols, which code can use without definition:
- * __exidx_start
- * __exidx_end
- * __etext
- * __data_start__
- * __preinit_array_start
- * __preinit_array_end
- * __init_array_start
- * __init_array_end
- * __fini_array_start
- * __fini_array_end
- * __data_end__
- * __bss_start__
- * __bss_end__
- * __end__
- * end
- * __HeapBase
- * __HeapLimit
- * __StackLimit
- * __StackTop
- * __stack
- * __coredata_start__
- * __coredata_end__
- * __corebss_start__
- * __corebss_end__
- * __ecoredata
- * __ecorebss
- */
-ENTRY(Reset_Handler)
-
-SECTIONS
-{
- /* Reserve space at the start of the image for the header. */
- .imghdr (NOLOAD):
- {
- . = . + 0x20;
- } > FLASH
-
- .text :
- {
- __isr_vector_start = .;
- KEEP(*(.isr_vector))
- __isr_vector_end = .;
- *(.text*)
-
- KEEP(*(.init))
- KEEP(*(.fini))
-
- /* .ctors */
- *crtbegin.o(.ctors)
- *crtbegin?.o(.ctors)
- *(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors)
- *(SORT(.ctors.*))
- *(.ctors)
-
- /* .dtors */
- *crtbegin.o(.dtors)
- *crtbegin?.o(.dtors)
- *(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors)
- *(SORT(.dtors.*))
- *(.dtors)
-
- *(.rodata*)
-
- KEEP(*(.eh_frame*))
- } > FLASH
-
- .ARM.extab :
- {
- *(.ARM.extab* .gnu.linkonce.armextab.*)
- } > FLASH
-
- __exidx_start = .;
- .ARM.exidx :
- {
- *(.ARM.exidx* .gnu.linkonce.armexidx.*)
- } > FLASH
-
- __exidx_end = .;
-
- __etext = .;
-
- .vector_relocation :
- {
- . = ALIGN(4);
- __vector_tbl_reloc__ = .;
- . = . + (__isr_vector_end - __isr_vector_start);
- . = ALIGN(4);
- } > RAM
-
- .coredata : AT (__etext)
- {
- __coredata_start__ = .;
- *(.data.core)
- . = ALIGN(4);
- __coredata_end__ = .;
- } > CCM
-
- __ecoredata = __etext + SIZEOF(.coredata);
-
- .data : AT (__ecoredata)
- {
- __data_start__ = .;
- *(vtable)
- *(.data*)
-
- /* preinit data */
- PROVIDE_HIDDEN (__preinit_array_start = .);
- KEEP(*(.preinit_array))
- PROVIDE_HIDDEN (__preinit_array_end = .);
-
- . = ALIGN(4);
- /* init data */
- PROVIDE_HIDDEN (__init_array_start = .);
- KEEP(*(SORT(.init_array.*)))
- KEEP(*(.init_array))
- PROVIDE_HIDDEN (__init_array_end = .);
-
-
- . = ALIGN(4);
- /* finit data */
- PROVIDE_HIDDEN (__fini_array_start = .);
- KEEP(*(SORT(.fini_array.*)))
- KEEP(*(.fini_array))
- PROVIDE_HIDDEN (__fini_array_end = .);
-
- KEEP(*(.jcr*))
- . = ALIGN(4);
- /* All data end */
- __data_end__ = .;
-
- } > RAM
-
- .corebss (NOLOAD):
- {
- . = ALIGN(4);
- __corebss_start__ = .;
- *(.bss.core)
- . = ALIGN(4);
- __corebss_end__ = .;
- *(.corebss*)
- *(.bss.core.nz)
- . = ALIGN(4);
- __ecorebss = .;
- } > CCM
-
- .bss :
- {
- . = ALIGN(4);
- __bss_start__ = .;
- *(.bss*)
- *(COMMON)
- . = ALIGN(4);
- __bss_end__ = .;
- } > RAM
-
- __HeapBase = .;
- __HeapLimit = ORIGIN(RAM) + LENGTH(RAM);
-
- /* .stack_dummy section doesn't contains any symbols. It is only
- * used for linker to calculate size of stack sections, and assign
- * values to stack symbols later */
- .stack_dummy (COPY):
- {
- *(.stack*)
- } > CCM
-
- /* Set stack top to end of CCM; stack limit is bottom of stack */
- __StackTop = ORIGIN(CCM) + LENGTH(CCM);
- __StackLimit = __StackTop - SIZEOF(.stack_dummy);
- PROVIDE(__stack = __StackTop);
-
- /* Check for CCM overflow */
- ASSERT(__StackLimit >= __ecorebss, "CCM overflow!")
-}
-
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/4f4f6870/hw/bsp/olimex_stm32-e407_devboard/run_from_sram.ld
----------------------------------------------------------------------
diff --git a/hw/bsp/olimex_stm32-e407_devboard/run_from_sram.ld b/hw/bsp/olimex_stm32-e407_devboard/run_from_sram.ld
deleted file mode 100755
index 31e4386..0000000
--- a/hw/bsp/olimex_stm32-e407_devboard/run_from_sram.ld
+++ /dev/null
@@ -1,202 +0,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.
- */
-
-/* Linker script for STM32F407 when running code from SRAM */
-
-/* Linker script to configure memory regions. */
-MEMORY
-{
- FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 1024K
- CCM (rwx) : ORIGIN = 0x10000000, LENGTH = 64K
- RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 0x20000
-}
-
-/* Linker script to place sections and symbol values. Should be used together
- * with other linker script that defines memory regions FLASH and RAM.
- * It references following symbols, which must be defined in code:
- * Reset_Handler : Entry of reset handler
- *
- * It defines following symbols, which code can use without definition:
- * __exidx_start
- * __exidx_end
- * __etext
- * __data_start__
- * __preinit_array_start
- * __preinit_array_end
- * __init_array_start
- * __init_array_end
- * __fini_array_start
- * __fini_array_end
- * __data_end__
- * __bss_start__
- * __bss_end__
- * __end__
- * end
- * __HeapBase
- * __HeapLimit
- * __StackLimit
- * __StackTop
- * __stack
- * __coredata_start__
- * __coredata_end__
- * __corebss_start__
- * __corebss_end__
- * __ecoredata
- * __ecorebss
- */
-ENTRY(Reset_Handler)
-
-SECTIONS
-{
- .text :
- {
- __vector_tbl_reloc__ = .;
- KEEP(*(.isr_vector))
- *(.text*)
-
- KEEP(*(.init))
- KEEP(*(.fini))
-
- /* .ctors */
- *crtbegin.o(.ctors)
- *crtbegin?.o(.ctors)
- *(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors)
- *(SORT(.ctors.*))
- *(.ctors)
-
- /* .dtors */
- *crtbegin.o(.dtors)
- *crtbegin?.o(.dtors)
- *(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors)
- *(SORT(.dtors.*))
- *(.dtors)
-
- *(.rodata*)
-
- KEEP(*(.eh_frame*))
- } > RAM
-
- .ARM.extab :
- {
- *(.ARM.extab* .gnu.linkonce.armextab.*)
- } > RAM
-
- __exidx_start = .;
- .ARM.exidx :
- {
- *(.ARM.exidx* .gnu.linkonce.armexidx.*)
- } > RAM
-
- __exidx_end = .;
-
- . = ALIGN(8);
- __etext = .;
-
- .coredata : AT (__etext)
- {
- __coredata_start__ = .;
- *(.data.core)
- . = ALIGN(8);
- __coredata_end__ = .;
- } > CCM
-
- __ecoredata = __etext + SIZEOF(.coredata);
-
- /* This section is here so that the start of .data has the same VMA and LMA */
- .ram_coredata (NOLOAD):
- {
- . = . + SIZEOF(.coredata);
- } > RAM
-
- .data : AT (__ecoredata)
- {
- __data_start__ = .;
- *(vtable)
- *(.data*)
-
- /* preinit data */
- PROVIDE_HIDDEN (__preinit_array_start = .);
- KEEP(*(.preinit_array))
- PROVIDE_HIDDEN (__preinit_array_end = .);
-
- . = ALIGN(4);
- /* init data */
- PROVIDE_HIDDEN (__init_array_start = .);
- KEEP(*(SORT(.init_array.*)))
- KEEP(*(.init_array))
- PROVIDE_HIDDEN (__init_array_end = .);
-
-
- . = ALIGN(4);
- /* finit data */
- PROVIDE_HIDDEN (__fini_array_start = .);
- KEEP(*(SORT(.fini_array.*)))
- KEEP(*(.fini_array))
- PROVIDE_HIDDEN (__fini_array_end = .);
-
- KEEP(*(.jcr*))
- . = ALIGN(4);
- /* All data end */
- __data_end__ = .;
-
- } > RAM
-
- .corebss (NOLOAD):
- {
- . = ALIGN(4);
- __corebss_start__ = .;
- *(.bss.core)
- . = ALIGN(4);
- __corebss_end__ = .;
- *(.corebss*)
- *(.bss.core.nz)
- . = ALIGN(4);
- __ecorebss = .;
- } > CCM
-
- .bss :
- {
- . = ALIGN(4);
- __bss_start__ = .;
- *(.bss*)
- *(COMMON)
- . = ALIGN(4);
- __bss_end__ = .;
- } > RAM
-
- __HeapBase = .;
- __HeapLimit = ORIGIN(RAM) + LENGTH(RAM);
-
- /* .stack_dummy section doesn't contains any symbols. It is only
- * used for linker to calculate size of stack sections, and assign
- * values to stack symbols later */
- .stack_dummy (COPY):
- {
- *(.stack*)
- } > CCM
-
- /* Set stack top to end of CCM; stack limit is bottom of stack */
- __StackTop = ORIGIN(CCM) + LENGTH(CCM);
- __StackLimit = __StackTop - SIZEOF(.stack_dummy);
- PROVIDE(__stack = __StackTop);
-
- /* Check for CCM overflow */
- ASSERT(__StackLimit >= __ecorebss, "CCM overflow!")
-}
-
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/4f4f6870/hw/bsp/rb-nano2/split-rb-nano2.ld
----------------------------------------------------------------------
diff --git a/hw/bsp/rb-nano2/split-rb-nano2.ld b/hw/bsp/rb-nano2/split-rb-nano2.ld
index ebfac21..f4ffe5a 100755
--- a/hw/bsp/rb-nano2/split-rb-nano2.ld
+++ b/hw/bsp/rb-nano2/split-rb-nano2.ld
@@ -122,7 +122,7 @@ SECTIONS
_loader_ram_end = .;
} > RAM
- .data : AT (__etext)
+ .data :
{
__data_start__ = .;
*(.data*)
@@ -151,7 +151,7 @@ SECTIONS
. = ALIGN(4);
/* All data end */
__data_end__ = .;
- } > RAM
+ } > RAM AT > FLASH
/* Non-zeroed BSS. This section is similar to BSS, with the following two
* caveats:
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/4f4f6870/hw/bsp/stm32f4discovery/run_from_flash.ld
----------------------------------------------------------------------
diff --git a/hw/bsp/stm32f4discovery/run_from_flash.ld b/hw/bsp/stm32f4discovery/run_from_flash.ld
deleted file mode 100644
index caff52b..0000000
--- a/hw/bsp/stm32f4discovery/run_from_flash.ld
+++ /dev/null
@@ -1,204 +0,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.
- */
-
-/* Linker script for STM32F407 when running from flash and not using the bootloader */
-
-/* Linker script to configure memory regions. */
-MEMORY
-{
- FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 1024K
- CCM (rwx) : ORIGIN = 0x10000000, LENGTH = 64K
- RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 0x20000
-}
-
-/* Linker script to place sections and symbol values. Should be used together
- * with other linker script that defines memory regions FLASH and RAM.
- * It references following symbols, which must be defined in code:
- * Reset_Handler : Entry of reset handler
- *
- * It defines following symbols, which code can use without definition:
- * __exidx_start
- * __exidx_end
- * __etext
- * __data_start__
- * __preinit_array_start
- * __preinit_array_end
- * __init_array_start
- * __init_array_end
- * __fini_array_start
- * __fini_array_end
- * __data_end__
- * __bss_start__
- * __bss_end__
- * __end__
- * end
- * __HeapBase
- * __HeapLimit
- * __StackLimit
- * __StackTop
- * __stack
- * __coredata_start__
- * __coredata_end__
- * __corebss_start__
- * __corebss_end__
- * __ecoredata
- * __ecorebs
- */
-ENTRY(Reset_Handler)
-
-SECTIONS
-{
- .text :
- {
- __isr_vector_start = .;
- KEEP(*(.isr_vector))
- __isr_vector_end = .;
- *(.text*)
-
- KEEP(*(.init))
- KEEP(*(.fini))
-
- /* .ctors */
- *crtbegin.o(.ctors)
- *crtbegin?.o(.ctors)
- *(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors)
- *(SORT(.ctors.*))
- *(.ctors)
-
- /* .dtors */
- *crtbegin.o(.dtors)
- *crtbegin?.o(.dtors)
- *(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors)
- *(SORT(.dtors.*))
- *(.dtors)
-
- *(.rodata*)
-
- KEEP(*(.eh_frame*))
- } > FLASH
-
- .ARM.extab :
- {
- *(.ARM.extab* .gnu.linkonce.armextab.*)
- } > FLASH
-
- __exidx_start = .;
- .ARM.exidx :
- {
- *(.ARM.exidx* .gnu.linkonce.armexidx.*)
- } > FLASH
-
- __exidx_end = .;
-
- __etext = .;
-
- .vector_relocation :
- {
- . = ALIGN(4);
- __vector_tbl_reloc__ = .;
- . = . + (__isr_vector_end - __isr_vector_start);
- . = ALIGN(4);
- } > RAM
-
- .coredata : AT (__etext)
- {
- __coredata_start__ = .;
- *(.data.core)
- . = ALIGN(4);
- __coredata_end__ = .;
- } > CCM
-
- __ecoredata = __etext + SIZEOF(.coredata);
-
- .data : AT (__ecoredata)
- {
- __data_start__ = .;
- *(vtable)
- *(.data*)
-
- /* preinit data */
- PROVIDE_HIDDEN (__preinit_array_start = .);
- KEEP(*(.preinit_array))
- PROVIDE_HIDDEN (__preinit_array_end = .);
-
- . = ALIGN(4);
- /* init data */
- PROVIDE_HIDDEN (__init_array_start = .);
- KEEP(*(SORT(.init_array.*)))
- KEEP(*(.init_array))
- PROVIDE_HIDDEN (__init_array_end = .);
-
-
- . = ALIGN(4);
- /* finit data */
- PROVIDE_HIDDEN (__fini_array_start = .);
- KEEP(*(SORT(.fini_array.*)))
- KEEP(*(.fini_array))
- PROVIDE_HIDDEN (__fini_array_end = .);
-
- KEEP(*(.jcr*))
- . = ALIGN(4);
- /* All data end */
- __data_end__ = .;
-
- } > RAM
-
- .corebss (NOLOAD):
- {
- . = ALIGN(4);
- __corebss_start__ = .;
- *(.bss.core)
- . = ALIGN(4);
- __corebss_end__ = .;
- *(.corebss*)
- *(.bss.core.nz)
- . = ALIGN(4);
- __ecorebss = .;
- } > CCM
-
- .bss :
- {
- . = ALIGN(4);
- __bss_start__ = .;
- *(.bss*)
- *(COMMON)
- . = ALIGN(4);
- __bss_end__ = .;
- } > RAM
-
- __HeapBase = .;
- __HeapLimit = ORIGIN(RAM) + LENGTH(RAM);
-
- /* .stack_dummy section doesn't contains any symbols. It is only
- * used for linker to calculate size of stack sections, and assign
- * values to stack symbols later */
- .stack_dummy (COPY):
- {
- *(.stack*)
- } > CCM
-
- /* Set stack top to end of CCM; stack limit is bottom of stack */
- __StackTop = ORIGIN(CCM) + LENGTH(CCM);
- __StackLimit = __StackTop - SIZEOF(.stack_dummy);
- PROVIDE(__stack = __StackTop);
-
- /* Check for CCM overflow */
- ASSERT(__StackLimit >= __ecorebss, "CCM overflow!")
-}
-
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/4f4f6870/hw/bsp/stm32f4discovery/run_from_loader.ld
----------------------------------------------------------------------
diff --git a/hw/bsp/stm32f4discovery/run_from_loader.ld b/hw/bsp/stm32f4discovery/run_from_loader.ld
deleted file mode 100644
index e3061dc..0000000
--- a/hw/bsp/stm32f4discovery/run_from_loader.ld
+++ /dev/null
@@ -1,210 +0,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.
- */
-
-/* Linker script for STM32F407 when running from flash and using the bootloader */
-
-/* Linker script to configure memory regions. */
-MEMORY
-{
- FLASH (rx) : ORIGIN = 0x08020000, LENGTH = 384K /* First image slot. */
- CCM (rwx) : ORIGIN = 0x10000000, LENGTH = 64K
- RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 128K
-}
-
-/* Linker script to place sections and symbol values. Should be used together
- * with other linker script that defines memory regions FLASH and RAM.
- * It references following symbols, which must be defined in code:
- * Reset_Handler : Entry of reset handler
- *
- * It defines following symbols, which code can use without definition:
- * __exidx_start
- * __exidx_end
- * __etext
- * __data_start__
- * __preinit_array_start
- * __preinit_array_end
- * __init_array_start
- * __init_array_end
- * __fini_array_start
- * __fini_array_end
- * __data_end__
- * __bss_start__
- * __bss_end__
- * __end__
- * end
- * __HeapBase
- * __HeapLimit
- * __StackLimit
- * __StackTop
- * __stack
- * __coredata_start__
- * __coredata_end__
- * __corebss_start__
- * __corebss_end__
- * __ecoredata
- * __ecorebss
- */
-ENTRY(Reset_Handler)
-
-SECTIONS
-{
- /* Reserve space at the start of the image for the header. */
- .imghdr (NOLOAD):
- {
- . = . + 0x20;
- } > FLASH
-
- .text :
- {
- __isr_vector_start = .;
- KEEP(*(.isr_vector))
- __isr_vector_end = .;
- *(.text*)
-
- KEEP(*(.init))
- KEEP(*(.fini))
-
- /* .ctors */
- *crtbegin.o(.ctors)
- *crtbegin?.o(.ctors)
- *(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors)
- *(SORT(.ctors.*))
- *(.ctors)
-
- /* .dtors */
- *crtbegin.o(.dtors)
- *crtbegin?.o(.dtors)
- *(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors)
- *(SORT(.dtors.*))
- *(.dtors)
-
- *(.rodata*)
-
- KEEP(*(.eh_frame*))
- } > FLASH
-
- .ARM.extab :
- {
- *(.ARM.extab* .gnu.linkonce.armextab.*)
- } > FLASH
-
- __exidx_start = .;
- .ARM.exidx :
- {
- *(.ARM.exidx* .gnu.linkonce.armexidx.*)
- } > FLASH
-
- __exidx_end = .;
-
- __etext = .;
-
- .vector_relocation :
- {
- . = ALIGN(4);
- __vector_tbl_reloc__ = .;
- . = . + (__isr_vector_end - __isr_vector_start);
- . = ALIGN(4);
- } > RAM
-
- .coredata : AT (__etext)
- {
- __coredata_start__ = .;
- *(.data.core)
- . = ALIGN(4);
- __coredata_end__ = .;
- } > CCM
-
- __ecoredata = __etext + SIZEOF(.coredata);
-
- .data : AT (__ecoredata)
- {
- __data_start__ = .;
- *(vtable)
- *(.data*)
-
- /* preinit data */
- PROVIDE_HIDDEN (__preinit_array_start = .);
- KEEP(*(.preinit_array))
- PROVIDE_HIDDEN (__preinit_array_end = .);
-
- . = ALIGN(4);
- /* init data */
- PROVIDE_HIDDEN (__init_array_start = .);
- KEEP(*(SORT(.init_array.*)))
- KEEP(*(.init_array))
- PROVIDE_HIDDEN (__init_array_end = .);
-
-
- . = ALIGN(4);
- /* finit data */
- PROVIDE_HIDDEN (__fini_array_start = .);
- KEEP(*(SORT(.fini_array.*)))
- KEEP(*(.fini_array))
- PROVIDE_HIDDEN (__fini_array_end = .);
-
- KEEP(*(.jcr*))
- . = ALIGN(4);
- /* All data end */
- __data_end__ = .;
-
- } > RAM
-
- .corebss (NOLOAD):
- {
- . = ALIGN(4);
- __corebss_start__ = .;
- *(.bss.core)
- . = ALIGN(4);
- __corebss_end__ = .;
- *(.corebss*)
- *(.bss.core.nz)
- . = ALIGN(4);
- __ecorebss = .;
- } > CCM
-
- .bss :
- {
- . = ALIGN(4);
- __bss_start__ = .;
- *(.bss*)
- *(COMMON)
- . = ALIGN(4);
- __bss_end__ = .;
- } > RAM
-
- __HeapBase = .;
- __HeapLimit = ORIGIN(RAM) + LENGTH(RAM);
-
- /* .stack_dummy section doesn't contains any symbols. It is only
- * used for linker to calculate size of stack sections, and assign
- * values to stack symbols later */
- .stack_dummy (COPY):
- {
- *(.stack*)
- } > CCM
-
- /* Set stack top to end of CCM; stack limit is bottom of stack */
- __StackTop = ORIGIN(CCM) + LENGTH(CCM);
- __StackLimit = __StackTop - SIZEOF(.stack_dummy);
- PROVIDE(__stack = __StackTop);
-
- /* Check for CCM overflow */
- ASSERT(__StackLimit >= __ecorebss, "CCM overflow!")
-}
-
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/4f4f6870/hw/bsp/stm32f4discovery/run_from_sram.ld
----------------------------------------------------------------------
diff --git a/hw/bsp/stm32f4discovery/run_from_sram.ld b/hw/bsp/stm32f4discovery/run_from_sram.ld
deleted file mode 100644
index 31e4386..0000000
--- a/hw/bsp/stm32f4discovery/run_from_sram.ld
+++ /dev/null
@@ -1,202 +0,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.
- */
-
-/* Linker script for STM32F407 when running code from SRAM */
-
-/* Linker script to configure memory regions. */
-MEMORY
-{
- FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 1024K
- CCM (rwx) : ORIGIN = 0x10000000, LENGTH = 64K
- RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 0x20000
-}
-
-/* Linker script to place sections and symbol values. Should be used together
- * with other linker script that defines memory regions FLASH and RAM.
- * It references following symbols, which must be defined in code:
- * Reset_Handler : Entry of reset handler
- *
- * It defines following symbols, which code can use without definition:
- * __exidx_start
- * __exidx_end
- * __etext
- * __data_start__
- * __preinit_array_start
- * __preinit_array_end
- * __init_array_start
- * __init_array_end
- * __fini_array_start
- * __fini_array_end
- * __data_end__
- * __bss_start__
- * __bss_end__
- * __end__
- * end
- * __HeapBase
- * __HeapLimit
- * __StackLimit
- * __StackTop
- * __stack
- * __coredata_start__
- * __coredata_end__
- * __corebss_start__
- * __corebss_end__
- * __ecoredata
- * __ecorebss
- */
-ENTRY(Reset_Handler)
-
-SECTIONS
-{
- .text :
- {
- __vector_tbl_reloc__ = .;
- KEEP(*(.isr_vector))
- *(.text*)
-
- KEEP(*(.init))
- KEEP(*(.fini))
-
- /* .ctors */
- *crtbegin.o(.ctors)
- *crtbegin?.o(.ctors)
- *(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors)
- *(SORT(.ctors.*))
- *(.ctors)
-
- /* .dtors */
- *crtbegin.o(.dtors)
- *crtbegin?.o(.dtors)
- *(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors)
- *(SORT(.dtors.*))
- *(.dtors)
-
- *(.rodata*)
-
- KEEP(*(.eh_frame*))
- } > RAM
-
- .ARM.extab :
- {
- *(.ARM.extab* .gnu.linkonce.armextab.*)
- } > RAM
-
- __exidx_start = .;
- .ARM.exidx :
- {
- *(.ARM.exidx* .gnu.linkonce.armexidx.*)
- } > RAM
-
- __exidx_end = .;
-
- . = ALIGN(8);
- __etext = .;
-
- .coredata : AT (__etext)
- {
- __coredata_start__ = .;
- *(.data.core)
- . = ALIGN(8);
- __coredata_end__ = .;
- } > CCM
-
- __ecoredata = __etext + SIZEOF(.coredata);
-
- /* This section is here so that the start of .data has the same VMA and LMA */
- .ram_coredata (NOLOAD):
- {
- . = . + SIZEOF(.coredata);
- } > RAM
-
- .data : AT (__ecoredata)
- {
- __data_start__ = .;
- *(vtable)
- *(.data*)
-
- /* preinit data */
- PROVIDE_HIDDEN (__preinit_array_start = .);
- KEEP(*(.preinit_array))
- PROVIDE_HIDDEN (__preinit_array_end = .);
-
- . = ALIGN(4);
- /* init data */
- PROVIDE_HIDDEN (__init_array_start = .);
- KEEP(*(SORT(.init_array.*)))
- KEEP(*(.init_array))
- PROVIDE_HIDDEN (__init_array_end = .);
-
-
- . = ALIGN(4);
- /* finit data */
- PROVIDE_HIDDEN (__fini_array_start = .);
- KEEP(*(SORT(.fini_array.*)))
- KEEP(*(.fini_array))
- PROVIDE_HIDDEN (__fini_array_end = .);
-
- KEEP(*(.jcr*))
- . = ALIGN(4);
- /* All data end */
- __data_end__ = .;
-
- } > RAM
-
- .corebss (NOLOAD):
- {
- . = ALIGN(4);
- __corebss_start__ = .;
- *(.bss.core)
- . = ALIGN(4);
- __corebss_end__ = .;
- *(.corebss*)
- *(.bss.core.nz)
- . = ALIGN(4);
- __ecorebss = .;
- } > CCM
-
- .bss :
- {
- . = ALIGN(4);
- __bss_start__ = .;
- *(.bss*)
- *(COMMON)
- . = ALIGN(4);
- __bss_end__ = .;
- } > RAM
-
- __HeapBase = .;
- __HeapLimit = ORIGIN(RAM) + LENGTH(RAM);
-
- /* .stack_dummy section doesn't contains any symbols. It is only
- * used for linker to calculate size of stack sections, and assign
- * values to stack symbols later */
- .stack_dummy (COPY):
- {
- *(.stack*)
- } > CCM
-
- /* Set stack top to end of CCM; stack limit is bottom of stack */
- __StackTop = ORIGIN(CCM) + LENGTH(CCM);
- __StackLimit = __StackTop - SIZEOF(.stack_dummy);
- PROVIDE(__stack = __StackTop);
-
- /* Check for CCM overflow */
- ASSERT(__StackLimit >= __ecorebss, "CCM overflow!")
-}
-
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/4f4f6870/hw/bsp/usbmkw41z/boot-mkw41z512.ld
----------------------------------------------------------------------
diff --git a/hw/bsp/usbmkw41z/boot-mkw41z512.ld b/hw/bsp/usbmkw41z/boot-mkw41z512.ld
index 1f74b3d..94d25e7 100644
--- a/hw/bsp/usbmkw41z/boot-mkw41z512.ld
+++ b/hw/bsp/usbmkw41z/boot-mkw41z512.ld
@@ -126,7 +126,7 @@ SECTIONS
. = ALIGN(4);
} > RAM
- .data : AT (__etext)
+ .data :
{
__data_start__ = .;
*(vtable)
@@ -157,7 +157,7 @@ SECTIONS
. = ALIGN(4);
/* All data end */
__data_end__ = .;
- } > RAM
+ } > RAM AT > FLASH
.bss :
{
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/4f4f6870/hw/bsp/usbmkw41z/mkw41z512.ld
----------------------------------------------------------------------
diff --git a/hw/bsp/usbmkw41z/mkw41z512.ld b/hw/bsp/usbmkw41z/mkw41z512.ld
index b6f30b8..f0e63b4 100644
--- a/hw/bsp/usbmkw41z/mkw41z512.ld
+++ b/hw/bsp/usbmkw41z/mkw41z512.ld
@@ -116,7 +116,7 @@ SECTIONS
. = ALIGN(4);
} > RAM
- .data : AT (__etext)
+ .data :
{
__data_start__ = .;
*(vtable)
@@ -147,7 +147,7 @@ SECTIONS
. = ALIGN(4);
/* All data end */
__data_end__ = .;
- } > RAM
+ } > RAM AT > FLASH
.bss :
{
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/4f4f6870/hw/mcu/nordic/nrf51xxx/nrf51.ld
----------------------------------------------------------------------
diff --git a/hw/mcu/nordic/nrf51xxx/nrf51.ld b/hw/mcu/nordic/nrf51xxx/nrf51.ld
index 820510f..415ca92 100755
--- a/hw/mcu/nordic/nrf51xxx/nrf51.ld
+++ b/hw/mcu/nordic/nrf51xxx/nrf51.ld
@@ -109,7 +109,7 @@ SECTIONS
. = ALIGN(4);
} > RAM
- .data : AT (__etext)
+ .data :
{
__data_start__ = .;
*(vtable)
@@ -140,7 +140,7 @@ SECTIONS
. = ALIGN(4);
/* All data end */
__data_end__ = .;
- } > RAM
+ } > RAM AT > FLASH
.bss :
{
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/4f4f6870/hw/mcu/nordic/nrf52xxx/nrf52.ld
----------------------------------------------------------------------
diff --git a/hw/mcu/nordic/nrf52xxx/nrf52.ld b/hw/mcu/nordic/nrf52xxx/nrf52.ld
index fda1a8e..d60421f 100755
--- a/hw/mcu/nordic/nrf52xxx/nrf52.ld
+++ b/hw/mcu/nordic/nrf52xxx/nrf52.ld
@@ -108,7 +108,7 @@ SECTIONS
. = ALIGN(4);
} > RAM
- .data : AT (__etext)
+ .data :
{
__data_start__ = .;
*(vtable)
@@ -139,7 +139,7 @@ SECTIONS
. = ALIGN(4);
/* All data end */
__data_end__ = .;
- } > RAM
+ } > RAM AT > FLASH
/* Non-zeroed BSS. This section is similar to BSS, with the following two
* caveats:
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/4f4f6870/hw/mcu/stm/stm32f4xx/stm32f401.ld
----------------------------------------------------------------------
diff --git a/hw/mcu/stm/stm32f4xx/stm32f401.ld b/hw/mcu/stm/stm32f4xx/stm32f401.ld
index 3533cfb..f01557e 100644
--- a/hw/mcu/stm/stm32f4xx/stm32f401.ld
+++ b/hw/mcu/stm/stm32f4xx/stm32f401.ld
@@ -112,17 +112,17 @@ SECTIONS
. = ALIGN(4);
} > RAM
- .coredata : AT (__etext)
+ .coredata :
{
__coredata_start__ = .;
*(.data.core)
. = ALIGN(4);
__coredata_end__ = .;
- } > RAM
+ } > RAM AT > FLASH
__ecoredata = __etext + SIZEOF(.coredata);
- .data : AT (__ecoredata)
+ .data :
{
__data_start__ = .;
*(vtable)
@@ -153,7 +153,7 @@ SECTIONS
/* All data end */
__data_end__ = .;
- } > RAM
+ } > RAM AT > FLASH
.corebss (NOLOAD):
{
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/4f4f6870/hw/mcu/stm/stm32f4xx/stm32f407.ld
----------------------------------------------------------------------
diff --git a/hw/mcu/stm/stm32f4xx/stm32f407.ld b/hw/mcu/stm/stm32f4xx/stm32f407.ld
index 1d06f76..7d2887a 100644
--- a/hw/mcu/stm/stm32f4xx/stm32f407.ld
+++ b/hw/mcu/stm/stm32f4xx/stm32f407.ld
@@ -112,17 +112,17 @@ SECTIONS
. = ALIGN(4);
} > RAM
- .coredata : AT (__etext)
+ .coredata :
{
__coredata_start__ = .;
*(.data.core)
. = ALIGN(4);
__coredata_end__ = .;
- } > CCM
+ } > CCM AT > FLASH
__ecoredata = __etext + SIZEOF(.coredata);
- .data : AT (__ecoredata)
+ .data :
{
__data_start__ = .;
*(vtable)
@@ -153,7 +153,7 @@ SECTIONS
/* All data end */
__data_end__ = .;
- } > RAM
+ } > RAM AT > FLASH
.corebss (NOLOAD):
{