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 <[email protected]> Authored: Mon Feb 13 17:53:28 2017 -0800 Committer: Marko Kiiskila <[email protected]> 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): {
