nrf: Make linker scripts more modular.
With all the variation in chips and boards it's tedious to copy and redefine linker scripts for every option. Making linker scripts more modular also opens up more possibilities, like enabling/disabling the flash file system from the Makefile - or even defining it's size from a Makefile argument (FS_SIZE=12 for a 12kB filesystem if tight on space).
This commit is contained in:
parent
375bc31f4b
commit
2de65dda22
|
@ -11,21 +11,28 @@ SD_LOWER = $(shell echo $(SD) | tr '[:upper:]' '[:lower:]')
|
|||
|
||||
# TODO: Verify that it is a valid target.
|
||||
|
||||
include boards/$(BOARD)/mpconfigboard.mk
|
||||
|
||||
ifeq ($(SD), )
|
||||
# If the build directory is not given, make it reflect the board name.
|
||||
BUILD ?= build-$(BOARD)
|
||||
include ../../py/mkenv.mk
|
||||
include boards/$(BOARD)/mpconfigboard.mk
|
||||
else
|
||||
# If the build directory is not given, make it reflect the board name.
|
||||
BUILD ?= build-$(BOARD)-$(SD_LOWER)
|
||||
include ../../py/mkenv.mk
|
||||
include boards/$(BOARD)/mpconfigboard_$(SD_LOWER).mk
|
||||
|
||||
LD_FILES += boards/$(SD_LOWER)_$(SOFTDEV_VERSION).ld
|
||||
include drivers/bluetooth/bluetooth_common.mk
|
||||
endif
|
||||
|
||||
LD_FILES += boards/memory.ld boards/common.ld
|
||||
|
||||
ifneq ($(LD_FILE),)
|
||||
# Use custom LD file
|
||||
LD_FILES = $(LD_FILE)
|
||||
endif
|
||||
|
||||
-include boards/$(BOARD)/modules/boardmodules.mk
|
||||
|
||||
# qstr definitions (must come before including py.mk)
|
||||
|
@ -102,7 +109,7 @@ CFLAGS += $(CFLAGS_LTO)
|
|||
|
||||
LDFLAGS = $(CFLAGS)
|
||||
LDFLAGS += -Xlinker -Map=$(@:.elf=.map)
|
||||
LDFLAGS += -mthumb -mabi=aapcs -T $(LD_FILE) -L boards/
|
||||
LDFLAGS += -mthumb -mabi=aapcs $(addprefix -T,$(LD_FILES)) -L boards/
|
||||
|
||||
#Debugging/Optimization
|
||||
ifeq ($(DEBUG), 1)
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
MCU_SERIES = m4
|
||||
MCU_VARIANT = nrf52
|
||||
MCU_SUB_VARIANT = nrf52832
|
||||
LD_FILE = boards/nrf52832_512k_64k.ld
|
||||
SOFTDEV_VERSION = 3.0.0
|
||||
LD_FILES += boards/nrf52832_512k_64k.ld
|
||||
FLASHER = pyocd
|
||||
|
||||
NRF_DEFINES += -DNRF52832_XXAA
|
||||
|
|
|
@ -1,9 +0,0 @@
|
|||
MCU_SERIES = m4
|
||||
MCU_VARIANT = nrf52
|
||||
MCU_SUB_VARIANT = nrf52832
|
||||
SOFTDEV_VERSION = 3.0.0
|
||||
FLASHER=pyocd
|
||||
|
||||
LD_FILE = boards/nrf52832_512k_64k_s132_$(SOFTDEV_VERSION).ld
|
||||
|
||||
NRF_DEFINES += -DNRF52832_XXAA
|
|
@ -98,6 +98,3 @@ SECTIONS
|
|||
_ram_end = ORIGIN(RAM) + LENGTH(RAM);
|
||||
_estack = ORIGIN(RAM) + LENGTH(RAM);
|
||||
_heap_end = _ram_end - _stack_size;
|
||||
|
||||
_flash_user_start = ORIGIN(FLASH_USER);
|
||||
_flash_user_end = ORIGIN(FLASH_USER) + LENGTH(FLASH_USER);
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
MCU_SERIES = m4
|
||||
MCU_VARIANT = nrf52
|
||||
MCU_SUB_VARIANT = nrf52832
|
||||
LD_FILE = boards/nrf52832_512k_64k.ld
|
||||
SOFTDEV_VERSION = 3.0.0
|
||||
LD_FILES += boards/nrf52832_512k_64k.ld
|
||||
|
||||
NRF_DEFINES += -DNRF52832_XXAA
|
||||
CFLAGS += -DBLUETOOTH_LFCLK_RC
|
||||
|
|
|
@ -1,10 +0,0 @@
|
|||
MCU_SERIES = m4
|
||||
MCU_VARIANT = nrf52
|
||||
MCU_SUB_VARIANT = nrf52832
|
||||
SOFTDEV_VERSION = 3.0.0
|
||||
|
||||
LD_FILE = boards/nrf52832_512k_64k_s132_$(SOFTDEV_VERSION).ld
|
||||
|
||||
NRF_DEFINES += -DNRF52832_XXAA
|
||||
CFLAGS += -DBLUETOOTH_LFCLK_RC
|
||||
|
|
@ -17,4 +17,7 @@ MEMORY
|
|||
_stack_size = 8K;
|
||||
_minimum_heap_size = 16K;
|
||||
|
||||
_fs_start = ORIGIN(FLASH_USER);
|
||||
_fs_end = ORIGIN(FLASH_USER) + LENGTH(FLASH_USER);
|
||||
|
||||
INCLUDE "boards/common.ld"
|
||||
|
|
|
@ -1,25 +0,0 @@
|
|||
MCU_SERIES = m4
|
||||
MCU_VARIANT = nrf52
|
||||
MCU_SUB_VARIANT = nrf52832
|
||||
SOFTDEV_VERSION = 2.0.1
|
||||
|
||||
LD_FILE = boards/feather52/custom_nrf52832_dfu_app.ld
|
||||
|
||||
NRF_DEFINES += -DNRF52832_XXAA
|
||||
|
||||
|
||||
check_defined = \
|
||||
$(strip $(foreach 1,$1, \
|
||||
$(call __check_defined,$1,$(strip $(value 2)))))
|
||||
__check_defined = \
|
||||
$(if $(value $1),, \
|
||||
$(error Undefined make flag: $1$(if $2, ($2))))
|
||||
|
||||
.PHONY: dfu-gen dfu-flash
|
||||
|
||||
dfu-gen:
|
||||
nrfutil dfu genpkg --dev-type 0x0052 --application $(BUILD)/$(OUTPUT_FILENAME).hex $(BUILD)/dfu-package.zip
|
||||
|
||||
dfu-flash:
|
||||
@:$(call check_defined, SERIAL, example: SERIAL=/dev/ttyUSB0)
|
||||
sudo nrfutil dfu serial --package $(BUILD)/dfu-package.zip -p $(SERIAL)
|
|
@ -0,0 +1,19 @@
|
|||
|
||||
/* Flash layout: softdevice | application | filesystem */
|
||||
/* RAM layout: softdevice RAM | application RAM */
|
||||
_sd_size = DEFINED(_sd_size) ? _sd_size : 0;
|
||||
_sd_ram = DEFINED(_sd_ram) ? _sd_ram : 0;
|
||||
_fs_size = DEFINED(_fs_size) ? _fs_size : 64K; /* TODO: set to 0 if not using the filesystem */
|
||||
_app_size = _flash_size - _sd_size - _fs_size;
|
||||
_app_start = _sd_size;
|
||||
_fs_start = _sd_size + _app_size;
|
||||
_fs_end = _fs_start + _fs_size;
|
||||
_app_ram_start = 0x20000000 + _sd_ram;
|
||||
_app_ram_size = _ram_size - _sd_ram;
|
||||
|
||||
/* Specify the memory areas */
|
||||
MEMORY
|
||||
{
|
||||
FLASH_TEXT (rx) : ORIGIN = _app_start, LENGTH = _app_size /* app */
|
||||
RAM (xrw) : ORIGIN = _app_ram_start, LENGTH = _app_ram_size
|
||||
}
|
|
@ -1,19 +1 @@
|
|||
/*
|
||||
GNU linker script for NRF51822 AA w/ S110 8.0.0 SoftDevice
|
||||
*/
|
||||
/* Specify the memory areas */
|
||||
SEARCH_DIR(.)
|
||||
GROUP(-lgcc -lc -lnosys)
|
||||
MEMORY
|
||||
{
|
||||
FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 256K /* entire flash */
|
||||
FLASH_TEXT (rx) : ORIGIN = 0x00018000, LENGTH = 148K /* app */
|
||||
FLASH_USER (rx) : ORIGIN = 0x0003D000, LENGTH = 12K /* app data, filesystem */
|
||||
RAM (xrw) : ORIGIN = 0x20002000, LENGTH = 8K /* app RAM */
|
||||
}
|
||||
|
||||
/* produce a link error if there is not this amount of RAM for these sections */
|
||||
_stack_size = 2K;
|
||||
_minimum_heap_size = 1K;
|
||||
|
||||
INCLUDE "boards/common.ld"
|
||||
_fs_size = 12K;
|
||||
|
|
|
@ -1,5 +1,11 @@
|
|||
MCU_SERIES = m0
|
||||
MCU_VARIANT = nrf51
|
||||
MCU_SUB_VARIANT = nrf51822
|
||||
LD_FILE = boards/nrf51x22_256k_16k.ld
|
||||
SOFTDEV_VERSION = 8.0.0
|
||||
ifneq ($(SD),)
|
||||
LD_FILES += boards/microbit/custom_nrf51822_s110_microbit.ld
|
||||
endif
|
||||
LD_FILES += boards/nrf51x22_256k_16k.ld
|
||||
FLASHER = pyocd
|
||||
|
||||
CFLAGS += -DBLUETOOTH_LFCLK_RC
|
||||
|
|
|
@ -1,8 +0,0 @@
|
|||
MCU_SERIES = m0
|
||||
MCU_VARIANT = nrf51
|
||||
MCU_SUB_VARIANT = nrf51822
|
||||
SOFTDEV_VERSION = 8.0.0
|
||||
LD_FILE = boards/microbit/custom_nrf51822_s110_microbit.ld
|
||||
FLASHER = pyocd
|
||||
|
||||
CFLAGS += -DBLUETOOTH_LFCLK_RC
|
|
@ -1,19 +1,12 @@
|
|||
/*
|
||||
GNU linker script for NRF51 AA w/ no SoftDevice
|
||||
GNU linker script for NRF51 AA
|
||||
*/
|
||||
/* Specify the memory areas */
|
||||
SEARCH_DIR(.)
|
||||
GROUP(-lgcc -lc -lnosys)
|
||||
MEMORY
|
||||
{
|
||||
FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 256K /* entire flash */
|
||||
FLASH_TEXT (rx) : ORIGIN = 0x00000000, LENGTH = 192K /* app */
|
||||
FLASH_USER (rx) : ORIGIN = 0x00030000, LENGTH = 64K /* app data, filesystem */
|
||||
RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 16K /* use all RAM */
|
||||
}
|
||||
|
||||
/* produce a link error if there is not this amount of RAM for these sections */
|
||||
_stack_size = 4K;
|
||||
_minimum_heap_size = 8K;
|
||||
|
||||
INCLUDE "boards/common.ld"
|
||||
_flash_size = 256K;
|
||||
_ram_size = 16K;
|
||||
|
||||
/* Default stack size when there is no SoftDevice */
|
||||
_stack_size = 4K;
|
||||
_minimum_heap_size = 8K;
|
||||
|
|
|
@ -1,19 +0,0 @@
|
|||
/*
|
||||
GNU linker script for NRF51822 AA w/ S110 8.0.0 SoftDevice
|
||||
*/
|
||||
/* Specify the memory areas */
|
||||
SEARCH_DIR(.)
|
||||
GROUP(-lgcc -lc -lnosys)
|
||||
MEMORY
|
||||
{
|
||||
FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 256K /* entire flash */
|
||||
FLASH_TEXT (rx) : ORIGIN = 0x00018000, LENGTH = 140K /* app */
|
||||
FLASH_USER (rx) : ORIGIN = 0x0003B000, LENGTH = 20K /* app data, filesystem */
|
||||
RAM (xrw) : ORIGIN = 0x20002000, LENGTH = 8K /* app RAM */
|
||||
}
|
||||
|
||||
/* produce a link error if there is not this amount of RAM for these sections */
|
||||
_stack_size = 2K;
|
||||
_minimum_heap_size = 4K;
|
||||
|
||||
INCLUDE "boards/common.ld"
|
|
@ -1,19 +1,12 @@
|
|||
/*
|
||||
GNU linker script for NRF51 AC w/ no SoftDevice
|
||||
GNU linker script for NRF51 AC
|
||||
*/
|
||||
/* Specify the memory areas */
|
||||
SEARCH_DIR(.)
|
||||
GROUP(-lgcc -lc -lnosys)
|
||||
MEMORY
|
||||
{
|
||||
FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 256K /* entire flash */
|
||||
FLASH_TEXT (rx) : ORIGIN = 0x00000000, LENGTH = 192K /* app */
|
||||
FLASH_USER (rx) : ORIGIN = 0x00030000, LENGTH = 64K /* app data, filesystem */
|
||||
RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 32K /* use all RAM */
|
||||
}
|
||||
|
||||
/* produce a link error if there is not this amount of RAM for these sections */
|
||||
_stack_size = 4K;
|
||||
_minimum_heap_size = 24K;
|
||||
|
||||
INCLUDE "boards/common.ld"
|
||||
_flash_size = 256K;
|
||||
_ram_size = 32K;
|
||||
|
||||
/* Default stack size when there is no SoftDevice */
|
||||
_stack_size = 4K;
|
||||
_minimum_heap_size = 24K;
|
||||
|
|
|
@ -1,19 +0,0 @@
|
|||
/*
|
||||
GNU linker script for NRF51822 AC w/ S110 8.0.0 SoftDevice
|
||||
*/
|
||||
/* Specify the memory areas */
|
||||
SEARCH_DIR(.)
|
||||
GROUP(-lgcc -lc -lnosys)
|
||||
MEMORY
|
||||
{
|
||||
FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 256K /* entire flash */
|
||||
FLASH_TEXT (rx) : ORIGIN = 0x00018000, LENGTH = 140K /* app */
|
||||
FLASH_USER (rx) : ORIGIN = 0x0003B000, LENGTH = 20K /* app data, filesystem */
|
||||
RAM (xrw) : ORIGIN = 0x20002000, LENGTH = 24K /* app RAM */
|
||||
}
|
||||
|
||||
/* produce a link error if there is not this amount of RAM for these sections */
|
||||
_stack_size = 4K;
|
||||
_minimum_heap_size = 1K;
|
||||
|
||||
INCLUDE "boards/common.ld"
|
|
@ -1,19 +0,0 @@
|
|||
/*
|
||||
GNU linker script for NRF51822 AC w/ S120 2.1.0 SoftDevice
|
||||
*/
|
||||
/* Specify the memory areas */
|
||||
SEARCH_DIR(.)
|
||||
GROUP(-lgcc -lc -lnosys)
|
||||
MEMORY
|
||||
{
|
||||
FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 256K /* entire flash */
|
||||
FLASH_TEXT (rx) : ORIGIN = 0x0001D000, LENGTH = 130K /* app */
|
||||
FLASH_USER (rx) : ORIGIN = 0x0003D800, LENGTH = 10K /* app data, filesystem */
|
||||
RAM (xrw) : ORIGIN = 0x20002800, LENGTH = 22K /* app RAM */
|
||||
}
|
||||
|
||||
/* produce a link error if there is not this amount of RAM for these sections */
|
||||
_stack_size = 4K;
|
||||
_minimum_heap_size = 4K;
|
||||
|
||||
INCLUDE "boards/common.ld"
|
|
@ -1,19 +0,0 @@
|
|||
/*
|
||||
GNU linker script for NRF51822 AC w/ S130 2.0.1 SoftDevice
|
||||
*/
|
||||
/* Specify the memory areas */
|
||||
SEARCH_DIR(.)
|
||||
GROUP(-lgcc -lc -lnosys)
|
||||
MEMORY
|
||||
{
|
||||
FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 256K /* entire flash */
|
||||
FLASH_TEXT (rx) : ORIGIN = 0x0001B000, LENGTH = 130K /* app */
|
||||
FLASH_USER (rx) : ORIGIN = 0x0003B000, LENGTH = 18K /* app data, filesystem */
|
||||
RAM (xrw) : ORIGIN = 0x200013c8, LENGTH = 0x006c38 /* 27 KiB */
|
||||
}
|
||||
|
||||
/* produce a link error if there is not this amount of RAM for these sections */
|
||||
_stack_size = 4K;
|
||||
_minimum_heap_size = 6K;
|
||||
|
||||
INCLUDE "boards/common.ld"
|
|
@ -1,18 +1,10 @@
|
|||
/*
|
||||
GNU linker script for NRF52832 blank w/ no SoftDevice
|
||||
GNU linker script for NRF52832
|
||||
*/
|
||||
|
||||
/* Specify the memory areas */
|
||||
MEMORY
|
||||
{
|
||||
FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 512K /* entire flash */
|
||||
FLASH_TEXT (rx) : ORIGIN = 0x00000000, LENGTH = 448K /* app */
|
||||
FLASH_USER (rx) : ORIGIN = 0x00070000, LENGTH = 64K /* app data, filesystem */
|
||||
RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 64K /* use all RAM */
|
||||
}
|
||||
|
||||
_flash_size = 512K;
|
||||
_ram_size = 64K;
|
||||
|
||||
/* produce a link error if there is not this amount of RAM for these sections */
|
||||
_stack_size = 8K;
|
||||
_minimum_heap_size = 32K;
|
||||
|
||||
INCLUDE "boards/common.ld"
|
||||
|
|
|
@ -1,18 +0,0 @@
|
|||
/*
|
||||
GNU linker script for NRF52 w/ s132 2.0.1 SoftDevice
|
||||
*/
|
||||
|
||||
/* Specify the memory areas */
|
||||
MEMORY
|
||||
{
|
||||
FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 512K /* entire flash */
|
||||
FLASH_TEXT (rx) : ORIGIN = 0x0001c000, LENGTH = 336K /* app */
|
||||
FLASH_USER (rx) : ORIGIN = 0x00070000, LENGTH = 64K /* app data, filesystem */
|
||||
RAM (xrw) : ORIGIN = 0x200039c0, LENGTH = 0x0c640 /* 49.5 KiB, give 8KiB headroom for softdevice */
|
||||
}
|
||||
|
||||
/* produce a link error if there is not this amount of RAM for these sections */
|
||||
_stack_size = 8K;
|
||||
_minimum_heap_size = 16K;
|
||||
|
||||
INCLUDE "boards/common.ld"
|
|
@ -1,18 +0,0 @@
|
|||
/*
|
||||
GNU linker script for NRF52 w/ s132 3.0.0 SoftDevice
|
||||
*/
|
||||
|
||||
/* Specify the memory areas */
|
||||
MEMORY
|
||||
{
|
||||
FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 512K /* entire flash */
|
||||
FLASH_TEXT (rx) : ORIGIN = 0x0001F000, LENGTH = 324K /* app */
|
||||
FLASH_USER (rx) : ORIGIN = 0x00070000, LENGTH = 64K /* app data, filesystem */
|
||||
RAM (xrw) : ORIGIN = 0x200039c0, LENGTH = 0x0c640 /* 49.5 KiB, give 8KiB headroom for softdevice */
|
||||
}
|
||||
|
||||
/* produce a link error if there is not this amount of RAM for these sections */
|
||||
_stack_size = 8K;
|
||||
_minimum_heap_size = 16K;
|
||||
|
||||
INCLUDE "boards/common.ld"
|
|
@ -1,26 +1,10 @@
|
|||
/*
|
||||
GNU linker script for NRF52840 blank w/ no SoftDevice
|
||||
GNU linker script for NRF52840
|
||||
*/
|
||||
|
||||
/* Specify the memory areas */
|
||||
MEMORY
|
||||
{
|
||||
FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 1M /* entire flash */
|
||||
FLASH_TEXT (rx) : ORIGIN = 0x00000000, LENGTH = 960K /* app */
|
||||
FLASH_USER (rx) : ORIGIN = 0x000F0000, LENGTH = 64K /* app data, filesystem */
|
||||
RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 256K /* use all RAM */
|
||||
}
|
||||
_flash_size = 1M;
|
||||
_ram_size = 256K;
|
||||
|
||||
/* produce a link error if there is not this amount of RAM for these sections */
|
||||
_stack_size = 8K;
|
||||
_minimum_heap_size = 128K;
|
||||
|
||||
/* top end of the stack */
|
||||
|
||||
/*_stack_end = ORIGIN(RAM) + LENGTH(RAM);*/
|
||||
_estack = ORIGIN(RAM) + LENGTH(RAM);
|
||||
|
||||
/* RAM extents for the garbage collector */
|
||||
_ram_end = ORIGIN(RAM) + LENGTH(RAM);
|
||||
|
||||
INCLUDE "boards/common.ld"
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
MCU_SERIES = m0
|
||||
MCU_VARIANT = nrf51
|
||||
MCU_SUB_VARIANT = nrf51822
|
||||
LD_FILE = boards/nrf51x22_256k_16k.ld
|
||||
SOFTDEV_VERSION = 8.0.0
|
||||
LD_FILES += boards/nrf51x22_256k_16k.ld
|
||||
|
|
|
@ -1,5 +0,0 @@
|
|||
MCU_SERIES = m0
|
||||
MCU_VARIANT = nrf51
|
||||
MCU_SUB_VARIANT = nrf51822
|
||||
SOFTDEV_VERSION = 8.0.0
|
||||
LD_FILE = boards/nrf51x22_256k_16k_s110_$(SOFTDEV_VERSION).ld
|
|
@ -1,4 +1,5 @@
|
|||
MCU_SERIES = m0
|
||||
MCU_VARIANT = nrf51
|
||||
MCU_SUB_VARIANT = nrf51822
|
||||
LD_FILE = boards/nrf51x22_256k_16k.ld
|
||||
SOFTDEV_VERSION = 8.0.0
|
||||
LD_FILES += boards/nrf51x22_256k_16k.ld
|
||||
|
|
|
@ -1,5 +0,0 @@
|
|||
MCU_SERIES = m0
|
||||
MCU_VARIANT = nrf51
|
||||
MCU_SUB_VARIANT = nrf51822
|
||||
SOFTDEV_VERSION = 8.0.0
|
||||
LD_FILE = boards/nrf51x22_256k_16k_s110_$(SOFTDEV_VERSION).ld
|
|
@ -1,4 +1,5 @@
|
|||
MCU_SERIES = m0
|
||||
MCU_VARIANT = nrf51
|
||||
MCU_SUB_VARIANT = nrf51822
|
||||
LD_FILE = boards/nrf51x22_256k_32k.ld
|
||||
SOFTDEV_VERSION = 8.0.0
|
||||
LD_FILES += boards/nrf51x22_256k_32k.ld
|
||||
|
|
|
@ -1,5 +0,0 @@
|
|||
MCU_SERIES = m0
|
||||
MCU_VARIANT = nrf51
|
||||
MCU_SUB_VARIANT = nrf51822
|
||||
SOFTDEV_VERSION = 8.0.0
|
||||
LD_FILE = boards/nrf51x22_256k_32k_s110_$(SOFTDEV_VERSION).ld
|
|
@ -1,5 +0,0 @@
|
|||
MCU_SERIES = m0
|
||||
MCU_VARIANT = nrf51
|
||||
MCU_SUB_VARIANT = nrf51822
|
||||
SOFTDEV_VERSION = 2.1.0
|
||||
LD_FILE = boards/nrf51x22_256k_32k_s120_$(SOFTDEV_VERSION).ld
|
|
@ -1,5 +0,0 @@
|
|||
MCU_SERIES = m0
|
||||
MCU_VARIANT = nrf51
|
||||
MCU_SUB_VARIANT = nrf51822
|
||||
SOFTDEV_VERSION = 2.0.1
|
||||
LD_FILE = boards/nrf51x22_256k_32k_s130_$(SOFTDEV_VERSION).ld
|
|
@ -1,4 +1,5 @@
|
|||
MCU_SERIES = m0
|
||||
MCU_VARIANT = nrf51
|
||||
MCU_SUB_VARIANT = nrf51822
|
||||
LD_FILE = boards/nrf51x22_256k_32k.ld
|
||||
SOFTDEV_VERSION = 8.0.0
|
||||
LD_FILES += boards/nrf51x22_256k_32k.ld
|
||||
|
|
|
@ -1,5 +0,0 @@
|
|||
MCU_SERIES = m0
|
||||
MCU_VARIANT = nrf51
|
||||
MCU_SUB_VARIANT = nrf51822
|
||||
SOFTDEV_VERSION = 8.0.0
|
||||
LD_FILE = boards/nrf51x22_256k_32k_s110_$(SOFTDEV_VERSION).ld
|
|
@ -1,5 +0,0 @@
|
|||
MCU_SERIES = m0
|
||||
MCU_VARIANT = nrf51
|
||||
MCU_SUB_VARIANT = nrf51822
|
||||
SOFTDEV_VERSION = 2.1.0
|
||||
LD_FILE = boards/nrf51x22_256k_32k_s120_$(SOFTDEV_VERSION).ld
|
|
@ -1,5 +0,0 @@
|
|||
MCU_SERIES = m0
|
||||
MCU_VARIANT = nrf51
|
||||
MCU_SUB_VARIANT = nrf51822
|
||||
SOFTDEV_VERSION = 2.0.1
|
||||
LD_FILE = boards/nrf51x22_256k_32k_s130_$(SOFTDEV_VERSION).ld
|
|
@ -1,6 +1,7 @@
|
|||
MCU_SERIES = m4
|
||||
MCU_VARIANT = nrf52
|
||||
MCU_SUB_VARIANT = nrf52832
|
||||
LD_FILE = boards/nrf52832_512k_64k.ld
|
||||
SOFTDEV_VERSION = 3.0.0
|
||||
LD_FILES += boards/nrf52832_512k_64k.ld
|
||||
|
||||
NRF_DEFINES += -DNRF52832_XXAA
|
||||
|
|
|
@ -1,8 +0,0 @@
|
|||
MCU_SERIES = m4
|
||||
MCU_VARIANT = nrf52
|
||||
MCU_SUB_VARIANT = nrf52832
|
||||
SOFTDEV_VERSION = 3.0.0
|
||||
|
||||
LD_FILE = boards/nrf52832_512k_64k_s132_$(SOFTDEV_VERSION).ld
|
||||
|
||||
NRF_DEFINES += -DNRF52832_XXAA
|
|
@ -1,6 +1,6 @@
|
|||
MCU_SERIES = m4
|
||||
MCU_VARIANT = nrf52
|
||||
MCU_SUB_VARIANT = nrf52840
|
||||
LD_FILE = boards/nrf52840_1M_256k.ld
|
||||
LD_FILES += boards/nrf52840_1M_256k.ld
|
||||
|
||||
NRF_DEFINES += -DNRF52840_XXAA
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
|
||||
/* GNU linker script for s110 SoftDevice version 8.0.0 */
|
||||
|
||||
_sd_size = 0x00018000;
|
||||
_sd_ram = 0x00002000;
|
||||
_fs_size = DEFINED(_fs_size) ? _fs_size : 20K;
|
||||
|
||||
_stack_size = _ram_size > 16K ? 4K : 2K;
|
||||
_minimum_heap_size = 4K;
|
|
@ -0,0 +1,4 @@
|
|||
/* GNU linker script for s132 SoftDevice version 3.0.0 */
|
||||
|
||||
_sd_size = 0x0001F000;
|
||||
_sd_ram = 0x000039c0;
|
|
@ -1,4 +1,7 @@
|
|||
MCU_SERIES = m0
|
||||
MCU_VARIANT = nrf51
|
||||
MCU_SUB_VARIANT = nrf51822
|
||||
LD_FILE = boards/nrf51x22_256k_16k.ld
|
||||
SOFTDEV_VERSION = 8.0.0
|
||||
LD_FILES += boards/nrf51x22_256k_16k.ld
|
||||
|
||||
CFLAGS += -DBLUETOOTH_LFCLK_RC
|
||||
|
|
|
@ -1,7 +0,0 @@
|
|||
MCU_SERIES = m0
|
||||
MCU_VARIANT = nrf51
|
||||
MCU_SUB_VARIANT = nrf51822
|
||||
SOFTDEV_VERSION = 8.0.0
|
||||
LD_FILE = boards/nrf51x22_256k_16k_s110_$(SOFTDEV_VERSION).ld
|
||||
|
||||
CFLAGS += -DBLUETOOTH_LFCLK_RC
|
|
@ -137,8 +137,8 @@ STATIC uint8_t start_index;
|
|||
STATIC file_chunk *file_system_chunks;
|
||||
|
||||
// Defined by the linker
|
||||
extern byte _flash_user_start[];
|
||||
extern byte _flash_user_end[];
|
||||
extern byte _fs_start[];
|
||||
extern byte _fs_end[];
|
||||
|
||||
STATIC_ASSERT((sizeof(file_chunk) == CHUNK_SIZE));
|
||||
|
||||
|
@ -154,25 +154,25 @@ STATIC inline byte *roundup(byte *addr, uint32_t align) {
|
|||
|
||||
|
||||
STATIC inline void *first_page(void) {
|
||||
return _flash_user_end - FLASH_PAGESIZE * first_page_index;
|
||||
return _fs_end - FLASH_PAGESIZE * first_page_index;
|
||||
}
|
||||
|
||||
STATIC inline void *last_page(void) {
|
||||
return _flash_user_end - FLASH_PAGESIZE * last_page_index;
|
||||
return _fs_end - FLASH_PAGESIZE * last_page_index;
|
||||
}
|
||||
|
||||
STATIC void init_limits(void) {
|
||||
// First determine where to end
|
||||
byte *end = _flash_user_end;
|
||||
byte *end = _fs_end;
|
||||
end = rounddown(end, FLASH_PAGESIZE)-FLASH_PAGESIZE;
|
||||
last_page_index = (_flash_user_end - end)/FLASH_PAGESIZE;
|
||||
last_page_index = (_fs_end - end)/FLASH_PAGESIZE;
|
||||
|
||||
// Now find the start
|
||||
byte *start = roundup(end - CHUNK_SIZE*MAX_CHUNKS_IN_FILE_SYSTEM, FLASH_PAGESIZE);
|
||||
while (start < _flash_user_start) {
|
||||
while (start < _fs_start) {
|
||||
start += FLASH_PAGESIZE;
|
||||
}
|
||||
first_page_index = (_flash_user_end - start)/FLASH_PAGESIZE;
|
||||
first_page_index = (_fs_end - start)/FLASH_PAGESIZE;
|
||||
chunks_in_file_system = (end-start)>>MBFS_LOG_CHUNK_SIZE;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue