diff --git a/gcc_nrf52-mcuboot.ld b/gcc_nrf52-mcuboot.ld index 0746f491..b1413f16 100644 --- a/gcc_nrf52-mcuboot.ld +++ b/gcc_nrf52-mcuboot.ld @@ -3,14 +3,24 @@ SEARCH_DIR(.) GROUP(-lgcc -lc -lnosys) +NOINIT_SIZE = 0x100; +RAM_SIZE = 64K; + MEMORY { FLASH (rx) : ORIGIN = 0x08020, LENGTH = 0x78000 - RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 0x10000 + RAM (rwx) : ORIGIN = 0x20000000, LENGTH = RAM_SIZE - NOINIT_SIZE + NOINIT (rwx): ORIGIN = ORIGIN(RAM) + LENGTH(RAM), LENGTH = NOINIT_SIZE } SECTIONS { + noinit (NOLOAD): + { + PROVIDE(__start_noinit_data = .); + KEEP(*(.noinit)) + PROVIDE(__stop_noinit_data = .); + } >NOINIT } SECTIONS diff --git a/gcc_nrf52.ld b/gcc_nrf52.ld index b40dc06b..705c3d3b 100644 --- a/gcc_nrf52.ld +++ b/gcc_nrf52.ld @@ -3,13 +3,14 @@ SEARCH_DIR(.) GROUP(-lgcc -lc -lnosys) -NO_INIT_SIZE = 0x100; -RAM_MAX = 64K; +NOINIT_SIZE = 0x100; +RAM_SIZE = 64K; + MEMORY { FLASH (rx) : ORIGIN = 0x00000, LENGTH = 0x78000 - RAM (rwx) : ORIGIN = 0x20000000, LENGTH = RAM_MAX - NO_INIT_SIZE - NOINIT (rwx): ORIGIN = ORIGIN(RAM) + LENGTH(RAM), LENGTH = NO_INIT_SIZE + RAM (rwx) : ORIGIN = 0x20000000, LENGTH = RAM_SIZE - NOINIT_SIZE + NOINIT (rwx): ORIGIN = ORIGIN(RAM) + LENGTH(RAM), LENGTH = NOINIT_SIZE } SECTIONS