/* Linker script to configure memory regions. */ SEARCH_DIR(.) GROUP(-lgcc -lc -lnosys) MEMORY { /* Bootloader will occupy 0xE0000 - 0x100000 */ FLASH (rx) : ORIGIN = 0x00001000, LENGTH = 0x9f000 /* 632 KB */ LFS (rw) : ORIGIN = 0x000a0000, LENGTH = 0x40000 /* 256 KB littlefs */ RAM (rwx) : ORIGIN = 0x20000008, LENGTH = 0x3fff8 } SECTIONS { } SECTIONS { . = ALIGN(4); .mem_section_dummy_ram : { } .log_dynamic_data : { PROVIDE(__start_log_dynamic_data = .); KEEP(*(SORT(.log_dynamic_data*))) PROVIDE(__stop_log_dynamic_data = .); } > RAM .log_filter_data : { PROVIDE(__start_log_filter_data = .); KEEP(*(SORT(.log_filter_data*))) PROVIDE(__stop_log_filter_data = .); } > RAM } INSERT AFTER .data; SECTIONS { .mem_section_dummy_rom : { } .svc_data : { PROVIDE(__start_svc_data = .); KEEP(*(.svc_data)) PROVIDE(__stop_svc_data = .); } > FLASH .log_const_data : { PROVIDE(__start_log_const_data = .); KEEP(*(SORT(.log_const_data*))) PROVIDE(__stop_log_const_data = .); } > FLASH .log_backends : { PROVIDE(__start_log_backends = .); KEEP(*(SORT(.log_backends*))) PROVIDE(__stop_log_backends = .); } > FLASH .nrf_balloc : { PROVIDE(__start_nrf_balloc = .); KEEP(*(.nrf_balloc)) PROVIDE(__stop_nrf_balloc = .); } > FLASH } INSERT AFTER .text /* Provide lfs begin and end address */ _lfs_begin = ORIGIN(LFS); _lfs_end = ORIGIN(LFS) + LENGTH(LFS); INCLUDE "nrf_common.ld"