aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile.common214
-rw-r--r--Makefile.template17
-rw-r--r--gcc_nrf51_s110-sd6_xxaa.ld10
-rw-r--r--gcc_nrf51_s110-sd6_xxab.ld10
4 files changed, 149 insertions, 102 deletions
diff --git a/Makefile.common b/Makefile.common
index b4cfbe8..9618c57 100644
--- a/Makefile.common
+++ b/Makefile.common
@@ -1,31 +1,37 @@
DEVICE := NRF51
DEVICESERIES := nrf51
-SDK_INCLUDE_PATH = $(SDK_PATH)/Include/
-SDK_SOURCE_PATH = $(SDK_PATH)/Source/
-# TEMPLATE_PATH += $(SDK_SOURCE_PATH)/templates/gcc/
-OUTPUT_BINARY_DIRECTORY := _build
+SDK_INCLUDE_PATH = $(SDK_PATH)/Include
+SDK_SOURCE_PATH = $(SDK_PATH)/Source
+# TEMPLATE_PATH += $(SDK_SOURCE_PATH)/templates/gcc
+OUTPUT_BINARY_DIRECTORY := build
ifeq ($(OS),Windows_NT)
-include $(TEMPLATE_PATH)Makefile.windows
+include $(TEMPLATE_PATH)/Makefile.windows
else
-include $(TEMPLATE_PATH)Makefile.posix
+include $(TEMPLATE_PATH)/Makefile.posix
endif
ifeq ($(LINKER_SCRIPT),)
- ifeq ($(USE_SOFTDEVICE), S110)
- LINKER_SCRIPT = gcc_$(DEVICESERIES)_s110_$(DEVICE_VARIANT).ld
- OUTPUT_FILENAME := $(OUTPUT_FILENAME)_s110_$(DEVICE_VARIANT)
- STARTADDRESS = 0x16000
+ ifeq ($(USE_SOFTDEVICE), S110-sd6)
+ LINKER_SCRIPT = gcc_$(DEVICESERIES)_s110-sd6_$(DEVICE_VARIANT).ld
+ OUTPUT_FILENAME := $(OUTPUT_FILENAME)_s110-sd6_$(DEVICE_VARIANT)
+ STARTADDRESS = 0x14000
else
- ifeq ($(USE_SOFTDEVICE), S210)
- LINKER_SCRIPT = gcc_$(DEVICESERIES)_s210_$(DEVICE_VARIANT).ld
- OUTPUT_FILENAME := $(OUTPUT_FILENAME)_s210_$(DEVICE_VARIANT)
- STARTADDRESS = 0x16000
+ ifeq ($(USE_SOFTDEVICE), S110)
+ LINKER_SCRIPT = gcc_$(DEVICESERIES)_s110_$(DEVICE_VARIANT).ld
+ OUTPUT_FILENAME := $(OUTPUT_FILENAME)_s110_$(DEVICE_VARIANT)
+ STARTADDRESS = 0x16000
else
- LINKER_SCRIPT = gcc_$(DEVICESERIES)_blank_$(DEVICE_VARIANT).ld
- OUTPUT_FILENAME := $(OUTPUT_FILENAME)_$(DEVICE_VARIANT)
- STARTADDRESS = 0x0
+ ifeq ($(USE_SOFTDEVICE), S120)
+ LINKER_SCRIPT = gcc_$(DEVICESERIES)_s120_$(DEVICE_VARIANT).ld
+ OUTPUT_FILENAME := $(OUTPUT_FILENAME)_s120_$(DEVICE_VARIANT)
+ STARTADDRESS = 0x18000
+ else
+ LINKER_SCRIPT = gcc_$(DEVICESERIES)_blank_$(DEVICE_VARIANT).ld
+ OUTPUT_FILENAME := $(OUTPUT_FILENAME)_$(DEVICE_VARIANT)
+ STARTADDRESS = 0x0
+ endif
endif
endif
else
@@ -36,19 +42,20 @@ CPU := cortex-m0
# Toolchain commands
JLINK := JLinkExe -Device nrf51822 -speed 100 -if swd
-CC := "$(GNU_INSTALL_ROOT)/bin/$(GNU_PREFIX)-gcc"
-AS := "$(GNU_INSTALL_ROOT)/bin/$(GNU_PREFIX)-as"
-AR := "$(GNU_INSTALL_ROOT)/bin/$(GNU_PREFIX)-ar" -r
-LD := "$(GNU_INSTALL_ROOT)/bin/$(GNU_PREFIX)-ld"
-NM := "$(GNU_INSTALL_ROOT)/bin/$(GNU_PREFIX)-nm"
-OBJDUMP := "$(GNU_INSTALL_ROOT)/bin/$(GNU_PREFIX)-objdump"
-OBJCOPY := "$(GNU_INSTALL_ROOT)/bin/$(GNU_PREFIX)-objcopy"
-
-MK := mkdir
+OPENOCD := /usr/local/bin/openocd -f interface/stlink-v2.cfg -c"transport select hla_swd" -f target/nrf51.cfg
+CC := "$(GNU_INSTALL_ROOT)/bin/$(GNU_PREFIX)-gcc"
+AS := "$(GNU_INSTALL_ROOT)/bin/$(GNU_PREFIX)-as"
+AR := "$(GNU_INSTALL_ROOT)/bin/$(GNU_PREFIX)-ar" -r
+LD := "$(GNU_INSTALL_ROOT)/bin/$(GNU_PREFIX)-ld"
+NM := "$(GNU_INSTALL_ROOT)/bin/$(GNU_PREFIX)-nm"
+OBJDUMP := "$(GNU_INSTALL_ROOT)/bin/$(GNU_PREFIX)-objdump"
+OBJCOPY := "$(GNU_INSTALL_ROOT)/bin/$(GNU_PREFIX)-objcopy"
+
+MK := mkdir
RM := rm -rf
-OBJECT_DIRECTORY := _build
-LISTING_DIRECTORY := _build
+OBJECT_DIRECTORY := build
+LISTING_DIRECTORY := build
C_SOURCE_FILES += system_$(DEVICESERIES).c
ASSEMBLER_SOURCE_FILES += gcc_startup_$(DEVICESERIES).s
@@ -57,46 +64,51 @@ ASSEMBLER_SOURCE_FILES += gcc_startup_$(DEVICESERIES).s
#LDFLAGS += -L"$(GNU_INSTALL_ROOT)/arm-none-eabi/lib/armv6-m"
#LDFLAGS += -L"$(GNU_INSTALL_ROOT)/lib/gcc/arm-none-eabi/$(GNU_VERSION)/armv6-m"
LDFLAGS += -Xlinker -Map=$(LISTING_DIRECTORY)/$(OUTPUT_FILENAME).map
-LDFLAGS += -mcpu=$(CPU) -mthumb -mabi=aapcs -L $(TEMPLATE_PATH) -T$(LINKER_SCRIPT)
+LDFLAGS += -mcpu=$(CPU) -mthumb -mabi=aapcs -L $(TEMPLATE_PATH) -T$(LINKER_SCRIPT)
# Compiler flags
CFLAGS += -mcpu=$(CPU) -mthumb -mabi=aapcs -D$(DEVICE) -D$(BOARD) -D$(TARGET_CHIP) --std=gnu99
-CFLAGS += -Wall -Werror
+CFLAGS += -Wall
CFLAGS += -mfloat-abi=soft
# Assembler flags
ASMFLAGS += -x assembler-with-cpp
-
-INCLUDEPATHS += -I"$(SDK_PATH)Include"
-INCLUDEPATHS += -I"$(SDK_PATH)Include/gcc"
-INCLUDEPATHS += -I"$(SDK_PATH)Include/console"
-INCLUDEPATHS += -I"$(SDK_PATH)Include/nrf_assert"
-INCLUDEPATHS += -I"$(SDK_PATH)Include/sdk"
-INCLUDEPATHS += -I"$(SDK_PATH)Include/app_common"
-INCLUDEPATHS += -I"$(SDK_PATH)Include/sd_common"
-INCLUDEPATHS += -I"$(SDK_PATH)Include/ble"
-INCLUDEPATHS += -I"$(SDK_PATH)Include/ble/ble_services"
-INCLUDEPATHS += -I"$(SDK_PATH)Include/ble/device_manager"
-INCLUDEPATHS += -I"$(SDK_PATH)Include/ble/device_manager/experimental"
-INCLUDEPATHS += -I"$(SDK_PATH)Include/ext_sensors"
-INCLUDEPATHS += -I"$(SDK_PATH)Include/serialization"
-INCLUDEPATHS += -I"$(SDK_PATH)Include/serialization/common"
-INCLUDEPATHS += -I"$(SDK_PATH)Include/serialization/common/transport"
-INCLUDEPATHS += -I"$(SDK_PATH)Include/serialization/common/struct_ser"
-INCLUDEPATHS += -I"$(SDK_PATH)Include/serialization/connectivity"
-INCLUDEPATHS += -I"$(SDK_PATH)Include/serialization/connectivity/codecs"
-INCLUDEPATHS += -I"$(SDK_PATH)Include/serialization/application/transport"
-INCLUDEPATHS += -I"$(SDK_PATH)Include/serialization/application/codecs/common"
-INCLUDEPATHS += -I"$(SDK_PATH)Include/serialization/application/codecs/s110/serializers"
-
-ifeq ($(USE_SOFTDEVICE), S110)
- INCLUDEPATHS += -I"$(SDK_PATH)Include/s110"
+
+INCLUDEPATHS += -I./src
+INCLUDEPATHS += -I"$(SDK_PATH)/Include"
+INCLUDEPATHS += -I"$(SDK_PATH)/Include/gcc"
+INCLUDEPATHS += -I"$(SDK_PATH)/Include/console"
+INCLUDEPATHS += -I"$(SDK_PATH)/Include/nrf_assert"
+INCLUDEPATHS += -I"$(SDK_PATH)/Include/sdk"
+INCLUDEPATHS += -I"$(SDK_PATH)/Include/app_common"
+INCLUDEPATHS += -I"$(SDK_PATH)/Include/sd_common"
+INCLUDEPATHS += -I"$(SDK_PATH)/Include/ble"
+INCLUDEPATHS += -I"$(SDK_PATH)/Include/ble/ble_services"
+INCLUDEPATHS += -I"$(SDK_PATH)/Include/ble/device_manager"
+INCLUDEPATHS += -I"$(SDK_PATH)/Include/ble/device_manager/experimental"
+INCLUDEPATHS += -I"$(SDK_PATH)/Include/ext_sensors"
+INCLUDEPATHS += -I"$(SDK_PATH)/Include/serialization"
+INCLUDEPATHS += -I"$(SDK_PATH)/Include/serialization/common"
+INCLUDEPATHS += -I"$(SDK_PATH)/Include/serialization/common/transport"
+INCLUDEPATHS += -I"$(SDK_PATH)/Include/serialization/common/struct_ser"
+INCLUDEPATHS += -I"$(SDK_PATH)/Include/serialization/connectivity"
+INCLUDEPATHS += -I"$(SDK_PATH)/Include/serialization/connectivity/codecs"
+INCLUDEPATHS += -I"$(SDK_PATH)/Include/serialization/application/transport"
+INCLUDEPATHS += -I"$(SDK_PATH)/Include/serialization/application/codecs/common"
+INCLUDEPATHS += -I"$(SDK_PATH)/Include/serialization/application/codecs/s110/serializers"
+
+ifeq ($(USE_SOFTDEVICE), S110-sd6)
+ INCLUDEPATHS += -I"$(SDK_PATH)/Include/s110"
else
- ifeq ($(USE_SOFTDEVICE), S210)
- INCLUDEPATHS += -I"$(SDK_PATH)Include/s120"
- else
- INCLUDEPATHS += -I"$(SDK_PATH)Include/sdk_soc"
- endif
+ ifeq ($(USE_SOFTDEVICE), S110)
+ INCLUDEPATHS += -I"$(SDK_PATH)/Include/s110"
+ else
+ ifeq ($(USE_SOFTDEVICE), S120)
+ INCLUDEPATHS += -I"$(SDK_PATH)/Include/s120"
+ else
+ INCLUDEPATHS += -I"$(SDK_PATH)/Include/sdk_soc"
+ endif
+ endif
endif
# Sorting removes duplicates
@@ -110,8 +122,8 @@ C_SOURCE_FILENAMES = $(notdir $(C_SOURCE_FILES) )
ASSEMBLER_SOURCE_FILENAMES = $(notdir $(ASSEMBLER_SOURCE_FILES) )
# Make a list of source paths
-C_SOURCE_PATHS += $(SDK_SOURCE_PATH) $(TEMPLATE_PATH) $(wildcard $(SDK_SOURCE_PATH)*/) $(wildcard $(SDK_SOURCE_PATH)ext_sensors/*/) $(wildcard $(SDK_SOURCE_PATH)ble/*/) $(BUILD_SCRIPTS_PATH)
-ASSEMBLER_SOURCE_PATHS = $(SDK_SOURCE_PATH) $(TEMPLATE_PATH) $(wildcard $(SDK_SOURCE_PATH)*/) $(BUILD_SCRIPTS_PATH)
+C_SOURCE_PATHS += $(SDK_SOURCE_PATH) $(TEMPLATE_PATH) $(wildcard $(SDK_SOURCE_PATH)/*/) $(wildcard $(SDK_SOURCE_PATH)/ext_sensors/*/) $(wildcard $(SDK_SOURCE_PATH)/ble/*/) $(BUILD_SCRIPTS_PATH) src
+ASSEMBLER_SOURCE_PATHS = $(SDK_SOURCE_PATH) $(TEMPLATE_PATH) $(wildcard $(SDK_SOURCE_PATH)/*/) $(BUILD_SCRIPTS_PATH)
C_OBJECTS = $(addprefix $(OBJECT_DIRECTORY)/, $(C_SOURCE_FILENAMES:.c=.o) )
ASSEMBLER_OBJECTS = $(addprefix $(OBJECT_DIRECTORY)/, $(ASSEMBLER_SOURCE_FILENAMES:.s=.o) )
@@ -124,13 +136,13 @@ vpath %.s $(ASSEMBLER_SOURCE_PATHS)
-include $(addprefix $(OBJECT_DIRECTORY)/, $(COBJS:.o=.d))
### Targets
-# debug: OUTPUT_FILENAME:=$(OUTPUT_FILENAME)-debug
+# debug: OUTPUT_FILENAME:=$(OUTPUT_FILENAME)-debug
debug: CFLAGS += -DDEBUG -g3 -O0
debug: ASMFLAGS += -DDEBUG -g3 -O0
debug: $(OUTPUT_BINARY_DIRECTORY)/$(OUTPUT_FILENAME).bin $(OUTPUT_BINARY_DIRECTORY)/$(OUTPUT_FILENAME).hex
.PHONY: release
-# release: OUTPUT_FILENAME:=$(OUTPUT_FILENAME)-release
+# release: OUTPUT_FILENAME:=$(OUTPUT_FILENAME)-release
release: CFLAGS += -DNDEBUG -O3
release: ASMFLAGS += -DNDEBUG -O3
release: $(OUTPUT_BINARY_DIRECTORY)/$(OUTPUT_FILENAME).bin $(OUTPUT_BINARY_DIRECTORY)/$(OUTPUT_FILENAME).hex
@@ -187,13 +199,14 @@ sleep 500 \n\
r \n\
q \n\
" \
- > $(OUTPUT_BINARY_DIRECTORY)/erase_all.jlink
+ > $(OUTPUT_BINARY_DIRECTORY)/erase_all.jlink
-erase_all: $(OUTPUT_BINARY_DIRECTORY)/erase_all.jlink
+erase_all: $(OUTPUT_BINARY_DIRECTORY)/erase_all.jlink
$(JLINK) -CommanderScript $(OUTPUT_BINARY_DIRECTORY)/erase_all.jlink; [ "$$?" -eq 1 ]
$(OUTPUT_BINARY_DIRECTORY)/softdevice.bin: $(BUILD_DIRECTORIES)
- $(OBJCOPY) -I ihex -O binary $(SOFTDEVICE_HEX_PATH) $(OUTPUT_BINARY_DIRECTORY)/softdevice.bin
+ $(OBJCOPY) -I ihex -O binary $(SOFTDEVICE_HEX_PATH) $(OUTPUT_BINARY_DIRECTORY)/softdevice.bin
+ endif
$(OUTPUT_BINARY_DIRECTORY)/flash_softdevice.jlink: $(BUILD_DIRECTORIES)
echo " \n\
@@ -214,7 +227,6 @@ r \n\
qc \n\
" > $(OUTPUT_BINARY_DIRECTORY)/flash_softdevice.jlink
-
flash_softdevice: $(OUTPUT_BINARY_DIRECTORY)/flash_softdevice.jlink $(OUTPUT_BINARY_DIRECTORY)/softdevice.bin
$(JLINK) -CommanderScript $(OUTPUT_BINARY_DIRECTORY)/flash_softdevice.jlink; [ "$$?" -eq 1 ]
@@ -235,7 +247,7 @@ w4 0x4001e504,2 # enable erase \n\
page=`expr $$page + 1`; \
startaddr=`expr $$startaddr + 1024`; \
starthexaddr=`printf "0x%x" $$startaddr`; \
- done
+ done
echo "sleep 1000 \n\
r \n\
w4 0x4001e504,1 # enable write \n\
@@ -261,29 +273,41 @@ $(OUTPUT_BINARY_DIRECTORY)/pinreset.jlink: $(BUILD_DIRECTORIES)
pin-reset: $(OUTPUT_BINARY_DIRECTORY)/pinreset.jlink
$(JLINK) -CommanderScript $(OUTPUT_BINARY_DIRECTORY)/pinreset.jlink; [ "$$?" -eq 1 ]
-
-START_GDB_SERVER_SCRIPT=$(OUTPUT_BINARY_DIRECTORY)/start_gdbserver.sh
-$(START_GDB_SERVER_SCRIPT): $(BUILD_DIRECTORIES)
- echo "JLinkGDBServer -if swd -device nrf51822 -LocalHostOnly" > $(START_GDB_SERVER_SCRIPT)
-
-gdbserver: $(START_GDB_SERVER_SCRIPT)
- /bin/sh $(START_GDB_SERVER_SCRIPT)
-
-GDB_COMMAND_SCRIPT=$(OUTPUT_BINARY_DIRECTORY)/gdbinit
-$(GDB_COMMAND_SCRIPT): debug
- echo " \n\
- target remote localhost:2331 \n\
- mon flash breakpoints = 1 \n\
- monitor reset \n\
- file $(OUTPUT_BINARY_DIRECTORY)/$(OUTPUT_FILENAME).out \n\
- load \n\
- b main \n\
- b app_error_handler \n\
- monitor reset \n\
- continue" >> $(GDB_COMMAND_SCRIPT)
-
-gdb: $(GDB_COMMAND_SCRIPT) debug
- arm-none-eabi-gdb -x $(GDB_COMMAND_SCRIPT)
-
-serial:
- screen /dev/cu.usbmodem1411 38400
+
+START_GDB_SERVER_SCRIPT=$(OUTPUT_BINARY_DIRECTORY)/start_gdbserver.sh
+$(START_GDB_SERVER_SCRIPT): $(BUILD_DIRECTORIES)
+ echo "JLinkGDBServer -if swd -device nrf51822 -LocalHostOnly" > $(START_GDB_SERVER_SCRIPT)
+
+gdbserver: $(START_GDB_SERVER_SCRIPT)
+ /bin/sh $(START_GDB_SERVER_SCRIPT)
+
+GDB_COMMAND_SCRIPT=$(OUTPUT_BINARY_DIRECTORY)/gdbinit
+$(GDB_COMMAND_SCRIPT): debug
+ echo " \n\
+ target remote localhost:2331 \n\
+ mon flash breakpoints = 1 \n\
+ monitor reset \n\
+ file $(OUTPUT_BINARY_DIRECTORY)/$(OUTPUT_FILENAME).out \n\
+ load \n\
+ b main \n\
+ b app_error_handler \n\
+ monitor reset \n\
+ continue" >> $(GDB_COMMAND_SCRIPT)
+
+gdb: $(GDB_COMMAND_SCRIPT) debug
+ arm-none-eabi-gdb -x $(GDB_COMMAND_SCRIPT)
+
+serial:
+ screen /dev/cu.usbmodem1411 38400
+
+openocd_flash: $(OUTPUT_BINARY_DIRECTORY)/$(OUTPUT_FILENAME).bin
+ $(OPENOCD) $(OPENOCD_ARGS) -c "program $(OUTPUT_BINARY_DIRECTORY)/$(OUTPUT_FILENAME).bin verify $(STARTADDRESS)"
+
+openocd_flash_softdevice6: $(OUTPUT_BINARY_DIRECTORY)/softdevice_main.bin $(OUTPUT_BINARY_DIRECTORY)/softdevice_uicr.bin
+ $(OPENOCD) -c"init; reset halt; nrf51 mass_erase; flash write_image $(OUTPUT_BINARY_DIRECTORY)/softdevice_uicr.bin 0x10001000; flash write_image $(OUTPUT_BINARY_DIRECTORY)/softdevice_main.bin 0; verify_image $(OUTPUT_BINARY_DIRECTORY)/softdevice_uicr.bin 0x10001000; verify_image $(OUTPUT_BINARY_DIRECTORY)/softdevice_main.bin 0; reset; shutdown"
+
+$(OUTPUT_BINARY_DIRECTORY)/softdevice_uicr.bin: $(SOFTDEVICE_HEX_PATH) $(BUILD_DIRECTORIES)
+ $(OBJCOPY) -Iihex -Obinary --only-section .sec3 $< $@
+
+$(OUTPUT_BINARY_DIRECTORY)/softdevice_main.bin: $(SOFTDEVICE_HEX_PATH) $(BUILD_DIRECTORIES)
+ $(OBJCOPY) -Iihex -Obinary --remove-section .sec3 $< $@
diff --git a/Makefile.template b/Makefile.template
index 5d57cbd..15a1713 100644
--- a/Makefile.template
+++ b/Makefile.template
@@ -6,12 +6,15 @@ DEVICE_VARIANT := xxaa
#DEVICE_VARIANT := xxab
USE_SOFTDEVICE := S110
-#USE_SOFTDEVICE := S210
-
-HOME = /Users/hongbo.yang/
-SDK_PATH = $(HOME)Developer/prjs/embeded/nrf/nrf51_sdk_v6_0_0_43681/nrf51822/
-SOFTDEVICE_HEX_PATH = $(HOME)Developer/prjs/embeded/nrf/s110_nrf51822_7.0.0/s110_nrf51822_7.0.0_softdevice.hex
-BUILD_SCRIPTS_PATH = $(HOME)Developer/prjs/embeded/prjs/nrf51822/build_scripts/
+#USE_SOFTDEVICE := S120
+#USE_SOFTDEVICE := S110-sd6
+#USE_SOFTDEVICE := S120-sd6
+
+HOME = ~
+SDK_PATH = $(HOME)/nRF51_SDK_v6.0.0.43681/Nordic/nrf51822
+SOFTDEVICE_HEX_PATH = $(HOME)/s110_nrf51822_7_0_0/s110_nrf51822_7.0.0_softdevice.hex
+#SOFTDEVICE_HEX_PATH = $(HOME)/s110_nrf51822_6_0_0/s110_nrf51822_6.0.0_softdevice.hex
+BUILD_SCRIPTS_PATH = $(HOME)/F2FS/nrf51822-macosx-build-scripts
TEMPLATE_PATH = $(BUILD_SCRIPTS_PATH)
# CFLAGS += -DBLE_STACK_SUPPORT_REQD
@@ -107,5 +110,5 @@ endif
OUTPUT_FILENAME := main
-include $(TEMPLATE_PATH)Makefile.common
+include $(TEMPLATE_PATH)/Makefile.common
diff --git a/gcc_nrf51_s110-sd6_xxaa.ld b/gcc_nrf51_s110-sd6_xxaa.ld
new file mode 100644
index 0000000..ac2bf9e
--- /dev/null
+++ b/gcc_nrf51_s110-sd6_xxaa.ld
@@ -0,0 +1,10 @@
+/* Linker script to configure memory regions. */
+SEARCH_DIR(.)
+GROUP(-lgcc -lc -lnosys)
+
+MEMORY
+{
+ FLASH (rx) : ORIGIN = 0x14000, LENGTH = 0x2C000 /* 80 kB is taken by S110, 176 kB available for application. */
+ RAM (rwx) : ORIGIN = 0x20002000, LENGTH = 0x2000 /* 8 kB, 8 kB is taken by S110. */
+}
+INCLUDE "gcc_nrf51_common.ld"
diff --git a/gcc_nrf51_s110-sd6_xxab.ld b/gcc_nrf51_s110-sd6_xxab.ld
new file mode 100644
index 0000000..e59c48d
--- /dev/null
+++ b/gcc_nrf51_s110-sd6_xxab.ld
@@ -0,0 +1,10 @@
+/* Linker script to configure memory regions. */
+SEARCH_DIR(.)
+GROUP(-lgcc -lc -lnosys)
+
+MEMORY
+{
+ FLASH (rx) : ORIGIN = 0x14000, LENGTH = 0xC000 /* 80 kB is taken by S110, 48 kB available for application. */
+ RAM (rwx) : ORIGIN = 0x20002000, LENGTH = 0x2000 /* 8 kB, 8 kB is taken by S110. */
+}
+INCLUDE "gcc_nrf51_common.ld"