From f061dcf8b6cbfb03293583b0c1d25d6dd1b5997e Mon Sep 17 00:00:00 2001
From: Dmitry Frank <dmitry.frank@cesanta.com>
Date: Wed, 26 Oct 2016 14:24:16 +0300
Subject: [PATCH] Make nRF5 example fit better in nRF ecosystem

By making dir hierarchy replicate that of examples provided with the nRF
IoT SDK.

Also, example for Keil uVision IDE is added.

PUBLISHED_FROM=1a3d9a54d15eb1acfb1b5d162138576a387ed21c
---
 examples/nRF52/.gdbinit                       |    2 -
 examples/nRF52/Makefile.build                 |  299 ----
 examples/nRF52/README.md                      |   39 +-
 examples/nRF52/config/app_cfg.h               |    8 -
 examples/nRF52/gcc_startup_nrf52.s            |  490 -------
 examples/nRF52/{ => http}/bleconfig.c         |   27 +-
 examples/nRF52/{ => http}/bleconfig.h         |    0
 .../iot_lwip_tcp_server_pca10040.uvoptx       | 1228 +++++++++++++++++
 .../iot_lwip_tcp_server_pca10040.uvprojx      |  886 ++++++++++++
 .../http/boards/pca10040/armgcc/.gdbinit      |    2 +
 .../http/boards/pca10040/armgcc/Makefile      |  304 ++++
 .../boards/pca10040/armgcc/Makefile.docker}   |    5 +-
 .../http/boards/pca10040/armgcc/README.md     |    3 +
 .../armgcc/iot_lwip_tcp_server_gcc_nrf52.ld}  |    2 +-
 .../boards/pca10040/armgcc}/sdk.version       |    0
 .../{ => http}/config/ipv6_medium_ble_cfg.h   |    0
 .../{ => http}/config/ipv6_medium_platform.h  |    0
 .../nRF52/{ => http}/config/nrf_drv_config.h  |    0
 .../{ => http}/config/pstorage_platform.h     |    0
 examples/nRF52/{ => http}/config/sdk_config.h |    0
 examples/nRF52/{ => http}/main.c              |    8 +-
 examples/nRF52/{ => http}/myboard.h           |    0
 examples/nRF52/{ => http}/rtt/README.txt      |    0
 .../nRF52/{ => http}/rtt/RTT/SEGGER_RTT.c     |    0
 .../nRF52/{ => http}/rtt/RTT/SEGGER_RTT.h     |    0
 .../{ => http}/rtt/RTT/SEGGER_RTT_Conf.h      |    2 +-
 .../{ => http}/rtt/RTT/SEGGER_RTT_printf.c    |    0
 .../rtt/Syscalls/RTT_Syscalls_GCC.c           |    0
 .../rtt/Syscalls/RTT_Syscalls_IAR.c           |    0
 .../rtt/Syscalls/RTT_Syscalls_KEIL.c          |    0
 examples/nRF52/ld/nrf5x_common.ld             |  164 ---
 31 files changed, 2446 insertions(+), 1023 deletions(-)
 delete mode 100644 examples/nRF52/.gdbinit
 delete mode 100644 examples/nRF52/Makefile.build
 delete mode 100644 examples/nRF52/config/app_cfg.h
 delete mode 100644 examples/nRF52/gcc_startup_nrf52.s
 rename examples/nRF52/{ => http}/bleconfig.c (96%)
 rename examples/nRF52/{ => http}/bleconfig.h (100%)
 create mode 100644 examples/nRF52/http/boards/pca10040/arm5_no_packs/iot_lwip_tcp_server_pca10040.uvoptx
 create mode 100644 examples/nRF52/http/boards/pca10040/arm5_no_packs/iot_lwip_tcp_server_pca10040.uvprojx
 create mode 100644 examples/nRF52/http/boards/pca10040/armgcc/.gdbinit
 create mode 100644 examples/nRF52/http/boards/pca10040/armgcc/Makefile
 rename examples/nRF52/{Makefile => http/boards/pca10040/armgcc/Makefile.docker} (67%)
 create mode 100644 examples/nRF52/http/boards/pca10040/armgcc/README.md
 rename examples/nRF52/{ld/mongoose_example_nrf52.ld => http/boards/pca10040/armgcc/iot_lwip_tcp_server_gcc_nrf52.ld} (84%)
 rename examples/nRF52/{ => http/boards/pca10040/armgcc}/sdk.version (100%)
 rename examples/nRF52/{ => http}/config/ipv6_medium_ble_cfg.h (100%)
 rename examples/nRF52/{ => http}/config/ipv6_medium_platform.h (100%)
 rename examples/nRF52/{ => http}/config/nrf_drv_config.h (100%)
 rename examples/nRF52/{ => http}/config/pstorage_platform.h (100%)
 rename examples/nRF52/{ => http}/config/sdk_config.h (100%)
 rename examples/nRF52/{ => http}/main.c (90%)
 rename examples/nRF52/{ => http}/myboard.h (100%)
 rename examples/nRF52/{ => http}/rtt/README.txt (100%)
 rename examples/nRF52/{ => http}/rtt/RTT/SEGGER_RTT.c (100%)
 rename examples/nRF52/{ => http}/rtt/RTT/SEGGER_RTT.h (100%)
 rename examples/nRF52/{ => http}/rtt/RTT/SEGGER_RTT_Conf.h (93%)
 rename examples/nRF52/{ => http}/rtt/RTT/SEGGER_RTT_printf.c (100%)
 rename examples/nRF52/{ => http}/rtt/Syscalls/RTT_Syscalls_GCC.c (100%)
 rename examples/nRF52/{ => http}/rtt/Syscalls/RTT_Syscalls_IAR.c (100%)
 rename examples/nRF52/{ => http}/rtt/Syscalls/RTT_Syscalls_KEIL.c (100%)
 delete mode 100644 examples/nRF52/ld/nrf5x_common.ld

diff --git a/examples/nRF52/.gdbinit b/examples/nRF52/.gdbinit
deleted file mode 100644
index 27acd58b6..000000000
--- a/examples/nRF52/.gdbinit
+++ /dev/null
@@ -1,2 +0,0 @@
-target extended-remote localhost:2331
-file out/example.out
diff --git a/examples/nRF52/Makefile.build b/examples/nRF52/Makefile.build
deleted file mode 100644
index 0b20996e0..000000000
--- a/examples/nRF52/Makefile.build
+++ /dev/null
@@ -1,299 +0,0 @@
-.PHONY: all clean flash gdbserver gdb jlinkexe rtt
-
-APP_ROOT=.
-MONGOOSE_ROOT=../..
-
-BUILD_DIR=.build
-OUT_DIR=out
-PROJECT=example
-
-NRF_IOT_SDK_ROOT=/opt/nrf5_iot_sdk
-GNU_PREFIX := arm-none-eabi
-
-LD_PATH=$(APP_ROOT)/ld
-
-#echo suspend
-ifeq ("$(VERBOSE)","1")
-V := 
-else
-V := @
-endif
-
-# Toolchain commands
-CC              := '$(GNU_PREFIX)-gcc'
-AS              := '$(GNU_PREFIX)-as'
-AR              := '$(GNU_PREFIX)-ar' -r
-LD              := '$(GNU_PREFIX)-ld'
-NM              := '$(GNU_PREFIX)-nm'
-OBJDUMP         := '$(GNU_PREFIX)-objdump'
-OBJCOPY         := '$(GNU_PREFIX)-objcopy'
-SIZE            := '$(GNU_PREFIX)-size'
-
-IPATH_SDK = . \
-    $(NRF_IOT_SDK_ROOT)/components/iot/errno \
-    $(NRF_IOT_SDK_ROOT)/components/softdevice/s1xx_iot/headers \
-    $(NRF_IOT_SDK_ROOT)/components/drivers_nrf/common \
-    $(NRF_IOT_SDK_ROOT)/components/softdevice/common/softdevice_handler \
-    $(NRF_IOT_SDK_ROOT)/external/lwip/src/include \
-    $(NRF_IOT_SDK_ROOT)/components/iot/ble_6lowpan \
-    $(NRF_IOT_SDK_ROOT)/components/drivers_nrf/hal \
-    $(NRF_IOT_SDK_ROOT)/components/ble/common \
-    $(NRF_IOT_SDK_ROOT)/external/lwip/src/port \
-    $(NRF_IOT_SDK_ROOT)/components/libraries/fifo \
-    $(NRF_IOT_SDK_ROOT)/components/libraries/trace \
-    $(NRF_IOT_SDK_ROOT)/components/device \
-    $(NRF_IOT_SDK_ROOT)/components/libraries/uart \
-    $(NRF_IOT_SDK_ROOT)/components/drivers_nrf/rng \
-    $(NRF_IOT_SDK_ROOT)/components/iot/medium \
-    $(NRF_IOT_SDK_ROOT)/components/drivers_nrf/config \
-    $(NRF_IOT_SDK_ROOT)/components/libraries/mem_manager \
-    $(NRF_IOT_SDK_ROOT)/components/drivers_nrf/uart \
-    $(NRF_IOT_SDK_ROOT)/components/iot/ble_ipsp \
-    $(NRF_IOT_SDK_ROOT)/components/libraries/scheduler \
-    $(NRF_IOT_SDK_ROOT)/components/iot/iot_timer \
-    $(NRF_IOT_SDK_ROOT)/components/iot/tls/mbedtls/tls/config \
-    $(NRF_IOT_SDK_ROOT)/external/mbedtls/include \
-    $(NRF_IOT_SDK_ROOT)/external/lwip/src/include/netif \
-    $(NRF_IOT_SDK_ROOT)/components/iot/medium/commissioning \
-    $(NRF_IOT_SDK_ROOT)/components/iot/tls \
-    $(NRF_IOT_SDK_ROOT)/components/iot/include \
-    $(NRF_IOT_SDK_ROOT)/components/drivers_nrf/pstorage \
-    $(NRF_IOT_SDK_ROOT)/components/iot/tls \
-    $(NRF_IOT_SDK_ROOT)/components/iot/context_manager \
-    $(NRF_IOT_SDK_ROOT)/components/iot_timer \
-    $(NRF_IOT_SDK_ROOT)/components/toolchain/gcc \
-    $(NRF_IOT_SDK_ROOT)/components/drivers_nrf/delay \
-    $(NRF_IOT_SDK_ROOT)/components/iot/medium/ble_ncfgs \
-    $(NRF_IOT_SDK_ROOT)/components/drivers_nrf/gpiote \
-    $(NRF_IOT_SDK_ROOT)/components/iot/mqtt \
-    $(NRF_IOT_SDK_ROOT)/components/softdevice/s1xx_iot/headers/nrf52 \
-    $(NRF_IOT_SDK_ROOT)/external/lwip/src/include/lwip \
-    $(NRF_IOT_SDK_ROOT)/components/iot/common \
-    $(NRF_IOT_SDK_ROOT)/components/libraries/timer \
-    $(NRF_IOT_SDK_ROOT)/external/lwip/src/port/arch \
-    $(NRF_IOT_SDK_ROOT)/components/libraries/button \
-    $(NRF_IOT_SDK_ROOT)/components/libraries/util \
-    $(NRF_IOT_SDK_ROOT)/examples/bsp \
-    $(NRF_IOT_SDK_ROOT)/components/toolchain \
-    $(NRF_IOT_SDK_ROOT)/components/iot/medium/include \
-
-IPATH_RTT = $(APP_ROOT)/rtt/RTT
-
-IPATH_APP = $(APP_ROOT) $(APP_ROOT)/config
-
-IPATH = .  $(IPATH_APP) $(IPATH_RTT) $(IPATH_SDK)
-
-SOURCES_NRF_IOT_SDK = \
-    $(NRF_IOT_SDK_ROOT)/examples/bsp/bsp.c \
-    $(NRF_IOT_SDK_ROOT)/components/libraries/button/app_button.c \
-    $(NRF_IOT_SDK_ROOT)/components/libraries/util/app_error.c \
-    $(NRF_IOT_SDK_ROOT)/components/libraries/fifo/app_fifo.c \
-    $(NRF_IOT_SDK_ROOT)/components/libraries/scheduler/app_scheduler.c \
-    $(NRF_IOT_SDK_ROOT)/components/libraries/timer/app_timer.c \
-    $(NRF_IOT_SDK_ROOT)/components/libraries/timer/app_timer_appsh.c \
-    $(NRF_IOT_SDK_ROOT)/components/libraries/trace/app_trace.c \
-    $(NRF_IOT_SDK_ROOT)/components/libraries/mem_manager/mem_manager.c \
-    $(NRF_IOT_SDK_ROOT)/components/libraries/util/nrf_assert.c \
-    $(NRF_IOT_SDK_ROOT)/components/libraries/uart/retarget.c \
-    $(NRF_IOT_SDK_ROOT)/external/lwip/src/core/def.c \
-    $(NRF_IOT_SDK_ROOT)/external/lwip/src/core/dhcp.c \
-    $(NRF_IOT_SDK_ROOT)/external/lwip/src/core/ipv6/dhcp6.c \
-    $(NRF_IOT_SDK_ROOT)/external/lwip/src/core/dns.c \
-    $(NRF_IOT_SDK_ROOT)/external/lwip/src/core/ipv4/icmp.c \
-    $(NRF_IOT_SDK_ROOT)/external/lwip/src/core/ipv6/icmp6.c \
-    $(NRF_IOT_SDK_ROOT)/external/lwip/src/core/ipv6/inet6.c \
-    $(NRF_IOT_SDK_ROOT)/external/lwip/src/core/inet_chksum.c \
-    $(NRF_IOT_SDK_ROOT)/external/lwip/src/core/init.c \
-    $(NRF_IOT_SDK_ROOT)/external/lwip/src/core/ipv4/ip4.c \
-    $(NRF_IOT_SDK_ROOT)/external/lwip/src/core/ipv4/ip4_addr.c \
-    $(NRF_IOT_SDK_ROOT)/external/lwip/src/core/ipv6/ip6.c \
-    $(NRF_IOT_SDK_ROOT)/external/lwip/src/core/ipv6/ip6_addr.c \
-    $(NRF_IOT_SDK_ROOT)/external/lwip/src/core/memp.c \
-    $(NRF_IOT_SDK_ROOT)/external/lwip/src/core/ipv6/mld6.c \
-    $(NRF_IOT_SDK_ROOT)/external/lwip/src/core/ipv6/nd6.c \
-    $(NRF_IOT_SDK_ROOT)/external/lwip/src/core/netif.c \
-    $(NRF_IOT_SDK_ROOT)/external/lwip/src/port/nrf_platform_port.c \
-    $(NRF_IOT_SDK_ROOT)/external/lwip/src/core/pbuf.c \
-    $(NRF_IOT_SDK_ROOT)/external/lwip/src/core/raw.c \
-    $(NRF_IOT_SDK_ROOT)/external/lwip/src/core/sys.c \
-    $(NRF_IOT_SDK_ROOT)/external/lwip/src/core/tcp.c \
-    $(NRF_IOT_SDK_ROOT)/external/lwip/src/core/tcp_in.c \
-    $(NRF_IOT_SDK_ROOT)/external/lwip/src/core/tcp_out.c \
-    $(NRF_IOT_SDK_ROOT)/external/lwip/src/core/timers.c \
-    $(NRF_IOT_SDK_ROOT)/external/lwip/src/core/udp.c \
-    $(NRF_IOT_SDK_ROOT)/components/libraries/uart/app_uart_fifo.c \
-    $(NRF_IOT_SDK_ROOT)/components/drivers_nrf/delay/nrf_delay.c \
-    $(NRF_IOT_SDK_ROOT)/components/drivers_nrf/common/nrf_drv_common.c \
-    $(NRF_IOT_SDK_ROOT)/components/drivers_nrf/gpiote/nrf_drv_gpiote.c \
-    $(NRF_IOT_SDK_ROOT)/components/drivers_nrf/uart/nrf_drv_uart.c \
-    $(NRF_IOT_SDK_ROOT)/components/drivers_nrf/pstorage/pstorage.c \
-    $(NRF_IOT_SDK_ROOT)/components/ble/common/ble_advdata.c \
-    $(NRF_IOT_SDK_ROOT)/components/ble/common/ble_conn_params.c \
-    $(NRF_IOT_SDK_ROOT)/components/ble/common/ble_srv_common.c \
-    $(NRF_IOT_SDK_ROOT)/components/iot/errno/errno.c \
-    $(NRF_IOT_SDK_ROOT)/components/iot/context_manager/iot_context_manager.c \
-    $(NRF_IOT_SDK_ROOT)/components/iot/iot_timer/iot_timer.c \
-    $(NRF_IOT_SDK_ROOT)/components/iot/medium/ipv6_medium_ble.c \
-    $(NRF_IOT_SDK_ROOT)/components/iot/common/ipv6_parse.c \
-    $(NRF_IOT_SDK_ROOT)/components/toolchain/system_nrf52.c \
-    $(NRF_IOT_SDK_ROOT)/components/iot/medium/ble_ncfgs/ble_ncfgs.c \
-    $(NRF_IOT_SDK_ROOT)/components/iot/medium/commissioning/commissioning.c \
-    $(NRF_IOT_SDK_ROOT)/components/softdevice/common/softdevice_handler/softdevice_handler.c \
-    $(NRF_IOT_SDK_ROOT)/components/softdevice/common/softdevice_handler/softdevice_handler_appsh.c \
-
-SOURCES_RTT = \
-    $(APP_ROOT)/rtt/RTT/SEGGER_RTT.c \
-    $(APP_ROOT)/rtt/RTT/SEGGER_RTT_printf.c \
-    $(APP_ROOT)/rtt/Syscalls/RTT_Syscalls_GCC.c \
-
-SOURCES_APP = \
-    $(APP_ROOT)/main.c \
-    $(APP_ROOT)/bleconfig.c \
-    $(MONGOOSE_ROOT)/mongoose.c \
-
-SOURCES = $(SOURCES_APP) $(SOURCES_NRF_IOT_SDK) $(SOURCES_RTT)
-
-LIBS  = $(NRF_IOT_SDK_ROOT)/components/iot/ble_6lowpan/lib/ble_6lowpan.a
-
-ASM_SOURCES  = $(APP_ROOT)/gcc_startup_nrf52.s
-
-LINKER_SCRIPT = $(LD_PATH)/mongoose_example_nrf52.ld
-
-C_SOURCE_FILE_NAMES = $(notdir $(SOURCES))
-C_PATHS = $(sort $(dir $(SOURCES) ) )
-ASM_PATHS = $(sort $(dir $(ASM_SOURCES) ))
-C_OBJECTS = $(addprefix $(BUILD_DIR)/, $(C_SOURCE_FILE_NAMES:.c=.o) )
-
-ASM_SOURCE_FILE_NAMES = $(notdir $(ASM_SOURCES))
-ASM_PATHS = $(sort $(dir $(ASM_SOURCES) ))
-ASM_OBJECTS = $(addprefix $(BUILD_DIR)/, $(ASM_SOURCE_FILE_NAMES:.s=.o) )
-
-INCDIRS = $(addprefix -I,$(IPATH))
-
-vpath %.c $(C_PATHS)
-vpath %.s $(ASM_PATHS)
-
-OBJECTS = $(C_OBJECTS) $(ASM_OBJECTS)
-
-# Mongoose features
-MG_FEATURES_TINY = \
-                   -DMG_DISABLE_HTTP_DIGEST_AUTH \
-                   -DMG_DISABLE_MD5 \
-                   -DMG_DISABLE_HTTP_KEEP_ALIVE \
-                   -DMG_ENABLE_HTTP_SSI=0 \
-                   -DMG_ENABLE_HTTP_STREAMING_MULTIPART \
-                   -DMG_NO_BSD_SOCKETS
-
-#flags common to all targets
-CFLAGS  = -D__HEAP_SIZE=512
-CFLAGS += -DSWI_DISABLE0
-CFLAGS += -DSOFTDEVICE_PRESENT
-CFLAGS += -DBOARD_PCA10040
-CFLAGS += -DNRF52
-CFLAGS += -DCONFIG_GPIO_AS_PINRESET
-CFLAGS += -DBLE_STACK_SUPPORT_REQD
-CFLAGS += -Ds1xx
-
-CFLAGS += -mcpu=cortex-m4
-CFLAGS += -mthumb -mabi=aapcs --std=gnu99
-CFLAGS += -w -g3 -Os
-
-CFLAGS += -mfloat-abi=hard -mfpu=fpv4-sp-d16
-
-# keep every function in separate section. This will allow linker to dump
-# unused functions
-CFLAGS += -ffunction-sections -fdata-sections -fno-strict-aliasing
-CFLAGS += -fno-builtin --short-enums
-
-CFLAGS += -DCS_ENABLE_STDIO
-#CFLAGS += -DCS_ENABLE_DEBUG
-
-# This macro is needed for stdout to be retargeted to either UART or RTT
-CFLAGS += -DENABLE_DEBUG_LOG_SUPPORT
-
-# Don't retarget stdout to UART; it'll be retargeted to RTT
-CFLAGS += -DNRF_LOG_USES_RTT
-
-# Mongoose flags
-CFLAGS += -DCS_PLATFORM=CS_P_NRF52 $(MG_FEATURES_TINY) -DMG_MODULE_LINES
-
-LDFLAGS += -Xlinker -Map=$(OUT_DIR)/$(PROJECT).map
-LDFLAGS += -mthumb -mabi=aapcs -L $(LD_PATH) -T$(LINKER_SCRIPT)
-LDFLAGS += -mcpu=cortex-m4
-LDFLAGS += -mfloat-abi=hard -mfpu=fpv4-sp-d16
-# let linker to dump unused sections
-LDFLAGS += -Wl,--gc-sections
-# use newlib in nano version
-LDFLAGS += --specs=nano.specs -lc -lnosys
-
-# Assembler flags
-ASMFLAGS += -x assembler-with-cpp
-ASMFLAGS += -D__HEAP_SIZE=512
-ASMFLAGS += -DSWI_DISABLE0
-ASMFLAGS += -DSOFTDEVICE_PRESENT
-ASMFLAGS += -DBOARD_PCA10040
-ASMFLAGS += -DNRF52
-ASMFLAGS += -DCONFIG_GPIO_AS_PINRESET
-ASMFLAGS += -DENABLE_DEBUG_LOG_SUPPORT
-ASMFLAGS += -DBLE_STACK_SUPPORT_REQD
-ASMFLAGS += -Ds1xx
-ASMFLAGS += -g3
-
-INC_PATHS=$(addprefix -I,$(IPATH))
-
-BUILD_DIRECTORIES := $(BUILD_DIR) $(OUT_DIR)
-
-# Create objects from C SRC files
-$(BUILD_DIR)/%.o: %.c
-	@echo Compiling file: $(notdir $<)
-	$(V)$(CC) $(CFLAGS) $(INC_PATHS) -c -o $@ $<
-
-# Assemble files
-$(BUILD_DIR)/%.o: %.s
-	@echo Assembly file: $(notdir $<)
-	$(V)$(CC) $(ASMFLAGS) $(INC_PATHS) -c -o $@ $<
-
-# Create binary .hex file from the .out file
-%.hex: %.out
-	@echo Generating HEX file: $@
-	$(V)$(OBJCOPY) -O ihex $< $@
-
-OUT_FILENAME=$(OUT_DIR)/$(PROJECT).out
-HEX_FILENAME=$(OUT_DIR)/$(PROJECT).hex
-
-all: $(OUT_FILENAME) $(HEX_FILENAME)
-
-$(OUT_FILENAME): $(BUILD_DIRECTORIES) $(OBJECTS)
-	@echo Linking target: $(OUT_FILENAME)
-	$(V)$(CC) $(LDFLAGS) $(OBJECTS) $(LIBS) -o $(OUT_FILENAME)
-
-## Create build directories
-$(BUILD_DIRECTORIES):
-	mkdir $@
-
-clean:
-	rm -rf $(BUILD_DIR) $(OUT_DIR) \
-
-# Flash the program
-flash: $(HEX_FILENAME)
-	@echo Flashing: $<
-	/opt/nordic/nrfjprog/nrfjprog --program $< -f nrf52 --sectorerase
-	/opt/nordic/nrfjprog/nrfjprog --reset -f nrf52
-
-# start GDB server. It is needed to be done in a separate terminal before we
-# can invoke `gdb` target
-gdbserver:
-	/opt/SEGGER/JLink_V610g/JLinkGDBServer -device NRF52 -speed 4000 -if SWD
-
-# run GDB (for that to work, `make gdbserver` should run in parallel)
-gdb:
-	arm-none-eabi-gdb
-
-# start JLinkExe; it is needed to be done in a separate terminal before we
-# can invoke `rtt` target
-jlinkexe:
-	/opt/SEGGER/JLink_V610g/JLinkExe -device NRF52 -speed 4000 -if SWD
-
-# run RTT client (for that to work, `make jlinkexe` should run in parallel)
-rtt:
-	/opt/SEGGER/JLink_V610g/JLinkRTTClient
diff --git a/examples/nRF52/README.md b/examples/nRF52/README.md
index 5fde7fb2a..17df52279 100644
--- a/examples/nRF52/README.md
+++ b/examples/nRF52/README.md
@@ -1,38 +1,3 @@
-# nRF52 example project
-
-This example shows how to use mongoose on nRF52 boards.
-To run it you will need:
-
-- [nRF52 DK](https://www.nordicsemi.com/Products/Getting-started-with-the-nRF52-Development-Kit) dev board
-- Linux machine with 6lowpan module enabled. There are a few tutorials out there,
-  e.g [this one](https://devzone.nordicsemi.com/blogs/972/setting-up-ipv6-over-ble-using-nrf52-series-and-co/)
-- [Docker](https://docs.docker.com/engine/installation/linux/)
-
-## Building firmware and cleaning
-
-Nothing special: `make` and `make clean`.
-
-## Flashing
-
-`make flash`
-
-## Watch debug output
-
-This is a two-step process:
-
-- In a separate terminal, invoke `make jlinkexe`. It will run `JLinkExe`
-  utility, in which you'll need to type `connect`. You can actually do a lot of
-  things there, including halting and stopping the target, flashing firmware,
-  etc. You can type `?` to get the list of all available commands.
-- Now, in another terminal, invoke `make rtt`. It will start RTT client which
-  will connect to the running `JLinkExe` and will show logs from the device.
-
-## Debug with GDB
-
-This is a two-step process:
-
-- In a separate terminal, invoke `make gdbserver`. Note that `make jlinkexe`
-  and `make gdbserver`, unfortunately, cannot run sumultaneously.
-- Now, in another terminal, invoke `make gdb`. It will start GDB session which
-  will connect to the running GDB server.
+This is a Mongoose "Hello, world" that can be compiled under nRF IoT SDK.
 
+To make it work, you should download [nRF5 IoT SDK](http://developer.nordicsemi.com/nRF5_IoT_SDK/) and unpack it in current directory as `nrf5_iot_sdk`.
diff --git a/examples/nRF52/config/app_cfg.h b/examples/nRF52/config/app_cfg.h
deleted file mode 100644
index 364885d84..000000000
--- a/examples/nRF52/config/app_cfg.h
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2014-2016 Cesanta Software Limited
- * All rights reserved
- */
-
-#if !defined(COMMISSIONING_ENABLED) /* ifdef-ok */
-# define COMMISSIONING_ENABLED 0
-#endif
diff --git a/examples/nRF52/gcc_startup_nrf52.s b/examples/nRF52/gcc_startup_nrf52.s
deleted file mode 100644
index 6b8dec104..000000000
--- a/examples/nRF52/gcc_startup_nrf52.s
+++ /dev/null
@@ -1,490 +0,0 @@
-/* 
-Copyright (c) 2015, Nordic Semiconductor ASA
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
-  list of conditions and the following disclaimer.
-
-* Redistributions in binary form must reproduce the above copyright notice,
-  this list of conditions and the following disclaimer in the documentation
-  and/or other materials provided with the distribution.
-
-* Neither the name of Nordic Semiconductor ASA nor the names of its
-  contributors may be used to endorse or promote products derived from
-  this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-/* 
-NOTE: Template files (including this one) are application specific and therefore 
-expected to be copied into the application project folder prior to its use!
-*/
-
-    .syntax unified
-    .arch armv7e-m
-
-    .section .stack
-    .align 3
-#ifdef __STACK_SIZE
-    .equ    Stack_Size, __STACK_SIZE
-#else
-    .equ    Stack_Size, 4096
-#endif
-    .globl    __StackTop
-    .globl    __StackLimit
-__StackLimit:
-    .space    Stack_Size
-    .size __StackLimit, . - __StackLimit
-__StackTop:
-    .size __StackTop, . - __StackTop
-
-    .section .heap
-    .align 3
-#ifdef __HEAP_SIZE
-    .equ    Heap_Size, __HEAP_SIZE
-#else
-    .equ    Heap_Size, 4096
-#endif
-    .globl    __HeapBase
-    .globl    __HeapLimit
-__HeapBase:
-    .if    Heap_Size
-    .space    Heap_Size
-    .endif
-    .size __HeapBase, . - __HeapBase
-__HeapLimit:
-    .size __HeapLimit, . - __HeapLimit
-    
-    .section .Vectors
-    .align 2
-    .globl __Vectors
-__Vectors:
-    .long   __StackTop                  /* Top of Stack */
-    .long   Reset_Handler
-    .long   NMI_Handler
-    .long   HardFault_Handler
-    .long   MemoryManagement_Handler
-    .long   BusFault_Handler
-    .long   UsageFault_Handler
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   SVC_Handler
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   PendSV_Handler
-    .long   SysTick_Handler
-
-  /* External Interrupts */
-    .long   POWER_CLOCK_IRQHandler
-    .long   RADIO_IRQHandler
-    .long   UARTE0_UART0_IRQHandler
-    .long   SPIM0_SPIS0_TWIM0_TWIS0_SPI0_TWI0_IRQHandler
-    .long   SPIM1_SPIS1_TWIM1_TWIS1_SPI1_TWI1_IRQHandler
-    .long   NFCT_IRQHandler
-    .long   GPIOTE_IRQHandler
-    .long   SAADC_IRQHandler
-    .long   TIMER0_IRQHandler
-    .long   TIMER1_IRQHandler
-    .long   TIMER2_IRQHandler
-    .long   RTC0_IRQHandler
-    .long   TEMP_IRQHandler
-    .long   RNG_IRQHandler
-    .long   ECB_IRQHandler
-    .long   CCM_AAR_IRQHandler
-    .long   WDT_IRQHandler
-    .long   RTC1_IRQHandler
-    .long   QDEC_IRQHandler
-    .long   COMP_LPCOMP_IRQHandler
-    .long   SWI0_EGU0_IRQHandler
-    .long   SWI1_EGU1_IRQHandler
-    .long   SWI2_EGU2_IRQHandler
-    .long   SWI3_EGU3_IRQHandler
-    .long   SWI4_EGU4_IRQHandler
-    .long   SWI5_EGU5_IRQHandler
-    .long   TIMER3_IRQHandler
-    .long   TIMER4_IRQHandler
-    .long   PWM0_IRQHandler
-    .long   PDM_IRQHandler
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   MWU_IRQHandler
-    .long   PWM1_IRQHandler
-    .long   PWM2_IRQHandler
-    .long   SPIM2_SPIS2_SPI2_IRQHandler
-    .long   RTC2_IRQHandler
-    .long   I2S_IRQHandler
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-    .long   0                           /*Reserved */
-
-    .size    __Vectors, . - __Vectors
-
-/* Reset Handler */
-
-    .text
-    .thumb
-    .thumb_func
-    .align 1
-    .globl    Reset_Handler
-    .type    Reset_Handler, %function
-Reset_Handler:
-    .fnstart
-
-
-/*     Loop to copy data from read only memory to RAM. The ranges
- *      of copy from/to are specified by following symbols evaluated in 
- *      linker script.
- *      __etext: End of code section, i.e., begin of data sections to copy from.
- *      __data_start__/__data_end__: RAM address range that data should be
- *      copied to. Both must be aligned to 4 bytes boundary.  */
-
-    ldr    r1, =__etext
-    ldr    r2, =__data_start__
-    ldr    r3, =__data_end__
-
-    subs    r3, r2
-    ble     .LC0
-
-.LC1:
-    subs    r3, 4
-    ldr    r0, [r1,r3]
-    str    r0, [r2,r3]
-    bgt    .LC1
-.LC0:
-    
-    LDR     R0, =SystemInit
-    BLX     R0
-    LDR     R0, =_start
-    BX      R0
-
-    .pool
-    .cantunwind
-    .fnend
-    .size   Reset_Handler,.-Reset_Handler
-
-    .section ".text"
-
-
-/* Dummy Exception Handlers (infinite loops which can be modified) */
-
-    .weak   NMI_Handler
-    .type   NMI_Handler, %function
-NMI_Handler:
-    B       .
-    .size   NMI_Handler, . - NMI_Handler
-
-
-    .weak   HardFault_Handler
-    .type   HardFault_Handler, %function
-HardFault_Handler:
-    B       .
-    .size   HardFault_Handler, . - HardFault_Handler
-
-
-    .weak   MemoryManagement_Handler
-    .type   MemoryManagement_Handler, %function
-MemoryManagement_Handler:
-    B       .
-    .size   MemoryManagement_Handler, . - MemoryManagement_Handler
-
-
-    .weak   BusFault_Handler
-    .type   BusFault_Handler, %function
-BusFault_Handler:
-    B       .
-    .size   BusFault_Handler, . - BusFault_Handler
-
-
-    .weak   UsageFault_Handler
-    .type   UsageFault_Handler, %function
-UsageFault_Handler:
-    B       .
-    .size   UsageFault_Handler, . - UsageFault_Handler
-
-
-    .weak   SVC_Handler
-    .type   SVC_Handler, %function
-SVC_Handler:
-    B       .
-    .size   SVC_Handler, . - SVC_Handler
-
-
-    .weak   PendSV_Handler
-    .type   PendSV_Handler, %function
-PendSV_Handler:
-    B       .
-    .size   PendSV_Handler, . - PendSV_Handler
-
-
-    .weak   SysTick_Handler
-    .type   SysTick_Handler, %function
-SysTick_Handler:
-    B       .
-    .size   SysTick_Handler, . - SysTick_Handler
-
-
-/* IRQ Handlers */
-
-    .globl  Default_Handler
-    .type   Default_Handler, %function
-Default_Handler:
-    B       .
-    .size   Default_Handler, . - Default_Handler
-
-    .macro  IRQ handler
-    .weak   \handler
-    .set    \handler, Default_Handler
-    .endm
-
-    IRQ  POWER_CLOCK_IRQHandler
-    IRQ  RADIO_IRQHandler
-    IRQ  UARTE0_UART0_IRQHandler
-    IRQ  SPIM0_SPIS0_TWIM0_TWIS0_SPI0_TWI0_IRQHandler
-    IRQ  SPIM1_SPIS1_TWIM1_TWIS1_SPI1_TWI1_IRQHandler
-    IRQ  NFCT_IRQHandler
-    IRQ  GPIOTE_IRQHandler
-    IRQ  SAADC_IRQHandler
-    IRQ  TIMER0_IRQHandler
-    IRQ  TIMER1_IRQHandler
-    IRQ  TIMER2_IRQHandler
-    IRQ  RTC0_IRQHandler
-    IRQ  TEMP_IRQHandler
-    IRQ  RNG_IRQHandler
-    IRQ  ECB_IRQHandler
-    IRQ  CCM_AAR_IRQHandler
-    IRQ  WDT_IRQHandler
-    IRQ  RTC1_IRQHandler
-    IRQ  QDEC_IRQHandler
-    IRQ  COMP_LPCOMP_IRQHandler
-    IRQ  SWI0_EGU0_IRQHandler
-    IRQ  SWI1_EGU1_IRQHandler
-    IRQ  SWI2_EGU2_IRQHandler
-    IRQ  SWI3_EGU3_IRQHandler
-    IRQ  SWI4_EGU4_IRQHandler
-    IRQ  SWI5_EGU5_IRQHandler
-    IRQ  TIMER3_IRQHandler
-    IRQ  TIMER4_IRQHandler
-    IRQ  PWM0_IRQHandler
-    IRQ  PDM_IRQHandler
-    IRQ  MWU_IRQHandler
-    IRQ  PWM1_IRQHandler
-    IRQ  PWM2_IRQHandler
-    IRQ  SPIM2_SPIS2_SPI2_IRQHandler
-    IRQ  RTC2_IRQHandler
-    IRQ  I2S_IRQHandler
-
-  .end
diff --git a/examples/nRF52/bleconfig.c b/examples/nRF52/http/bleconfig.c
similarity index 96%
rename from examples/nRF52/bleconfig.c
rename to examples/nRF52/http/bleconfig.c
index dfc96ba04..3ad1bce5a 100644
--- a/examples/nRF52/bleconfig.c
+++ b/examples/nRF52/http/bleconfig.c
@@ -1,7 +1,3 @@
-/*
- * Copyright (c) 2014-2016 Cesanta Software Limited
- * All rights reserved
- */
 
 /* clang-format off */
 
@@ -35,12 +31,11 @@
 #include "ipv6_medium.h"
 #include "SEGGER_RTT.h"
 #include "myboard.h"
-#include "app_cfg.h"
 
 #define SCHED_MAX_EVENT_DATA_SIZE           128                                                     /**< Maximum size of scheduler events. */
 #define SCHED_QUEUE_SIZE                    12                                                      /**< Maximum number of events in the scheduler queue. */
 
-#if COMMISSIONING_ENABLED
+#ifdef COMMISSIONING_ENABLED
 #define ERASE_BUTTON_PIN_NO                 BSP_BUTTON_3                                            /**< Button used to erase commissioning settings. */
 #endif // COMMISSIONING_ENABLED
 
@@ -71,7 +66,7 @@ static ipv6_medium_instance_t               m_ipv6_medium;
 static struct tcp_pcb                     * mp_tcp_port;                                            /**< TCP Port to listen on. */
 static tcp_state_t                          m_tcp_state;                                            /**< TCP State information. */
 
-#if COMMISSIONING_ENABLED
+#ifdef COMMISSIONING_ENABLED
 static bool                                 m_power_off_on_failure = false;
 static bool                                 m_identity_mode_active;
 #endif // COMMISSIONING_ENABLED
@@ -79,7 +74,7 @@ static bool                                 m_identity_mode_active;
 /**@brief Function to handle interface up event. */
 void nrf_driver_interface_up(void)
 {
-#if COMMISSIONING_ENABLED
+#ifdef COMMISSIONING_ENABLED
   commissioning_joining_mode_timer_ctrl(JOINING_MODE_TIMER_STOP_RESET);
 #endif // COMMISSIONING_ENABLED
 
@@ -97,7 +92,7 @@ void nrf_driver_interface_up(void)
 /**@brief Function to handle interface down event. */
 void nrf_driver_interface_down(void)
 {
-#if COMMISSIONING_ENABLED
+#ifdef COMMISSIONING_ENABLED
   commissioning_joining_mode_timer_ctrl(JOINING_MODE_TIMER_START);
 #endif // COMMISSIONING_ENABLED
 
@@ -156,7 +151,7 @@ static void leds_init(void)
   LEDS_OFF(ALL_APP_LED);
 }
 
-#if COMMISSIONING_ENABLED
+#ifdef COMMISSIONING_ENABLED
 /**@brief Timer callback used for controlling board LEDs to represent application state.
  *
  */
@@ -211,7 +206,7 @@ static void iot_timer_init(void)
   static const iot_timer_client_t list_of_clients[] =
   {
     {system_timer_callback,   LWIP_SYS_TICK_MS},
-#if COMMISSIONING_ENABLED
+#ifdef COMMISSIONING_ENABLED
     {blink_timeout_handler,   LED_BLINK_INTERVAL_MS},
     {commissioning_time_tick, SEC_TO_MILLISEC(COMMISSIONING_TICK_INTERVAL_SEC)}
 #endif // COMMISSIONING_ENABLED
@@ -258,7 +253,7 @@ static void ip_stack_init(void)
   APP_ERROR_CHECK(err_code);
 }
 
-#if COMMISSIONING_ENABLED
+#ifdef COMMISSIONING_ENABLED
 /**@brief Function for handling button events.
  *
  * @param[in]   pin_no         The pin number of the button pressed.
@@ -286,7 +281,7 @@ static void buttons_init(void)
 
   static app_button_cfg_t buttons[] =
   {
-#if COMMISSIONING_ENABLED
+#ifdef COMMISSIONING_ENABLED
     {ERASE_BUTTON_PIN_NO, false, BUTTON_PULL, button_event_handler}
 #endif // COMMISSIONING_ENABLED
   };
@@ -340,7 +335,7 @@ static void on_ipv6_medium_error(ipv6_medium_error_t * p_ipv6_medium_error)
   // Do something.
 }
 
-#if COMMISSIONING_ENABLED
+#ifdef COMMISSIONING_ENABLED
 void commissioning_id_mode_cb(mode_control_cmd_t control_command)
 {
   switch (control_command)
@@ -386,7 +381,7 @@ void bleconfig_init(void) {
   timers_init();
   iot_timer_init();
 
-#if COMMISSIONING_ENABLED
+#ifdef COMMISSIONING_ENABLED
   err_code = pstorage_init();
   APP_ERROR_CHECK(err_code);
 
@@ -398,7 +393,7 @@ void bleconfig_init(void) {
   ipv6_medium_init_params.ipv6_medium_evt_handler    = on_ipv6_medium_evt;
   ipv6_medium_init_params.ipv6_medium_error_handler  = on_ipv6_medium_error;
   ipv6_medium_init_params.use_scheduler              = true;
-#if COMMISSIONING_ENABLED
+#ifdef COMMISSIONING_ENABLED
   ipv6_medium_init_params.commissioning_id_mode_cb   = commissioning_id_mode_cb;
   ipv6_medium_init_params.commissioning_power_off_cb = commissioning_power_off_cb;
 #endif // COMMISSIONING_ENABLED
diff --git a/examples/nRF52/bleconfig.h b/examples/nRF52/http/bleconfig.h
similarity index 100%
rename from examples/nRF52/bleconfig.h
rename to examples/nRF52/http/bleconfig.h
diff --git a/examples/nRF52/http/boards/pca10040/arm5_no_packs/iot_lwip_tcp_server_pca10040.uvoptx b/examples/nRF52/http/boards/pca10040/arm5_no_packs/iot_lwip_tcp_server_pca10040.uvoptx
new file mode 100644
index 000000000..baf7a8aee
--- /dev/null
+++ b/examples/nRF52/http/boards/pca10040/arm5_no_packs/iot_lwip_tcp_server_pca10040.uvoptx
@@ -0,0 +1,1228 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<ProjectOpt xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_optx.xsd">
+
+  <SchemaVersion>1.0</SchemaVersion>
+
+  <Header>### uVision Project, (C) Keil Software</Header>
+
+  <Extensions>
+    <cExt>*.c</cExt>
+    <aExt>*.s*; *.src; *.a*</aExt>
+    <oExt>*.obj</oExt>
+    <lExt>*.lib</lExt>
+    <tExt>*.txt; *.h; *.inc</tExt>
+    <pExt>*.plm</pExt>
+    <CppX>*.cpp</CppX>
+  </Extensions>
+
+  <DaveTm>
+    <dwLowDateTime>0</dwLowDateTime>
+    <dwHighDateTime>0</dwHighDateTime>
+  </DaveTm>
+
+  <Target>
+    <TargetName>nrf52832_xxaa_s1xx_iot</TargetName>
+    <ToolsetNumber>0x4</ToolsetNumber>
+    <ToolsetName>ARM-ADS</ToolsetName>
+    <TargetOption>
+      <CLKADS>64000000</CLKADS>
+      <OPTTT>
+        <gFlags>1</gFlags>
+        <BeepAtEnd>1</BeepAtEnd>
+        <RunSim>0</RunSim>
+        <RunTarget>1</RunTarget>
+      </OPTTT>
+      <OPTHX>
+        <HexSelection>1</HexSelection>
+        <FlashByte>65535</FlashByte>
+        <HexRangeLowAddress>0</HexRangeLowAddress>
+        <HexRangeHighAddress>0</HexRangeHighAddress>
+        <HexOffset>0</HexOffset>
+      </OPTHX>
+      <OPTLEX>
+        <PageWidth>79</PageWidth>
+        <PageLength>66</PageLength>
+        <TabStop>8</TabStop>
+        <ListingPath>.\_build\</ListingPath>
+      </OPTLEX>
+      <ListingPage>
+        <CreateCListing>1</CreateCListing>
+        <CreateAListing>1</CreateAListing>
+        <CreateLListing>1</CreateLListing>
+        <CreateIListing>0</CreateIListing>
+        <AsmCond>1</AsmCond>
+        <AsmSymb>1</AsmSymb>
+        <AsmXref>0</AsmXref>
+        <CCond>1</CCond>
+        <CCode>0</CCode>
+        <CListInc>0</CListInc>
+        <CSymb>0</CSymb>
+        <LinkerCodeListing>0</LinkerCodeListing>
+      </ListingPage>
+      <OPTXL>
+        <LMap>1</LMap>
+        <LComments>1</LComments>
+        <LGenerateSymbols>1</LGenerateSymbols>
+        <LLibSym>1</LLibSym>
+        <LLines>1</LLines>
+        <LLocSym>1</LLocSym>
+        <LPubSym>1</LPubSym>
+        <LXref>0</LXref>
+        <LExpSel>0</LExpSel>
+      </OPTXL>
+      <OPTFL>
+        <tvExp>1</tvExp>
+        <tvExpOptDlg>0</tvExpOptDlg>
+        <IsCurrentTarget>1</IsCurrentTarget>
+      </OPTFL>
+      <CpuCode>5</CpuCode>
+      <DebugOpt>
+        <uSim>0</uSim>
+        <uTrg>1</uTrg>
+        <sLdApp>1</sLdApp>
+        <sGomain>1</sGomain>
+        <sRbreak>1</sRbreak>
+        <sRwatch>1</sRwatch>
+        <sRmem>1</sRmem>
+        <sRfunc>1</sRfunc>
+        <sRbox>1</sRbox>
+        <tLdApp>1</tLdApp>
+        <tGomain>1</tGomain>
+        <tRbreak>1</tRbreak>
+        <tRwatch>1</tRwatch>
+        <tRmem>1</tRmem>
+        <tRfunc>0</tRfunc>
+        <tRbox>1</tRbox>
+        <tRtrace>0</tRtrace>
+        <sRSysVw>1</sRSysVw>
+        <tRSysVw>1</tRSysVw>
+        <sRunDeb>0</sRunDeb>
+        <sLrtime>0</sLrtime>
+        <nTsel>6</nTsel>
+        <sDll></sDll>
+        <sDllPa></sDllPa>
+        <sDlgDll></sDlgDll>
+        <sDlgPa></sDlgPa>
+        <sIfile></sIfile>
+        <tDll></tDll>
+        <tDllPa></tDllPa>
+        <tDlgDll></tDlgDll>
+        <tDlgPa></tDlgPa>
+        <tIfile></tIfile>
+        <pMon>Segger\JL2CM3.dll</pMon>
+      </DebugOpt>
+      <TargetDriverDllRegistry>
+        <SetRegEntry>
+          <Number>0</Number>
+          <Key>DLGUARM</Key>
+          <Name></Name>
+        </SetRegEntry>
+        <SetRegEntry>
+          <Number>0</Number>
+          <Key>DLGTARM</Key>
+          <Name>(1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0)(1012=-1,-1,-1,-1,0)</Name>
+        </SetRegEntry>
+        <SetRegEntry>
+          <Number>0</Number>
+          <Key>ARMDBGFLAGS</Key>
+          <Name></Name>
+        </SetRegEntry>
+        <SetRegEntry>
+          <Number>0</Number>
+          <Key>JL2CM3</Key>
+          <Name>-U682204544 -O78 -S0 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO15 -FD20000000 -FC2000 -FN2 -FF0nrf52xxx.flm -FS00 -FL0200000 -FP0($$Device:nRF52832_xxAA$Flash\nrf52xxx.flm) -FF1nrf52xxx_uicr.flm -FS110001000 -FL11000 -FP1($$Device:nRF52832_xxAA$Flash\nrf52xxx_uicr.flm)</Name>
+        </SetRegEntry>
+        <SetRegEntry>
+          <Number>0</Number>
+          <Key>UL2CM3</Key>
+          <Name>UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0nrf52xxx -FS00 -FL0200000 -FP0($$Device:nRF52832_xxAA$Flash\nrf52xxx))</Name>
+        </SetRegEntry>
+      </TargetDriverDllRegistry>
+      <Breakpoint>
+        <Bp>
+          <Number>0</Number>
+          <Type>0</Type>
+          <LineNumber>23</LineNumber>
+          <EnabledFlag>1</EnabledFlag>
+          <Address>152422</Address>
+          <ByteObject>0</ByteObject>
+          <HtxType>0</HtxType>
+          <ManyObjects>0</ManyObjects>
+          <SizeOfObject>0</SizeOfObject>
+          <BreakByAccess>0</BreakByAccess>
+          <BreakIfRCount>1</BreakIfRCount>
+          <Filename>..\..\..\main.c</Filename>
+          <ExecCommand></ExecCommand>
+          <Expression></Expression>
+        </Bp>
+      </Breakpoint>
+      <Tracepoint>
+        <THDelay>0</THDelay>
+      </Tracepoint>
+      <DebugFlag>
+        <trace>0</trace>
+        <periodic>0</periodic>
+        <aLwin>1</aLwin>
+        <aCover>0</aCover>
+        <aSer1>0</aSer1>
+        <aSer2>0</aSer2>
+        <aPa>0</aPa>
+        <viewmode>1</viewmode>
+        <vrSel>0</vrSel>
+        <aSym>0</aSym>
+        <aTbox>0</aTbox>
+        <AscS1>0</AscS1>
+        <AscS2>0</AscS2>
+        <AscS3>0</AscS3>
+        <aSer3>0</aSer3>
+        <eProf>0</eProf>
+        <aLa>0</aLa>
+        <aPa1>0</aPa1>
+        <AscS4>0</AscS4>
+        <aSer4>0</aSer4>
+        <StkLoc>0</StkLoc>
+        <TrcWin>0</TrcWin>
+        <newCpu>0</newCpu>
+        <uProt>0</uProt>
+      </DebugFlag>
+      <LintExecutable></LintExecutable>
+      <LintConfigFile></LintConfigFile>
+    </TargetOption>
+  </Target>
+
+  <Group>
+    <GroupName>Application</GroupName>
+    <tvExp>1</tvExp>
+    <tvExpOptDlg>0</tvExpOptDlg>
+    <cbSel>0</cbSel>
+    <RteFlg>0</RteFlg>
+    <File>
+      <GroupNumber>1</GroupNumber>
+      <FileNumber>1</FileNumber>
+      <FileType>1</FileType>
+      <tvExp>0</tvExp>
+      <Focus>0</Focus>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\..\..\main.c</PathWithFileName>
+      <FilenameWithoutPath>main.c</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
+    <File>
+      <GroupNumber>1</GroupNumber>
+      <FileNumber>2</FileNumber>
+      <FileType>5</FileType>
+      <tvExp>0</tvExp>
+      <Focus>0</Focus>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\..\..\config\sdk_config.h</PathWithFileName>
+      <FilenameWithoutPath>sdk_config.h</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
+    <File>
+      <GroupNumber>1</GroupNumber>
+      <FileNumber>3</FileNumber>
+      <FileType>1</FileType>
+      <tvExp>0</tvExp>
+      <Focus>0</Focus>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\..\..\bleconfig.c</PathWithFileName>
+      <FilenameWithoutPath>bleconfig.c</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
+    <File>
+      <GroupNumber>1</GroupNumber>
+      <FileNumber>4</FileNumber>
+      <FileType>5</FileType>
+      <tvExp>0</tvExp>
+      <Focus>0</Focus>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\..\..\bleconfig.h</PathWithFileName>
+      <FilenameWithoutPath>bleconfig.h</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
+    <File>
+      <GroupNumber>1</GroupNumber>
+      <FileNumber>5</FileNumber>
+      <FileType>5</FileType>
+      <tvExp>0</tvExp>
+      <Focus>0</Focus>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\..\..\myboard.h</PathWithFileName>
+      <FilenameWithoutPath>myboard.h</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
+  </Group>
+
+  <Group>
+    <GroupName>Board Support</GroupName>
+    <tvExp>0</tvExp>
+    <tvExpOptDlg>0</tvExpOptDlg>
+    <cbSel>0</cbSel>
+    <RteFlg>0</RteFlg>
+    <File>
+      <GroupNumber>2</GroupNumber>
+      <FileNumber>6</FileNumber>
+      <FileType>1</FileType>
+      <tvExp>0</tvExp>
+      <Focus>0</Focus>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\..\..\nrf5_iot_sdk\examples\bsp\bsp.c</PathWithFileName>
+      <FilenameWithoutPath>bsp.c</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
+  </Group>
+
+  <Group>
+    <GroupName>Documentation</GroupName>
+    <tvExp>0</tvExp>
+    <tvExpOptDlg>0</tvExpOptDlg>
+    <cbSel>0</cbSel>
+    <RteFlg>0</RteFlg>
+    <File>
+      <GroupNumber>3</GroupNumber>
+      <FileNumber>7</FileNumber>
+      <FileType>5</FileType>
+      <tvExp>0</tvExp>
+      <Focus>0</Focus>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\..\..\Abstract.txt</PathWithFileName>
+      <FilenameWithoutPath>Abstract.txt</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
+    <File>
+      <GroupNumber>3</GroupNumber>
+      <FileNumber>8</FileNumber>
+      <FileType>5</FileType>
+      <tvExp>0</tvExp>
+      <Focus>0</Focus>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\..\..\license.txt</PathWithFileName>
+      <FilenameWithoutPath>license.txt</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
+  </Group>
+
+  <Group>
+    <GroupName>lwIP</GroupName>
+    <tvExp>0</tvExp>
+    <tvExpOptDlg>0</tvExpOptDlg>
+    <cbSel>0</cbSel>
+    <RteFlg>0</RteFlg>
+    <File>
+      <GroupNumber>4</GroupNumber>
+      <FileNumber>9</FileNumber>
+      <FileType>1</FileType>
+      <tvExp>0</tvExp>
+      <Focus>0</Focus>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\..\..\nrf5_iot_sdk\external\lwip\src\core\def.c</PathWithFileName>
+      <FilenameWithoutPath>def.c</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
+    <File>
+      <GroupNumber>4</GroupNumber>
+      <FileNumber>10</FileNumber>
+      <FileType>1</FileType>
+      <tvExp>0</tvExp>
+      <Focus>0</Focus>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\..\..\nrf5_iot_sdk\external\lwip\src\core\dhcp.c</PathWithFileName>
+      <FilenameWithoutPath>dhcp.c</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
+    <File>
+      <GroupNumber>4</GroupNumber>
+      <FileNumber>11</FileNumber>
+      <FileType>1</FileType>
+      <tvExp>0</tvExp>
+      <Focus>0</Focus>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\..\..\nrf5_iot_sdk\external\lwip\src\core\ipv6\dhcp6.c</PathWithFileName>
+      <FilenameWithoutPath>dhcp6.c</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
+    <File>
+      <GroupNumber>4</GroupNumber>
+      <FileNumber>12</FileNumber>
+      <FileType>1</FileType>
+      <tvExp>0</tvExp>
+      <Focus>0</Focus>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\..\..\nrf5_iot_sdk\external\lwip\src\core\dns.c</PathWithFileName>
+      <FilenameWithoutPath>dns.c</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
+    <File>
+      <GroupNumber>4</GroupNumber>
+      <FileNumber>13</FileNumber>
+      <FileType>1</FileType>
+      <tvExp>0</tvExp>
+      <Focus>0</Focus>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\..\..\nrf5_iot_sdk\external\lwip\src\core\ipv4\icmp.c</PathWithFileName>
+      <FilenameWithoutPath>icmp.c</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
+    <File>
+      <GroupNumber>4</GroupNumber>
+      <FileNumber>14</FileNumber>
+      <FileType>1</FileType>
+      <tvExp>0</tvExp>
+      <Focus>0</Focus>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\..\..\nrf5_iot_sdk\external\lwip\src\core\ipv6\icmp6.c</PathWithFileName>
+      <FilenameWithoutPath>icmp6.c</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
+    <File>
+      <GroupNumber>4</GroupNumber>
+      <FileNumber>15</FileNumber>
+      <FileType>1</FileType>
+      <tvExp>0</tvExp>
+      <Focus>0</Focus>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\..\..\nrf5_iot_sdk\external\lwip\src\core\ipv6\inet6.c</PathWithFileName>
+      <FilenameWithoutPath>inet6.c</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
+    <File>
+      <GroupNumber>4</GroupNumber>
+      <FileNumber>16</FileNumber>
+      <FileType>1</FileType>
+      <tvExp>0</tvExp>
+      <Focus>0</Focus>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\..\..\nrf5_iot_sdk\external\lwip\src\core\inet_chksum.c</PathWithFileName>
+      <FilenameWithoutPath>inet_chksum.c</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
+    <File>
+      <GroupNumber>4</GroupNumber>
+      <FileNumber>17</FileNumber>
+      <FileType>1</FileType>
+      <tvExp>0</tvExp>
+      <Focus>0</Focus>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\..\..\nrf5_iot_sdk\external\lwip\src\core\init.c</PathWithFileName>
+      <FilenameWithoutPath>init.c</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
+    <File>
+      <GroupNumber>4</GroupNumber>
+      <FileNumber>18</FileNumber>
+      <FileType>1</FileType>
+      <tvExp>0</tvExp>
+      <Focus>0</Focus>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\..\..\nrf5_iot_sdk\external\lwip\src\core\ipv4\ip4.c</PathWithFileName>
+      <FilenameWithoutPath>ip4.c</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
+    <File>
+      <GroupNumber>4</GroupNumber>
+      <FileNumber>19</FileNumber>
+      <FileType>1</FileType>
+      <tvExp>0</tvExp>
+      <Focus>0</Focus>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\..\..\nrf5_iot_sdk\external\lwip\src\core\ipv4\ip4_addr.c</PathWithFileName>
+      <FilenameWithoutPath>ip4_addr.c</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
+    <File>
+      <GroupNumber>4</GroupNumber>
+      <FileNumber>20</FileNumber>
+      <FileType>1</FileType>
+      <tvExp>0</tvExp>
+      <Focus>0</Focus>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\..\..\nrf5_iot_sdk\external\lwip\src\core\ipv6\ip6.c</PathWithFileName>
+      <FilenameWithoutPath>ip6.c</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
+    <File>
+      <GroupNumber>4</GroupNumber>
+      <FileNumber>21</FileNumber>
+      <FileType>1</FileType>
+      <tvExp>0</tvExp>
+      <Focus>0</Focus>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\..\..\nrf5_iot_sdk\external\lwip\src\core\ipv6\ip6_addr.c</PathWithFileName>
+      <FilenameWithoutPath>ip6_addr.c</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
+    <File>
+      <GroupNumber>4</GroupNumber>
+      <FileNumber>22</FileNumber>
+      <FileType>1</FileType>
+      <tvExp>0</tvExp>
+      <Focus>0</Focus>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\..\..\nrf5_iot_sdk\external\lwip\src\core\memp.c</PathWithFileName>
+      <FilenameWithoutPath>memp.c</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
+    <File>
+      <GroupNumber>4</GroupNumber>
+      <FileNumber>23</FileNumber>
+      <FileType>1</FileType>
+      <tvExp>0</tvExp>
+      <Focus>0</Focus>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\..\..\nrf5_iot_sdk\external\lwip\src\core\ipv6\mld6.c</PathWithFileName>
+      <FilenameWithoutPath>mld6.c</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
+    <File>
+      <GroupNumber>4</GroupNumber>
+      <FileNumber>24</FileNumber>
+      <FileType>1</FileType>
+      <tvExp>0</tvExp>
+      <Focus>0</Focus>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\..\..\nrf5_iot_sdk\external\lwip\src\core\ipv6\nd6.c</PathWithFileName>
+      <FilenameWithoutPath>nd6.c</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
+    <File>
+      <GroupNumber>4</GroupNumber>
+      <FileNumber>25</FileNumber>
+      <FileType>1</FileType>
+      <tvExp>0</tvExp>
+      <Focus>0</Focus>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\..\..\nrf5_iot_sdk\external\lwip\src\core\netif.c</PathWithFileName>
+      <FilenameWithoutPath>netif.c</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
+    <File>
+      <GroupNumber>4</GroupNumber>
+      <FileNumber>26</FileNumber>
+      <FileType>1</FileType>
+      <tvExp>0</tvExp>
+      <Focus>0</Focus>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\..\..\nrf5_iot_sdk\external\lwip\src\port\nrf_platform_port.c</PathWithFileName>
+      <FilenameWithoutPath>nrf_platform_port.c</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
+    <File>
+      <GroupNumber>4</GroupNumber>
+      <FileNumber>27</FileNumber>
+      <FileType>1</FileType>
+      <tvExp>0</tvExp>
+      <Focus>0</Focus>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\..\..\nrf5_iot_sdk\external\lwip\src\core\pbuf.c</PathWithFileName>
+      <FilenameWithoutPath>pbuf.c</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
+    <File>
+      <GroupNumber>4</GroupNumber>
+      <FileNumber>28</FileNumber>
+      <FileType>1</FileType>
+      <tvExp>0</tvExp>
+      <Focus>0</Focus>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\..\..\nrf5_iot_sdk\external\lwip\src\core\raw.c</PathWithFileName>
+      <FilenameWithoutPath>raw.c</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
+    <File>
+      <GroupNumber>4</GroupNumber>
+      <FileNumber>29</FileNumber>
+      <FileType>1</FileType>
+      <tvExp>0</tvExp>
+      <Focus>0</Focus>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\..\..\nrf5_iot_sdk\external\lwip\src\core\sys.c</PathWithFileName>
+      <FilenameWithoutPath>sys.c</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
+    <File>
+      <GroupNumber>4</GroupNumber>
+      <FileNumber>30</FileNumber>
+      <FileType>1</FileType>
+      <tvExp>0</tvExp>
+      <Focus>0</Focus>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\..\..\nrf5_iot_sdk\external\lwip\src\core\tcp.c</PathWithFileName>
+      <FilenameWithoutPath>tcp.c</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
+    <File>
+      <GroupNumber>4</GroupNumber>
+      <FileNumber>31</FileNumber>
+      <FileType>1</FileType>
+      <tvExp>0</tvExp>
+      <Focus>0</Focus>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\..\..\nrf5_iot_sdk\external\lwip\src\core\tcp_in.c</PathWithFileName>
+      <FilenameWithoutPath>tcp_in.c</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
+    <File>
+      <GroupNumber>4</GroupNumber>
+      <FileNumber>32</FileNumber>
+      <FileType>1</FileType>
+      <tvExp>0</tvExp>
+      <Focus>0</Focus>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\..\..\nrf5_iot_sdk\external\lwip\src\core\tcp_out.c</PathWithFileName>
+      <FilenameWithoutPath>tcp_out.c</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
+    <File>
+      <GroupNumber>4</GroupNumber>
+      <FileNumber>33</FileNumber>
+      <FileType>1</FileType>
+      <tvExp>0</tvExp>
+      <Focus>0</Focus>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\..\..\nrf5_iot_sdk\external\lwip\src\core\timers.c</PathWithFileName>
+      <FilenameWithoutPath>timers.c</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
+    <File>
+      <GroupNumber>4</GroupNumber>
+      <FileNumber>34</FileNumber>
+      <FileType>1</FileType>
+      <tvExp>0</tvExp>
+      <Focus>0</Focus>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\..\..\nrf5_iot_sdk\external\lwip\src\core\udp.c</PathWithFileName>
+      <FilenameWithoutPath>udp.c</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
+  </Group>
+
+  <Group>
+    <GroupName>nRF_BLE</GroupName>
+    <tvExp>0</tvExp>
+    <tvExpOptDlg>0</tvExpOptDlg>
+    <cbSel>0</cbSel>
+    <RteFlg>0</RteFlg>
+    <File>
+      <GroupNumber>5</GroupNumber>
+      <FileNumber>35</FileNumber>
+      <FileType>1</FileType>
+      <tvExp>0</tvExp>
+      <Focus>0</Focus>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\..\..\nrf5_iot_sdk\components\ble\common\ble_advdata.c</PathWithFileName>
+      <FilenameWithoutPath>ble_advdata.c</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
+    <File>
+      <GroupNumber>5</GroupNumber>
+      <FileNumber>36</FileNumber>
+      <FileType>1</FileType>
+      <tvExp>0</tvExp>
+      <Focus>0</Focus>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\..\..\nrf5_iot_sdk\components\ble\common\ble_conn_params.c</PathWithFileName>
+      <FilenameWithoutPath>ble_conn_params.c</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
+    <File>
+      <GroupNumber>5</GroupNumber>
+      <FileNumber>37</FileNumber>
+      <FileType>1</FileType>
+      <tvExp>0</tvExp>
+      <Focus>0</Focus>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\..\..\nrf5_iot_sdk\components\ble\common\ble_srv_common.c</PathWithFileName>
+      <FilenameWithoutPath>ble_srv_common.c</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
+  </Group>
+
+  <Group>
+    <GroupName>nRF_Drivers</GroupName>
+    <tvExp>0</tvExp>
+    <tvExpOptDlg>0</tvExpOptDlg>
+    <cbSel>0</cbSel>
+    <RteFlg>0</RteFlg>
+    <File>
+      <GroupNumber>6</GroupNumber>
+      <FileNumber>38</FileNumber>
+      <FileType>1</FileType>
+      <tvExp>0</tvExp>
+      <Focus>0</Focus>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\..\..\nrf5_iot_sdk\components\libraries\uart\app_uart_fifo.c</PathWithFileName>
+      <FilenameWithoutPath>app_uart_fifo.c</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
+    <File>
+      <GroupNumber>6</GroupNumber>
+      <FileNumber>39</FileNumber>
+      <FileType>1</FileType>
+      <tvExp>0</tvExp>
+      <Focus>0</Focus>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\..\..\nrf5_iot_sdk\components\drivers_nrf\delay\nrf_delay.c</PathWithFileName>
+      <FilenameWithoutPath>nrf_delay.c</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
+    <File>
+      <GroupNumber>6</GroupNumber>
+      <FileNumber>40</FileNumber>
+      <FileType>1</FileType>
+      <tvExp>0</tvExp>
+      <Focus>0</Focus>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\..\..\nrf5_iot_sdk\components\drivers_nrf\common\nrf_drv_common.c</PathWithFileName>
+      <FilenameWithoutPath>nrf_drv_common.c</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
+    <File>
+      <GroupNumber>6</GroupNumber>
+      <FileNumber>41</FileNumber>
+      <FileType>1</FileType>
+      <tvExp>0</tvExp>
+      <Focus>0</Focus>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\..\..\nrf5_iot_sdk\components\drivers_nrf\gpiote\nrf_drv_gpiote.c</PathWithFileName>
+      <FilenameWithoutPath>nrf_drv_gpiote.c</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
+    <File>
+      <GroupNumber>6</GroupNumber>
+      <FileNumber>42</FileNumber>
+      <FileType>1</FileType>
+      <tvExp>0</tvExp>
+      <Focus>0</Focus>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\..\..\nrf5_iot_sdk\components\drivers_nrf\uart\nrf_drv_uart.c</PathWithFileName>
+      <FilenameWithoutPath>nrf_drv_uart.c</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
+    <File>
+      <GroupNumber>6</GroupNumber>
+      <FileNumber>43</FileNumber>
+      <FileType>1</FileType>
+      <tvExp>0</tvExp>
+      <Focus>0</Focus>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\..\..\nrf5_iot_sdk\components\drivers_nrf\pstorage\pstorage.c</PathWithFileName>
+      <FilenameWithoutPath>pstorage.c</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
+  </Group>
+
+  <Group>
+    <GroupName>nRF_IoT</GroupName>
+    <tvExp>0</tvExp>
+    <tvExpOptDlg>0</tvExpOptDlg>
+    <cbSel>0</cbSel>
+    <RteFlg>0</RteFlg>
+    <File>
+      <GroupNumber>7</GroupNumber>
+      <FileNumber>44</FileNumber>
+      <FileType>4</FileType>
+      <tvExp>0</tvExp>
+      <Focus>0</Focus>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\..\..\nrf5_iot_sdk\components\iot\ble_6lowpan\lib\ble_6lowpan.lib</PathWithFileName>
+      <FilenameWithoutPath>ble_6lowpan.lib</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
+    <File>
+      <GroupNumber>7</GroupNumber>
+      <FileNumber>45</FileNumber>
+      <FileType>1</FileType>
+      <tvExp>0</tvExp>
+      <Focus>0</Focus>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\..\..\nrf5_iot_sdk\components\iot\errno\errno.c</PathWithFileName>
+      <FilenameWithoutPath>errno.c</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
+    <File>
+      <GroupNumber>7</GroupNumber>
+      <FileNumber>46</FileNumber>
+      <FileType>1</FileType>
+      <tvExp>0</tvExp>
+      <Focus>0</Focus>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\..\..\nrf5_iot_sdk\components\iot\context_manager\iot_context_manager.c</PathWithFileName>
+      <FilenameWithoutPath>iot_context_manager.c</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
+    <File>
+      <GroupNumber>7</GroupNumber>
+      <FileNumber>47</FileNumber>
+      <FileType>1</FileType>
+      <tvExp>0</tvExp>
+      <Focus>0</Focus>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\..\..\nrf5_iot_sdk\components\iot\iot_timer\iot_timer.c</PathWithFileName>
+      <FilenameWithoutPath>iot_timer.c</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
+    <File>
+      <GroupNumber>7</GroupNumber>
+      <FileNumber>48</FileNumber>
+      <FileType>1</FileType>
+      <tvExp>0</tvExp>
+      <Focus>0</Focus>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\..\..\nrf5_iot_sdk\components\iot\medium\ipv6_medium_ble.c</PathWithFileName>
+      <FilenameWithoutPath>ipv6_medium_ble.c</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
+    <File>
+      <GroupNumber>7</GroupNumber>
+      <FileNumber>49</FileNumber>
+      <FileType>1</FileType>
+      <tvExp>0</tvExp>
+      <Focus>0</Focus>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\..\..\nrf5_iot_sdk\components\iot\common\ipv6_parse.c</PathWithFileName>
+      <FilenameWithoutPath>ipv6_parse.c</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
+  </Group>
+
+  <Group>
+    <GroupName>nRF_IoT_Commissioning</GroupName>
+    <tvExp>0</tvExp>
+    <tvExpOptDlg>0</tvExpOptDlg>
+    <cbSel>0</cbSel>
+    <RteFlg>0</RteFlg>
+    <File>
+      <GroupNumber>8</GroupNumber>
+      <FileNumber>50</FileNumber>
+      <FileType>1</FileType>
+      <tvExp>0</tvExp>
+      <Focus>0</Focus>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\..\..\nrf5_iot_sdk\components\iot\medium\ble_ncfgs\ble_ncfgs.c</PathWithFileName>
+      <FilenameWithoutPath>ble_ncfgs.c</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
+    <File>
+      <GroupNumber>8</GroupNumber>
+      <FileNumber>51</FileNumber>
+      <FileType>1</FileType>
+      <tvExp>0</tvExp>
+      <Focus>0</Focus>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\..\..\nrf5_iot_sdk\components\iot\medium\commissioning\commissioning.c</PathWithFileName>
+      <FilenameWithoutPath>commissioning.c</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
+  </Group>
+
+  <Group>
+    <GroupName>nRF_Libraries</GroupName>
+    <tvExp>0</tvExp>
+    <tvExpOptDlg>0</tvExpOptDlg>
+    <cbSel>0</cbSel>
+    <RteFlg>0</RteFlg>
+    <File>
+      <GroupNumber>9</GroupNumber>
+      <FileNumber>52</FileNumber>
+      <FileType>1</FileType>
+      <tvExp>0</tvExp>
+      <Focus>0</Focus>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\..\..\nrf5_iot_sdk\components\libraries\button\app_button.c</PathWithFileName>
+      <FilenameWithoutPath>app_button.c</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
+    <File>
+      <GroupNumber>9</GroupNumber>
+      <FileNumber>53</FileNumber>
+      <FileType>1</FileType>
+      <tvExp>0</tvExp>
+      <Focus>0</Focus>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\..\..\nrf5_iot_sdk\components\libraries\util\app_error.c</PathWithFileName>
+      <FilenameWithoutPath>app_error.c</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
+    <File>
+      <GroupNumber>9</GroupNumber>
+      <FileNumber>54</FileNumber>
+      <FileType>1</FileType>
+      <tvExp>0</tvExp>
+      <Focus>0</Focus>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\..\..\nrf5_iot_sdk\components\libraries\fifo\app_fifo.c</PathWithFileName>
+      <FilenameWithoutPath>app_fifo.c</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
+    <File>
+      <GroupNumber>9</GroupNumber>
+      <FileNumber>55</FileNumber>
+      <FileType>1</FileType>
+      <tvExp>0</tvExp>
+      <Focus>0</Focus>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\..\..\nrf5_iot_sdk\components\libraries\scheduler\app_scheduler.c</PathWithFileName>
+      <FilenameWithoutPath>app_scheduler.c</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
+    <File>
+      <GroupNumber>9</GroupNumber>
+      <FileNumber>56</FileNumber>
+      <FileType>1</FileType>
+      <tvExp>0</tvExp>
+      <Focus>0</Focus>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\..\..\nrf5_iot_sdk\components\libraries\timer\app_timer.c</PathWithFileName>
+      <FilenameWithoutPath>app_timer.c</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
+    <File>
+      <GroupNumber>9</GroupNumber>
+      <FileNumber>57</FileNumber>
+      <FileType>1</FileType>
+      <tvExp>0</tvExp>
+      <Focus>0</Focus>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\..\..\nrf5_iot_sdk\components\libraries\timer\app_timer_appsh.c</PathWithFileName>
+      <FilenameWithoutPath>app_timer_appsh.c</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
+    <File>
+      <GroupNumber>9</GroupNumber>
+      <FileNumber>58</FileNumber>
+      <FileType>1</FileType>
+      <tvExp>0</tvExp>
+      <Focus>0</Focus>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\..\..\nrf5_iot_sdk\components\libraries\trace\app_trace.c</PathWithFileName>
+      <FilenameWithoutPath>app_trace.c</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
+    <File>
+      <GroupNumber>9</GroupNumber>
+      <FileNumber>59</FileNumber>
+      <FileType>1</FileType>
+      <tvExp>0</tvExp>
+      <Focus>0</Focus>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\..\..\nrf5_iot_sdk\components\libraries\mem_manager\mem_manager.c</PathWithFileName>
+      <FilenameWithoutPath>mem_manager.c</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
+    <File>
+      <GroupNumber>9</GroupNumber>
+      <FileNumber>60</FileNumber>
+      <FileType>1</FileType>
+      <tvExp>0</tvExp>
+      <Focus>0</Focus>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\..\..\nrf5_iot_sdk\components\libraries\util\nrf_assert.c</PathWithFileName>
+      <FilenameWithoutPath>nrf_assert.c</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
+    <File>
+      <GroupNumber>9</GroupNumber>
+      <FileNumber>61</FileNumber>
+      <FileType>1</FileType>
+      <tvExp>0</tvExp>
+      <Focus>0</Focus>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\..\..\nrf5_iot_sdk\components\libraries\uart\retarget.c</PathWithFileName>
+      <FilenameWithoutPath>retarget.c</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
+  </Group>
+
+  <Group>
+    <GroupName>nRF_SoftDevice</GroupName>
+    <tvExp>0</tvExp>
+    <tvExpOptDlg>0</tvExpOptDlg>
+    <cbSel>0</cbSel>
+    <RteFlg>0</RteFlg>
+    <File>
+      <GroupNumber>10</GroupNumber>
+      <FileNumber>62</FileNumber>
+      <FileType>1</FileType>
+      <tvExp>0</tvExp>
+      <Focus>0</Focus>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\..\..\nrf5_iot_sdk\components\softdevice\common\softdevice_handler\softdevice_handler.c</PathWithFileName>
+      <FilenameWithoutPath>softdevice_handler.c</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
+    <File>
+      <GroupNumber>10</GroupNumber>
+      <FileNumber>63</FileNumber>
+      <FileType>1</FileType>
+      <tvExp>0</tvExp>
+      <Focus>0</Focus>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\..\..\nrf5_iot_sdk\components\softdevice\common\softdevice_handler\softdevice_handler_appsh.c</PathWithFileName>
+      <FilenameWithoutPath>softdevice_handler_appsh.c</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
+  </Group>
+
+  <Group>
+    <GroupName>RTT</GroupName>
+    <tvExp>0</tvExp>
+    <tvExpOptDlg>0</tvExpOptDlg>
+    <cbSel>0</cbSel>
+    <RteFlg>0</RteFlg>
+    <File>
+      <GroupNumber>11</GroupNumber>
+      <FileNumber>64</FileNumber>
+      <FileType>1</FileType>
+      <tvExp>0</tvExp>
+      <Focus>0</Focus>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\..\..\rtt\RTT\SEGGER_RTT.c</PathWithFileName>
+      <FilenameWithoutPath>SEGGER_RTT.c</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
+    <File>
+      <GroupNumber>11</GroupNumber>
+      <FileNumber>65</FileNumber>
+      <FileType>5</FileType>
+      <tvExp>0</tvExp>
+      <Focus>0</Focus>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\..\..\rtt\RTT\SEGGER_RTT.h</PathWithFileName>
+      <FilenameWithoutPath>SEGGER_RTT.h</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
+    <File>
+      <GroupNumber>11</GroupNumber>
+      <FileNumber>66</FileNumber>
+      <FileType>5</FileType>
+      <tvExp>0</tvExp>
+      <Focus>0</Focus>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\..\..\rtt\RTT\SEGGER_RTT_Conf.h</PathWithFileName>
+      <FilenameWithoutPath>SEGGER_RTT_Conf.h</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
+    <File>
+      <GroupNumber>11</GroupNumber>
+      <FileNumber>67</FileNumber>
+      <FileType>1</FileType>
+      <tvExp>0</tvExp>
+      <Focus>0</Focus>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\..\..\rtt\RTT\SEGGER_RTT_printf.c</PathWithFileName>
+      <FilenameWithoutPath>SEGGER_RTT_printf.c</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
+    <File>
+      <GroupNumber>11</GroupNumber>
+      <FileNumber>68</FileNumber>
+      <FileType>1</FileType>
+      <tvExp>0</tvExp>
+      <Focus>0</Focus>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\..\..\rtt\Syscalls\RTT_Syscalls_KEIL.c</PathWithFileName>
+      <FilenameWithoutPath>RTT_Syscalls_KEIL.c</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
+  </Group>
+
+  <Group>
+    <GroupName>Mongoose</GroupName>
+    <tvExp>1</tvExp>
+    <tvExpOptDlg>0</tvExpOptDlg>
+    <cbSel>0</cbSel>
+    <RteFlg>0</RteFlg>
+    <File>
+      <GroupNumber>12</GroupNumber>
+      <FileNumber>69</FileNumber>
+      <FileType>1</FileType>
+      <tvExp>0</tvExp>
+      <Focus>0</Focus>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\..\..\..\..\..\mongoose.c</PathWithFileName>
+      <FilenameWithoutPath>mongoose.c</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
+  </Group>
+
+  <Group>
+    <GroupName>::CMSIS</GroupName>
+    <tvExp>0</tvExp>
+    <tvExpOptDlg>0</tvExpOptDlg>
+    <cbSel>0</cbSel>
+    <RteFlg>1</RteFlg>
+  </Group>
+
+  <Group>
+    <GroupName>::Device</GroupName>
+    <tvExp>0</tvExp>
+    <tvExpOptDlg>0</tvExpOptDlg>
+    <cbSel>0</cbSel>
+    <RteFlg>1</RteFlg>
+    <File>
+      <GroupNumber>14</GroupNumber>
+      <FileNumber>70</FileNumber>
+      <FileType>2</FileType>
+      <tvExp>0</tvExp>
+      <Focus>0</Focus>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>RTE\Device\nRF52832_xxAA\arm_startup_nrf52.s</PathWithFileName>
+      <FilenameWithoutPath>arm_startup_nrf52.s</FilenameWithoutPath>
+      <RteFlg>1</RteFlg>
+      <bShared>0</bShared>
+    </File>
+    <File>
+      <GroupNumber>14</GroupNumber>
+      <FileNumber>71</FileNumber>
+      <FileType>1</FileType>
+      <tvExp>0</tvExp>
+      <Focus>0</Focus>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>RTE\Device\nRF52832_xxAA\system_nrf52.c</PathWithFileName>
+      <FilenameWithoutPath>system_nrf52.c</FilenameWithoutPath>
+      <RteFlg>1</RteFlg>
+      <bShared>0</bShared>
+    </File>
+  </Group>
+
+</ProjectOpt>
diff --git a/examples/nRF52/http/boards/pca10040/arm5_no_packs/iot_lwip_tcp_server_pca10040.uvprojx b/examples/nRF52/http/boards/pca10040/arm5_no_packs/iot_lwip_tcp_server_pca10040.uvprojx
new file mode 100644
index 000000000..c54660482
--- /dev/null
+++ b/examples/nRF52/http/boards/pca10040/arm5_no_packs/iot_lwip_tcp_server_pca10040.uvprojx
@@ -0,0 +1,886 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_projx.xsd">
+
+  <SchemaVersion>2.1</SchemaVersion>
+
+  <Header>### uVision Project, (C) Keil Software</Header>
+
+  <Targets>
+    <Target>
+      <TargetName>nrf52832_xxaa_s1xx_iot</TargetName>
+      <ToolsetNumber>0x4</ToolsetNumber>
+      <ToolsetName>ARM-ADS</ToolsetName>
+      <TargetOption>
+        <TargetCommonOption>
+          <Device>nRF52832_xxAA</Device>
+          <Vendor>Nordic Semiconductor</Vendor>
+          <PackID>NordicSemiconductor.nRF_DeviceFamilyPack.8.0.5</PackID>
+          <PackURL>http://developer.nordicsemi.com/nRF51_SDK/pieces/nRF_DeviceFamilyPack/</PackURL>
+          <Cpu>IROM(0x00000000,0x80000) IRAM(0x20000000,0x10000) CPUTYPE("Cortex-M4") FPU2 CLOCK(64000000) ELITTLE</Cpu>
+          <FlashUtilSpec></FlashUtilSpec>
+          <StartupFile></StartupFile>
+          <FlashDriverDll>UL2CM3(-UM0364FCE -O78 -S0 -C0 -TO18 -TC16000000 -TP21 -TDS800D -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC2000 -FN1 -FF0nRF52xxx -FS00 -FL0200000)</FlashDriverDll>
+          <DeviceId>0</DeviceId>
+          <RegisterFile>core.h</RegisterFile>
+          <MemoryEnv></MemoryEnv>
+          <Cmp></Cmp>
+          <Asm></Asm>
+          <Linker></Linker>
+          <OHString></OHString>
+          <InfinionOptionDll></InfinionOptionDll>
+          <SLE66CMisc></SLE66CMisc>
+          <SLE66AMisc></SLE66AMisc>
+          <SLE66LinkerMisc></SLE66LinkerMisc>
+          <SFDFile>..\..\..\..\..\..\..\SVD\nrf52.xml</SFDFile>
+          <bCustSvd>0</bCustSvd>
+          <UseEnv>0</UseEnv>
+          <BinPath></BinPath>
+          <IncludePath></IncludePath>
+          <LibPath></LibPath>
+          <RegisterFilePath></RegisterFilePath>
+          <DBRegisterFilePath></DBRegisterFilePath>
+          <TargetStatus>
+            <Error>0</Error>
+            <ExitCodeStop>0</ExitCodeStop>
+            <ButtonStop>0</ButtonStop>
+            <NotGenerated>0</NotGenerated>
+            <InvalidFlash>1</InvalidFlash>
+          </TargetStatus>
+          <OutputDirectory>.\_build\</OutputDirectory>
+          <OutputName>nrf52832_xxaa_s1xx_iot</OutputName>
+          <CreateExecutable>1</CreateExecutable>
+          <CreateLib>0</CreateLib>
+          <CreateHexFile>1</CreateHexFile>
+          <DebugInformation>1</DebugInformation>
+          <BrowseInformation>1</BrowseInformation>
+          <ListingPath>.\_build\</ListingPath>
+          <HexFormatSelection>1</HexFormatSelection>
+          <Merge32K>0</Merge32K>
+          <CreateBatchFile>0</CreateBatchFile>
+          <BeforeCompile>
+            <RunUserProg1>0</RunUserProg1>
+            <RunUserProg2>0</RunUserProg2>
+            <UserProg1Name></UserProg1Name>
+            <UserProg2Name></UserProg2Name>
+            <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
+            <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
+            <nStopU1X>0</nStopU1X>
+            <nStopU2X>0</nStopU2X>
+          </BeforeCompile>
+          <BeforeMake>
+            <RunUserProg1>0</RunUserProg1>
+            <RunUserProg2>0</RunUserProg2>
+            <UserProg1Name></UserProg1Name>
+            <UserProg2Name></UserProg2Name>
+            <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
+            <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
+            <nStopB1X>0</nStopB1X>
+            <nStopB2X>0</nStopB2X>
+          </BeforeMake>
+          <AfterMake>
+            <RunUserProg1>0</RunUserProg1>
+            <RunUserProg2>0</RunUserProg2>
+            <UserProg1Name></UserProg1Name>
+            <UserProg2Name></UserProg2Name>
+            <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
+            <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
+          </AfterMake>
+          <SelectedForBatchBuild>0</SelectedForBatchBuild>
+          <SVCSIdString></SVCSIdString>
+        </TargetCommonOption>
+        <CommonProperty>
+          <UseCPPCompiler>0</UseCPPCompiler>
+          <RVCTCodeConst>0</RVCTCodeConst>
+          <RVCTZI>0</RVCTZI>
+          <RVCTOtherData>0</RVCTOtherData>
+          <ModuleSelection>0</ModuleSelection>
+          <IncludeInBuild>1</IncludeInBuild>
+          <AlwaysBuild>0</AlwaysBuild>
+          <GenerateAssemblyFile>0</GenerateAssemblyFile>
+          <AssembleAssemblyFile>0</AssembleAssemblyFile>
+          <PublicsOnly>0</PublicsOnly>
+          <StopOnExitCode>3</StopOnExitCode>
+          <CustomArgument></CustomArgument>
+          <IncludeLibraryModules></IncludeLibraryModules>
+          <ComprImg>1</ComprImg>
+        </CommonProperty>
+        <DllOption>
+          <SimDllName></SimDllName>
+          <SimDllArguments></SimDllArguments>
+          <SimDlgDll></SimDlgDll>
+          <SimDlgDllArguments></SimDlgDllArguments>
+          <TargetDllName>SARMCM3.DLL</TargetDllName>
+          <TargetDllArguments>-MPU</TargetDllArguments>
+          <TargetDlgDll>TCM.DLL</TargetDlgDll>
+          <TargetDlgDllArguments>-pCM4</TargetDlgDllArguments>
+        </DllOption>
+        <DebugOption>
+          <OPTHX>
+            <HexSelection>1</HexSelection>
+            <HexRangeLowAddress>0</HexRangeLowAddress>
+            <HexRangeHighAddress>0</HexRangeHighAddress>
+            <HexOffset>0</HexOffset>
+            <Oh166RecLen>16</Oh166RecLen>
+          </OPTHX>
+          <Simulator>
+            <UseSimulator>0</UseSimulator>
+            <LoadApplicationAtStartup>1</LoadApplicationAtStartup>
+            <RunToMain>1</RunToMain>
+            <RestoreBreakpoints>1</RestoreBreakpoints>
+            <RestoreWatchpoints>1</RestoreWatchpoints>
+            <RestoreMemoryDisplay>1</RestoreMemoryDisplay>
+            <RestoreFunctions>1</RestoreFunctions>
+            <RestoreToolbox>1</RestoreToolbox>
+            <LimitSpeedToRealTime>0</LimitSpeedToRealTime>
+            <RestoreSysVw>1</RestoreSysVw>
+          </Simulator>
+          <Target>
+            <UseTarget>1</UseTarget>
+            <LoadApplicationAtStartup>1</LoadApplicationAtStartup>
+            <RunToMain>1</RunToMain>
+            <RestoreBreakpoints>1</RestoreBreakpoints>
+            <RestoreWatchpoints>1</RestoreWatchpoints>
+            <RestoreMemoryDisplay>1</RestoreMemoryDisplay>
+            <RestoreFunctions>0</RestoreFunctions>
+            <RestoreToolbox>1</RestoreToolbox>
+            <RestoreTracepoints>0</RestoreTracepoints>
+            <RestoreSysVw>1</RestoreSysVw>
+          </Target>
+          <RunDebugAfterBuild>0</RunDebugAfterBuild>
+          <TargetSelection>6</TargetSelection>
+          <SimDlls>
+            <CpuDll></CpuDll>
+            <CpuDllArguments></CpuDllArguments>
+            <PeripheralDll></PeripheralDll>
+            <PeripheralDllArguments></PeripheralDllArguments>
+            <InitializationFile></InitializationFile>
+          </SimDlls>
+          <TargetDlls>
+            <CpuDll></CpuDll>
+            <CpuDllArguments></CpuDllArguments>
+            <PeripheralDll></PeripheralDll>
+            <PeripheralDllArguments></PeripheralDllArguments>
+            <InitializationFile></InitializationFile>
+            <Driver>Segger\JL2CM3.dll</Driver>
+          </TargetDlls>
+        </DebugOption>
+        <Utilities>
+          <Flash1>
+            <UseTargetDll>1</UseTargetDll>
+            <UseExternalTool>0</UseExternalTool>
+            <RunIndependent>0</RunIndependent>
+            <UpdateFlashBeforeDebugging>1</UpdateFlashBeforeDebugging>
+            <Capability>1</Capability>
+            <DriverSelection>4099</DriverSelection>
+          </Flash1>
+          <bUseTDR>1</bUseTDR>
+          <Flash2>Segger\JL2CM3.dll</Flash2>
+          <Flash3></Flash3>
+          <Flash4></Flash4>
+          <pFcarmOut></pFcarmOut>
+          <pFcarmGrp></pFcarmGrp>
+          <pFcArmRoot></pFcArmRoot>
+          <FcArmLst>0</FcArmLst>
+        </Utilities>
+        <TargetArmAds>
+          <ArmAdsMisc>
+            <GenerateListings>0</GenerateListings>
+            <asHll>1</asHll>
+            <asAsm>1</asAsm>
+            <asMacX>1</asMacX>
+            <asSyms>1</asSyms>
+            <asFals>1</asFals>
+            <asDbgD>1</asDbgD>
+            <asForm>1</asForm>
+            <ldLst>0</ldLst>
+            <ldmm>1</ldmm>
+            <ldXref>1</ldXref>
+            <BigEnd>0</BigEnd>
+            <AdsALst>1</AdsALst>
+            <AdsACrf>1</AdsACrf>
+            <AdsANop>0</AdsANop>
+            <AdsANot>0</AdsANot>
+            <AdsLLst>1</AdsLLst>
+            <AdsLmap>1</AdsLmap>
+            <AdsLcgr>1</AdsLcgr>
+            <AdsLsym>1</AdsLsym>
+            <AdsLszi>1</AdsLszi>
+            <AdsLtoi>1</AdsLtoi>
+            <AdsLsun>1</AdsLsun>
+            <AdsLven>1</AdsLven>
+            <AdsLsxf>1</AdsLsxf>
+            <RvctClst>0</RvctClst>
+            <GenPPlst>0</GenPPlst>
+            <AdsCpuType>"Cortex-M4"</AdsCpuType>
+            <RvctDeviceName></RvctDeviceName>
+            <mOS>0</mOS>
+            <uocRom>0</uocRom>
+            <uocRam>0</uocRam>
+            <hadIROM>1</hadIROM>
+            <hadIRAM>1</hadIRAM>
+            <hadXRAM>0</hadXRAM>
+            <uocXRam>0</uocXRam>
+            <RvdsVP>2</RvdsVP>
+            <hadIRAM2>0</hadIRAM2>
+            <hadIROM2>0</hadIROM2>
+            <StupSel>8</StupSel>
+            <useUlib>0</useUlib>
+            <EndSel>0</EndSel>
+            <uLtcg>0</uLtcg>
+            <RoSelD>3</RoSelD>
+            <RwSelD>5</RwSelD>
+            <CodeSel>0</CodeSel>
+            <OptFeed>0</OptFeed>
+            <NoZi1>0</NoZi1>
+            <NoZi2>0</NoZi2>
+            <NoZi3>0</NoZi3>
+            <NoZi4>0</NoZi4>
+            <NoZi5>0</NoZi5>
+            <Ro1Chk>0</Ro1Chk>
+            <Ro2Chk>0</Ro2Chk>
+            <Ro3Chk>0</Ro3Chk>
+            <Ir1Chk>1</Ir1Chk>
+            <Ir2Chk>0</Ir2Chk>
+            <Ra1Chk>0</Ra1Chk>
+            <Ra2Chk>0</Ra2Chk>
+            <Ra3Chk>0</Ra3Chk>
+            <Im1Chk>1</Im1Chk>
+            <Im2Chk>0</Im2Chk>
+            <OnChipMemories>
+              <Ocm1>
+                <Type>0</Type>
+                <StartAddress>0x0</StartAddress>
+                <Size>0x0</Size>
+              </Ocm1>
+              <Ocm2>
+                <Type>0</Type>
+                <StartAddress>0x0</StartAddress>
+                <Size>0x0</Size>
+              </Ocm2>
+              <Ocm3>
+                <Type>0</Type>
+                <StartAddress>0x0</StartAddress>
+                <Size>0x0</Size>
+              </Ocm3>
+              <Ocm4>
+                <Type>0</Type>
+                <StartAddress>0x0</StartAddress>
+                <Size>0x0</Size>
+              </Ocm4>
+              <Ocm5>
+                <Type>0</Type>
+                <StartAddress>0x0</StartAddress>
+                <Size>0x0</Size>
+              </Ocm5>
+              <Ocm6>
+                <Type>0</Type>
+                <StartAddress>0x0</StartAddress>
+                <Size>0x0</Size>
+              </Ocm6>
+              <IRAM>
+                <Type>0</Type>
+                <StartAddress>0x20000000</StartAddress>
+                <Size>0x10000</Size>
+              </IRAM>
+              <IROM>
+                <Type>1</Type>
+                <StartAddress>0x0</StartAddress>
+                <Size>0x80000</Size>
+              </IROM>
+              <XRAM>
+                <Type>0</Type>
+                <StartAddress>0x0</StartAddress>
+                <Size>0x0</Size>
+              </XRAM>
+              <OCR_RVCT1>
+                <Type>1</Type>
+                <StartAddress>0x0</StartAddress>
+                <Size>0x0</Size>
+              </OCR_RVCT1>
+              <OCR_RVCT2>
+                <Type>1</Type>
+                <StartAddress>0x0</StartAddress>
+                <Size>0x0</Size>
+              </OCR_RVCT2>
+              <OCR_RVCT3>
+                <Type>1</Type>
+                <StartAddress>0x0</StartAddress>
+                <Size>0x0</Size>
+              </OCR_RVCT3>
+              <OCR_RVCT4>
+                <Type>1</Type>
+                <StartAddress>0x1f000</StartAddress>
+                <Size>0x61000</Size>
+              </OCR_RVCT4>
+              <OCR_RVCT5>
+                <Type>1</Type>
+                <StartAddress>0x0</StartAddress>
+                <Size>0x0</Size>
+              </OCR_RVCT5>
+              <OCR_RVCT6>
+                <Type>0</Type>
+                <StartAddress>0x0</StartAddress>
+                <Size>0x0</Size>
+              </OCR_RVCT6>
+              <OCR_RVCT7>
+                <Type>0</Type>
+                <StartAddress>0x0</StartAddress>
+                <Size>0x0</Size>
+              </OCR_RVCT7>
+              <OCR_RVCT8>
+                <Type>0</Type>
+                <StartAddress>0x0</StartAddress>
+                <Size>0x0</Size>
+              </OCR_RVCT8>
+              <OCR_RVCT9>
+                <Type>0</Type>
+                <StartAddress>0x20002800</StartAddress>
+                <Size>0xd800</Size>
+              </OCR_RVCT9>
+              <OCR_RVCT10>
+                <Type>0</Type>
+                <StartAddress>0x0</StartAddress>
+                <Size>0x0</Size>
+              </OCR_RVCT10>
+            </OnChipMemories>
+            <RvctStartVector></RvctStartVector>
+          </ArmAdsMisc>
+          <Cads>
+            <interw>1</interw>
+            <Optim>4</Optim>
+            <oTime>0</oTime>
+            <SplitLS>0</SplitLS>
+            <OneElfS>1</OneElfS>
+            <Strict>0</Strict>
+            <EnumInt>0</EnumInt>
+            <PlainCh>0</PlainCh>
+            <Ropi>0</Ropi>
+            <Rwpi>0</Rwpi>
+            <wLevel>1</wLevel>
+            <uThumb>0</uThumb>
+            <uSurpInc>0</uSurpInc>
+            <uC99>0</uC99>
+            <useXO>0</useXO>
+            <VariousControls>
+              <MiscControls>--c99</MiscControls>
+              <Define>__HEAP_SIZE=4096 BLE_STACK_SUPPORT_REQD BOARD_PCA10040 CONFIG_GPIO_AS_PINRESET s1xx SOFTDEVICE_PRESENT NRF52 SWI_DISABLE0 MG_DISABLE_HTTP_DIGEST_AUTH MG_DISABLE_MD5 MG_DISABLE_HTTP_KEEP_ALIVE MG_ENABLE_HTTP_SSI=0 MG_ENABLE_HTTP_STREAMING_MULTIPART MG_NO_BSD_SOCKETS CS_PLATFORM=CS_P_NRF52 CS_ENABLE_STDIO NRF_LOG_USES_RTT  ENABLE_DEBUG_LOG_SUPPORT</Define>
+              <Undefine></Undefine>
+              <IncludePath>..\..\..\config;..\..\..\..\nrf5_iot_sdk\examples\bsp;..\..\..\..\nrf5_iot_sdk\components\device;..\..\..\..\nrf5_iot_sdk\components\toolchain;..\..\..\..\nrf5_iot_sdk\components\ble\common;..\..\..\..\nrf5_iot_sdk\components\drivers_nrf\common;..\..\..\..\nrf5_iot_sdk\components\drivers_nrf\delay;..\..\..\..\nrf5_iot_sdk\components\drivers_nrf\gpiote;..\..\..\..\nrf5_iot_sdk\components\drivers_nrf\hal;..\..\..\..\nrf5_iot_sdk\components\drivers_nrf\pstorage;..\..\..\..\nrf5_iot_sdk\components\drivers_nrf\uart;..\..\..\..\nrf5_iot_sdk\components\drivers_nrf\config;..\..\..\..\nrf5_iot_sdk\components\iot\ble_6lowpan;..\..\..\..\nrf5_iot_sdk\components\iot\ble_ipsp;..\..\..\..\nrf5_iot_sdk\components\iot\common;..\..\..\..\nrf5_iot_sdk\components\iot\context_manager;..\..\..\..\nrf5_iot_sdk\components\iot\include;..\..\..\..\nrf5_iot_sdk\components\iot\errno;..\..\..\..\nrf5_iot_sdk\components\iot\iot_timer;..\..\..\..\nrf5_iot_sdk\components\iot\medium;..\..\..\..\nrf5_iot_sdk\components\iot\medium\ble_ncfgs;..\..\..\..\nrf5_iot_sdk\components\iot\medium\include;..\..\..\..\nrf5_iot_sdk\components\iot\medium\commissioning;..\..\..\..\nrf5_iot_sdk\components\libraries\button;..\..\..\..\nrf5_iot_sdk\components\libraries\fifo;..\..\..\..\nrf5_iot_sdk\components\libraries\mem_manager;..\..\..\..\nrf5_iot_sdk\components\libraries\scheduler;..\..\..\..\nrf5_iot_sdk\components\libraries\timer;..\..\..\..\nrf5_iot_sdk\components\libraries\trace;..\..\..\..\nrf5_iot_sdk\components\libraries\uart;..\..\..\..\nrf5_iot_sdk\components\libraries\util;..\..\..\..\nrf5_iot_sdk\components\softdevice\common\softdevice_handler;..\..\..\..\nrf5_iot_sdk\components\softdevice\s1xx_iot\headers;..\..\..\..\nrf5_iot_sdk\components\softdevice\s1xx_iot\headers\nrf52;..\..\..\..\nrf5_iot_sdk\external\lwip\src\include;..\..\..\..\nrf5_iot_sdk\external\lwip\src\include\netif;..\..\..\..\nrf5_iot_sdk\external\lwip\src\include\lwip;..\..\..\..\nrf5_iot_sdk\external\lwip\src\port;..\..\..\..\nrf5_iot_sdk\external\lwip\src\port\arch;..\..\..;..\..\..\rtt\RTT;..\..\..\rtt\Syscalls;..\..\..\..\..\..</IncludePath>
+            </VariousControls>
+          </Cads>
+          <Aads>
+            <interw>1</interw>
+            <Ropi>0</Ropi>
+            <Rwpi>0</Rwpi>
+            <thumb>0</thumb>
+            <SplitLS>0</SplitLS>
+            <SwStkChk>0</SwStkChk>
+            <NoWarn>0</NoWarn>
+            <uSurpInc>0</uSurpInc>
+            <useXO>0</useXO>
+            <VariousControls>
+              <MiscControls></MiscControls>
+              <Define>__HEAP_SIZE=4096 BLE_STACK_SUPPORT_REQD BOARD_PCA10040 CONFIG_GPIO_AS_PINRESET s1xx SOFTDEVICE_PRESENT NRF52 SWI_DISABLE0</Define>
+              <Undefine></Undefine>
+              <IncludePath></IncludePath>
+            </VariousControls>
+          </Aads>
+          <LDads>
+            <umfTarg>1</umfTarg>
+            <Ropi>0</Ropi>
+            <Rwpi>0</Rwpi>
+            <noStLib>0</noStLib>
+            <RepFail>1</RepFail>
+            <useFile>0</useFile>
+            <TextAddressRange>0x00000000</TextAddressRange>
+            <DataAddressRange>0x00000000</DataAddressRange>
+            <pXoBase></pXoBase>
+            <ScatterFile></ScatterFile>
+            <IncludeLibs></IncludeLibs>
+            <IncludeLibsPath></IncludeLibsPath>
+            <Misc></Misc>
+            <LinkerInputFile></LinkerInputFile>
+            <DisabledWarnings></DisabledWarnings>
+          </LDads>
+        </TargetArmAds>
+      </TargetOption>
+      <Groups>
+        <Group>
+          <GroupName>Application</GroupName>
+          <Files>
+            <File>
+              <FileName>main.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\..\..\main.c</FilePath>
+            </File>
+            <File>
+              <FileName>sdk_config.h</FileName>
+              <FileType>5</FileType>
+              <FilePath>..\..\..\config\sdk_config.h</FilePath>
+            </File>
+            <File>
+              <FileName>bleconfig.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\..\..\bleconfig.c</FilePath>
+            </File>
+            <File>
+              <FileName>bleconfig.h</FileName>
+              <FileType>5</FileType>
+              <FilePath>..\..\..\bleconfig.h</FilePath>
+            </File>
+            <File>
+              <FileName>myboard.h</FileName>
+              <FileType>5</FileType>
+              <FilePath>..\..\..\myboard.h</FilePath>
+            </File>
+          </Files>
+        </Group>
+        <Group>
+          <GroupName>Board Support</GroupName>
+          <Files>
+            <File>
+              <FileName>bsp.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\..\..\..\nrf5_iot_sdk\examples\bsp\bsp.c</FilePath>
+            </File>
+          </Files>
+        </Group>
+        <Group>
+          <GroupName>Documentation</GroupName>
+          <Files>
+            <File>
+              <FileName>Abstract.txt</FileName>
+              <FileType>5</FileType>
+              <FilePath>..\..\..\Abstract.txt</FilePath>
+            </File>
+            <File>
+              <FileName>license.txt</FileName>
+              <FileType>5</FileType>
+              <FilePath>..\..\..\license.txt</FilePath>
+            </File>
+          </Files>
+        </Group>
+        <Group>
+          <GroupName>lwIP</GroupName>
+          <Files>
+            <File>
+              <FileName>def.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\..\..\..\nrf5_iot_sdk\external\lwip\src\core\def.c</FilePath>
+            </File>
+            <File>
+              <FileName>dhcp.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\..\..\..\nrf5_iot_sdk\external\lwip\src\core\dhcp.c</FilePath>
+            </File>
+            <File>
+              <FileName>dhcp6.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\..\..\..\nrf5_iot_sdk\external\lwip\src\core\ipv6\dhcp6.c</FilePath>
+            </File>
+            <File>
+              <FileName>dns.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\..\..\..\nrf5_iot_sdk\external\lwip\src\core\dns.c</FilePath>
+            </File>
+            <File>
+              <FileName>icmp.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\..\..\..\nrf5_iot_sdk\external\lwip\src\core\ipv4\icmp.c</FilePath>
+            </File>
+            <File>
+              <FileName>icmp6.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\..\..\..\nrf5_iot_sdk\external\lwip\src\core\ipv6\icmp6.c</FilePath>
+            </File>
+            <File>
+              <FileName>inet6.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\..\..\..\nrf5_iot_sdk\external\lwip\src\core\ipv6\inet6.c</FilePath>
+            </File>
+            <File>
+              <FileName>inet_chksum.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\..\..\..\nrf5_iot_sdk\external\lwip\src\core\inet_chksum.c</FilePath>
+            </File>
+            <File>
+              <FileName>init.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\..\..\..\nrf5_iot_sdk\external\lwip\src\core\init.c</FilePath>
+            </File>
+            <File>
+              <FileName>ip4.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\..\..\..\nrf5_iot_sdk\external\lwip\src\core\ipv4\ip4.c</FilePath>
+            </File>
+            <File>
+              <FileName>ip4_addr.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\..\..\..\nrf5_iot_sdk\external\lwip\src\core\ipv4\ip4_addr.c</FilePath>
+            </File>
+            <File>
+              <FileName>ip6.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\..\..\..\nrf5_iot_sdk\external\lwip\src\core\ipv6\ip6.c</FilePath>
+            </File>
+            <File>
+              <FileName>ip6_addr.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\..\..\..\nrf5_iot_sdk\external\lwip\src\core\ipv6\ip6_addr.c</FilePath>
+            </File>
+            <File>
+              <FileName>memp.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\..\..\..\nrf5_iot_sdk\external\lwip\src\core\memp.c</FilePath>
+            </File>
+            <File>
+              <FileName>mld6.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\..\..\..\nrf5_iot_sdk\external\lwip\src\core\ipv6\mld6.c</FilePath>
+            </File>
+            <File>
+              <FileName>nd6.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\..\..\..\nrf5_iot_sdk\external\lwip\src\core\ipv6\nd6.c</FilePath>
+            </File>
+            <File>
+              <FileName>netif.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\..\..\..\nrf5_iot_sdk\external\lwip\src\core\netif.c</FilePath>
+            </File>
+            <File>
+              <FileName>nrf_platform_port.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\..\..\..\nrf5_iot_sdk\external\lwip\src\port\nrf_platform_port.c</FilePath>
+            </File>
+            <File>
+              <FileName>pbuf.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\..\..\..\nrf5_iot_sdk\external\lwip\src\core\pbuf.c</FilePath>
+            </File>
+            <File>
+              <FileName>raw.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\..\..\..\nrf5_iot_sdk\external\lwip\src\core\raw.c</FilePath>
+            </File>
+            <File>
+              <FileName>sys.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\..\..\..\nrf5_iot_sdk\external\lwip\src\core\sys.c</FilePath>
+            </File>
+            <File>
+              <FileName>tcp.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\..\..\..\nrf5_iot_sdk\external\lwip\src\core\tcp.c</FilePath>
+            </File>
+            <File>
+              <FileName>tcp_in.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\..\..\..\nrf5_iot_sdk\external\lwip\src\core\tcp_in.c</FilePath>
+            </File>
+            <File>
+              <FileName>tcp_out.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\..\..\..\nrf5_iot_sdk\external\lwip\src\core\tcp_out.c</FilePath>
+            </File>
+            <File>
+              <FileName>timers.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\..\..\..\nrf5_iot_sdk\external\lwip\src\core\timers.c</FilePath>
+            </File>
+            <File>
+              <FileName>udp.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\..\..\..\nrf5_iot_sdk\external\lwip\src\core\udp.c</FilePath>
+            </File>
+          </Files>
+        </Group>
+        <Group>
+          <GroupName>nRF_BLE</GroupName>
+          <Files>
+            <File>
+              <FileName>ble_advdata.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\..\..\..\nrf5_iot_sdk\components\ble\common\ble_advdata.c</FilePath>
+            </File>
+            <File>
+              <FileName>ble_conn_params.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\..\..\..\nrf5_iot_sdk\components\ble\common\ble_conn_params.c</FilePath>
+            </File>
+            <File>
+              <FileName>ble_srv_common.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\..\..\..\nrf5_iot_sdk\components\ble\common\ble_srv_common.c</FilePath>
+            </File>
+          </Files>
+        </Group>
+        <Group>
+          <GroupName>nRF_Drivers</GroupName>
+          <Files>
+            <File>
+              <FileName>app_uart_fifo.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\..\..\..\nrf5_iot_sdk\components\libraries\uart\app_uart_fifo.c</FilePath>
+            </File>
+            <File>
+              <FileName>nrf_delay.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\..\..\..\nrf5_iot_sdk\components\drivers_nrf\delay\nrf_delay.c</FilePath>
+            </File>
+            <File>
+              <FileName>nrf_drv_common.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\..\..\..\nrf5_iot_sdk\components\drivers_nrf\common\nrf_drv_common.c</FilePath>
+            </File>
+            <File>
+              <FileName>nrf_drv_gpiote.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\..\..\..\nrf5_iot_sdk\components\drivers_nrf\gpiote\nrf_drv_gpiote.c</FilePath>
+            </File>
+            <File>
+              <FileName>nrf_drv_uart.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\..\..\..\nrf5_iot_sdk\components\drivers_nrf\uart\nrf_drv_uart.c</FilePath>
+            </File>
+            <File>
+              <FileName>pstorage.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\..\..\..\nrf5_iot_sdk\components\drivers_nrf\pstorage\pstorage.c</FilePath>
+            </File>
+          </Files>
+        </Group>
+        <Group>
+          <GroupName>nRF_IoT</GroupName>
+          <Files>
+            <File>
+              <FileName>ble_6lowpan.lib</FileName>
+              <FileType>4</FileType>
+              <FilePath>..\..\..\..\nrf5_iot_sdk\components\iot\ble_6lowpan\lib\ble_6lowpan.lib</FilePath>
+            </File>
+            <File>
+              <FileName>errno.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\..\..\..\nrf5_iot_sdk\components\iot\errno\errno.c</FilePath>
+            </File>
+            <File>
+              <FileName>iot_context_manager.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\..\..\..\nrf5_iot_sdk\components\iot\context_manager\iot_context_manager.c</FilePath>
+            </File>
+            <File>
+              <FileName>iot_timer.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\..\..\..\nrf5_iot_sdk\components\iot\iot_timer\iot_timer.c</FilePath>
+            </File>
+            <File>
+              <FileName>ipv6_medium_ble.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\..\..\..\nrf5_iot_sdk\components\iot\medium\ipv6_medium_ble.c</FilePath>
+            </File>
+            <File>
+              <FileName>ipv6_parse.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\..\..\..\nrf5_iot_sdk\components\iot\common\ipv6_parse.c</FilePath>
+            </File>
+          </Files>
+        </Group>
+        <Group>
+          <GroupName>nRF_IoT_Commissioning</GroupName>
+          <Files>
+            <File>
+              <FileName>ble_ncfgs.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\..\..\..\nrf5_iot_sdk\components\iot\medium\ble_ncfgs\ble_ncfgs.c</FilePath>
+            </File>
+            <File>
+              <FileName>commissioning.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\..\..\..\nrf5_iot_sdk\components\iot\medium\commissioning\commissioning.c</FilePath>
+            </File>
+          </Files>
+        </Group>
+        <Group>
+          <GroupName>nRF_Libraries</GroupName>
+          <Files>
+            <File>
+              <FileName>app_button.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\..\..\..\nrf5_iot_sdk\components\libraries\button\app_button.c</FilePath>
+            </File>
+            <File>
+              <FileName>app_error.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\..\..\..\nrf5_iot_sdk\components\libraries\util\app_error.c</FilePath>
+            </File>
+            <File>
+              <FileName>app_fifo.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\..\..\..\nrf5_iot_sdk\components\libraries\fifo\app_fifo.c</FilePath>
+            </File>
+            <File>
+              <FileName>app_scheduler.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\..\..\..\nrf5_iot_sdk\components\libraries\scheduler\app_scheduler.c</FilePath>
+            </File>
+            <File>
+              <FileName>app_timer.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\..\..\..\nrf5_iot_sdk\components\libraries\timer\app_timer.c</FilePath>
+            </File>
+            <File>
+              <FileName>app_timer_appsh.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\..\..\..\nrf5_iot_sdk\components\libraries\timer\app_timer_appsh.c</FilePath>
+            </File>
+            <File>
+              <FileName>app_trace.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\..\..\..\nrf5_iot_sdk\components\libraries\trace\app_trace.c</FilePath>
+            </File>
+            <File>
+              <FileName>mem_manager.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\..\..\..\nrf5_iot_sdk\components\libraries\mem_manager\mem_manager.c</FilePath>
+            </File>
+            <File>
+              <FileName>nrf_assert.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\..\..\..\nrf5_iot_sdk\components\libraries\util\nrf_assert.c</FilePath>
+            </File>
+            <File>
+              <FileName>retarget.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\..\..\..\nrf5_iot_sdk\components\libraries\uart\retarget.c</FilePath>
+            </File>
+          </Files>
+        </Group>
+        <Group>
+          <GroupName>nRF_SoftDevice</GroupName>
+          <Files>
+            <File>
+              <FileName>softdevice_handler.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\..\..\..\nrf5_iot_sdk\components\softdevice\common\softdevice_handler\softdevice_handler.c</FilePath>
+            </File>
+            <File>
+              <FileName>softdevice_handler_appsh.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\..\..\..\nrf5_iot_sdk\components\softdevice\common\softdevice_handler\softdevice_handler_appsh.c</FilePath>
+            </File>
+          </Files>
+        </Group>
+        <Group>
+          <GroupName>RTT</GroupName>
+          <Files>
+            <File>
+              <FileName>SEGGER_RTT.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\..\..\rtt\RTT\SEGGER_RTT.c</FilePath>
+            </File>
+            <File>
+              <FileName>SEGGER_RTT.h</FileName>
+              <FileType>5</FileType>
+              <FilePath>..\..\..\rtt\RTT\SEGGER_RTT.h</FilePath>
+            </File>
+            <File>
+              <FileName>SEGGER_RTT_Conf.h</FileName>
+              <FileType>5</FileType>
+              <FilePath>..\..\..\rtt\RTT\SEGGER_RTT_Conf.h</FilePath>
+            </File>
+            <File>
+              <FileName>SEGGER_RTT_printf.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\..\..\rtt\RTT\SEGGER_RTT_printf.c</FilePath>
+            </File>
+            <File>
+              <FileName>RTT_Syscalls_KEIL.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\..\..\rtt\Syscalls\RTT_Syscalls_KEIL.c</FilePath>
+            </File>
+          </Files>
+        </Group>
+        <Group>
+          <GroupName>Mongoose</GroupName>
+          <Files>
+            <File>
+              <FileName>mongoose.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\..\..\..\..\..\mongoose.c</FilePath>
+            </File>
+          </Files>
+        </Group>
+        <Group>
+          <GroupName>::CMSIS</GroupName>
+        </Group>
+        <Group>
+          <GroupName>::Device</GroupName>
+          <Files>
+            <File>
+              <FileName>arm_startup_nrf52.s</FileName>
+              <FileType>2</FileType>
+              <FilePath>RTE\Device\nRF52832_xxAA\arm_startup_nrf52.s</FilePath>
+            </File>
+            <File>
+              <FileName>system_nrf52.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>RTE\Device\nRF52832_xxAA\system_nrf52.c</FilePath>
+            </File>
+          </Files>
+        </Group>
+      </Groups>
+    </Target>
+  </Targets>
+
+  <RTE>
+    <packages>
+      <filter>
+        <targetInfos/>
+      </filter>
+      <package name="CMSIS" schemaVersion="1.2" url="http://www.keil.com/pack/" vendor="ARM" version="4.2.0">
+        <targetInfos>
+          <targetInfo name="nrf52832_xxaa_s1xx_iot" versionMatchMode="fixed"/>
+        </targetInfos>
+      </package>
+      <package name="nRF_DeviceFamilyPack" schemaVersion="1.0" url="http://developer.nordicsemi.com/nRF51_SDK/pieces/nRF_DeviceFamilyPack/" vendor="NordicSemiconductor" version="8.0.5">
+        <targetInfos>
+          <targetInfo name="nrf52832_xxaa_s1xx_iot" versionMatchMode="fixed"/>
+        </targetInfos>
+      </package>
+    </packages>
+    <apis/>
+    <components>
+      <component Cclass="CMSIS" Cgroup="CORE" Cvendor="ARM" Cversion="3.40.0" condition="CMSIS Core">
+        <package name="CMSIS" schemaVersion="1.2" url="http://www.keil.com/pack/" vendor="ARM" version="4.2.0"/>
+        <targetInfos>
+          <targetInfo name="nrf52832_xxaa_s1xx_iot" versionMatchMode="fixed"/>
+        </targetInfos>
+      </component>
+      <component Cclass="Device" Cgroup="Startup" Cvendor="NordicSemiconductor" Cversion="8.0.5" condition="nRF51 Series CMSIS Device">
+        <package name="nRF_DeviceFamilyPack" schemaVersion="1.0" url="http://developer.nordicsemi.com/nRF51_SDK/pieces/nRF_DeviceFamilyPack/" vendor="NordicSemiconductor" version="8.0.5"/>
+        <targetInfos>
+          <targetInfo name="nrf52832_xxaa_s1xx_iot" versionMatchMode="fixed"/>
+        </targetInfos>
+      </component>
+    </components>
+    <files>
+      <file attr="config" category="source" condition="ARM Compiler" name="Device\Source\arm\arm_startup_nrf52.s">
+        <instance index="0">RTE\Device\nRF52832_xxAA\arm_startup_nrf52.s</instance>
+        <component Cclass="Device" Cgroup="Startup" Cvendor="NordicSemiconductor" Cversion="8.0.5" condition="nRF52 Series CMSIS Device"/>
+        <package license="License\license.txt" name="nRF_DeviceFamilyPack" schemaVersion="1.3" url="http://developer.nordicsemi.com/nRF51_SDK/pieces/nRF_DeviceFamilyPack/" vendor="NordicSemiconductor" version="8.0.5"/>
+        <targetInfos>
+          <targetInfo name="nrf52832_xxaa_s1xx_iot"/>
+        </targetInfos>
+      </file>
+      <file attr="config" category="source" name="Device\Source\system_nrf52.c">
+        <instance index="0">RTE\Device\nRF52832_xxAA\system_nrf52.c</instance>
+        <component Cclass="Device" Cgroup="Startup" Cvendor="NordicSemiconductor" Cversion="8.0.5" condition="nRF52 Series CMSIS Device"/>
+        <package license="License\license.txt" name="nRF_DeviceFamilyPack" schemaVersion="1.3" url="http://developer.nordicsemi.com/nRF51_SDK/pieces/nRF_DeviceFamilyPack/" vendor="NordicSemiconductor" version="8.0.5"/>
+        <targetInfos>
+          <targetInfo name="nrf52832_xxaa_s1xx_iot"/>
+        </targetInfos>
+      </file>
+    </files>
+  </RTE>
+
+</Project>
diff --git a/examples/nRF52/http/boards/pca10040/armgcc/.gdbinit b/examples/nRF52/http/boards/pca10040/armgcc/.gdbinit
new file mode 100644
index 000000000..be68d0932
--- /dev/null
+++ b/examples/nRF52/http/boards/pca10040/armgcc/.gdbinit
@@ -0,0 +1,2 @@
+target extended-remote localhost:2331
+file _build/nrf52832_xxaa_s1xx_iot.out
diff --git a/examples/nRF52/http/boards/pca10040/armgcc/Makefile b/examples/nRF52/http/boards/pca10040/armgcc/Makefile
new file mode 100644
index 000000000..185cfdd0b
--- /dev/null
+++ b/examples/nRF52/http/boards/pca10040/armgcc/Makefile
@@ -0,0 +1,304 @@
+PROJECT_NAME := iot_lwip_tcp_server_pca10040
+
+export OUTPUT_FILENAME
+#MAKEFILE_NAME := $(CURDIR)/$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))
+MAKEFILE_NAME := $(MAKEFILE_LIST)
+MAKEFILE_DIR := $(dir $(MAKEFILE_NAME) ) 
+
+TEMPLATE_PATH = ../../../../nrf5_iot_sdk/components/toolchain/gcc
+ifeq ($(OS),Windows_NT)
+include $(TEMPLATE_PATH)/Makefile.windows
+else
+include $(TEMPLATE_PATH)/Makefile.posix
+endif
+
+MK := mkdir
+RM := rm -rf
+
+#echo suspend
+ifeq ("$(VERBOSE)","1")
+NO_ECHO := 
+else
+NO_ECHO := @
+endif
+
+# Toolchain commands
+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'
+SIZE            := '$(GNU_INSTALL_ROOT)/bin/$(GNU_PREFIX)-size'
+
+#function for removing duplicates in a list
+remduplicates = $(strip $(if $1,$(firstword $1) $(call remduplicates,$(filter-out $(firstword $1),$1))))
+
+#source common to all targets
+C_SOURCE_FILES += \
+$(abspath ../../../../nrf5_iot_sdk/components/libraries/button/app_button.c) \
+$(abspath ../../../../nrf5_iot_sdk/components/libraries/util/app_error.c) \
+$(abspath ../../../../nrf5_iot_sdk/components/libraries/fifo/app_fifo.c) \
+$(abspath ../../../../nrf5_iot_sdk/components/libraries/scheduler/app_scheduler.c) \
+$(abspath ../../../../nrf5_iot_sdk/components/libraries/timer/app_timer.c) \
+$(abspath ../../../../nrf5_iot_sdk/components/libraries/timer/app_timer_appsh.c) \
+$(abspath ../../../../nrf5_iot_sdk/components/libraries/trace/app_trace.c) \
+$(abspath ../../../../nrf5_iot_sdk/components/libraries/mem_manager/mem_manager.c) \
+$(abspath ../../../../nrf5_iot_sdk/components/libraries/util/nrf_assert.c) \
+$(abspath ../../../../nrf5_iot_sdk/components/libraries/uart/retarget.c) \
+$(abspath ../../../../nrf5_iot_sdk/external/lwip/src/core/def.c) \
+$(abspath ../../../../nrf5_iot_sdk/external/lwip/src/core/dhcp.c) \
+$(abspath ../../../../nrf5_iot_sdk/external/lwip/src/core/ipv6/dhcp6.c) \
+$(abspath ../../../../nrf5_iot_sdk/external/lwip/src/core/dns.c) \
+$(abspath ../../../../nrf5_iot_sdk/external/lwip/src/core/ipv4/icmp.c) \
+$(abspath ../../../../nrf5_iot_sdk/external/lwip/src/core/ipv6/icmp6.c) \
+$(abspath ../../../../nrf5_iot_sdk/external/lwip/src/core/ipv6/inet6.c) \
+$(abspath ../../../../nrf5_iot_sdk/external/lwip/src/core/inet_chksum.c) \
+$(abspath ../../../../nrf5_iot_sdk/external/lwip/src/core/init.c) \
+$(abspath ../../../../nrf5_iot_sdk/external/lwip/src/core/ipv4/ip4.c) \
+$(abspath ../../../../nrf5_iot_sdk/external/lwip/src/core/ipv4/ip4_addr.c) \
+$(abspath ../../../../nrf5_iot_sdk/external/lwip/src/core/ipv6/ip6.c) \
+$(abspath ../../../../nrf5_iot_sdk/external/lwip/src/core/ipv6/ip6_addr.c) \
+$(abspath ../../../../nrf5_iot_sdk/external/lwip/src/core/memp.c) \
+$(abspath ../../../../nrf5_iot_sdk/external/lwip/src/core/ipv6/mld6.c) \
+$(abspath ../../../../nrf5_iot_sdk/external/lwip/src/core/ipv6/nd6.c) \
+$(abspath ../../../../nrf5_iot_sdk/external/lwip/src/core/netif.c) \
+$(abspath ../../../../nrf5_iot_sdk/external/lwip/src/port/nrf_platform_port.c) \
+$(abspath ../../../../nrf5_iot_sdk/external/lwip/src/core/pbuf.c) \
+$(abspath ../../../../nrf5_iot_sdk/external/lwip/src/core/raw.c) \
+$(abspath ../../../../nrf5_iot_sdk/external/lwip/src/core/sys.c) \
+$(abspath ../../../../nrf5_iot_sdk/external/lwip/src/core/tcp.c) \
+$(abspath ../../../../nrf5_iot_sdk/external/lwip/src/core/tcp_in.c) \
+$(abspath ../../../../nrf5_iot_sdk/external/lwip/src/core/tcp_out.c) \
+$(abspath ../../../../nrf5_iot_sdk/external/lwip/src/core/timers.c) \
+$(abspath ../../../../nrf5_iot_sdk/external/lwip/src/core/udp.c) \
+$(abspath ../../../../nrf5_iot_sdk/components/libraries/uart/app_uart_fifo.c) \
+$(abspath ../../../../nrf5_iot_sdk/components/drivers_nrf/delay/nrf_delay.c) \
+$(abspath ../../../../nrf5_iot_sdk/components/drivers_nrf/common/nrf_drv_common.c) \
+$(abspath ../../../../nrf5_iot_sdk/components/drivers_nrf/gpiote/nrf_drv_gpiote.c) \
+$(abspath ../../../../nrf5_iot_sdk/components/drivers_nrf/uart/nrf_drv_uart.c) \
+$(abspath ../../../../nrf5_iot_sdk/components/drivers_nrf/pstorage/pstorage.c) \
+$(abspath ../../../../nrf5_iot_sdk/examples/bsp/bsp.c) \
+$(abspath ../../../main.c) \
+$(abspath ../../../bleconfig.c) \
+$(abspath ../../../../../../mongoose.c) \
+$(abspath ../../../rtt/RTT/SEGGER_RTT.c) \
+$(abspath ../../../rtt/RTT/SEGGER_RTT_printf.c) \
+$(abspath ../../../rtt/Syscalls/RTT_Syscalls_GCC.c) \
+$(abspath ../../../../nrf5_iot_sdk/components/ble/common/ble_advdata.c) \
+$(abspath ../../../../nrf5_iot_sdk/components/ble/common/ble_conn_params.c) \
+$(abspath ../../../../nrf5_iot_sdk/components/ble/common/ble_srv_common.c) \
+$(abspath ../../../../nrf5_iot_sdk/components/iot/errno/errno.c) \
+$(abspath ../../../../nrf5_iot_sdk/components/iot/context_manager/iot_context_manager.c) \
+$(abspath ../../../../nrf5_iot_sdk/components/iot/iot_timer/iot_timer.c) \
+$(abspath ../../../../nrf5_iot_sdk/components/iot/medium/ipv6_medium_ble.c) \
+$(abspath ../../../../nrf5_iot_sdk/components/iot/common/ipv6_parse.c) \
+$(abspath ../../../../nrf5_iot_sdk/components/toolchain/system_nrf52.c) \
+$(abspath ../../../../nrf5_iot_sdk/components/iot/medium/ble_ncfgs/ble_ncfgs.c) \
+$(abspath ../../../../nrf5_iot_sdk/components/iot/medium/commissioning/commissioning.c) \
+$(abspath ../../../../nrf5_iot_sdk/components/softdevice/common/softdevice_handler/softdevice_handler.c) \
+$(abspath ../../../../nrf5_iot_sdk/components/softdevice/common/softdevice_handler/softdevice_handler_appsh.c) \
+
+#assembly files common to all targets
+ASM_SOURCE_FILES  = $(abspath ../../../../nrf5_iot_sdk/components/toolchain/gcc/gcc_startup_nrf52.s)
+
+#assembly files common to all targets
+LIBS  = $(abspath ../../../../nrf5_iot_sdk/components/iot/ble_6lowpan/lib/ble_6lowpan.a)
+
+#includes common to all targets
+INC_PATHS  = -I$(abspath ../../../config)
+INC_PATHS += -I$(abspath ../../../../nrf5_iot_sdk/components/iot/errno)
+INC_PATHS += -I$(abspath ../../../../nrf5_iot_sdk/components/softdevice/s1xx_iot/headers)
+INC_PATHS += -I$(abspath ../../../../nrf5_iot_sdk/components/drivers_nrf/common)
+INC_PATHS += -I$(abspath ../../../../nrf5_iot_sdk/components/softdevice/common/softdevice_handler)
+INC_PATHS += -I$(abspath ../../../../nrf5_iot_sdk/external/lwip/src/include)
+INC_PATHS += -I$(abspath ../../../../nrf5_iot_sdk/components/iot/ble_6lowpan)
+INC_PATHS += -I$(abspath ../../../../nrf5_iot_sdk/components/drivers_nrf/hal)
+INC_PATHS += -I$(abspath ../../../../nrf5_iot_sdk/components/ble/common)
+INC_PATHS += -I$(abspath ../../../../nrf5_iot_sdk/external/lwip/src/port)
+INC_PATHS += -I$(abspath ../../../../nrf5_iot_sdk/components/libraries/fifo)
+INC_PATHS += -I$(abspath ../../../../nrf5_iot_sdk/components/libraries/trace)
+INC_PATHS += -I$(abspath ../../../../nrf5_iot_sdk/components/device)
+INC_PATHS += -I$(abspath ../../../../nrf5_iot_sdk/components/libraries/uart)
+INC_PATHS += -I$(abspath ../../../../nrf5_iot_sdk/components/iot/medium)
+INC_PATHS += -I$(abspath ../../../../nrf5_iot_sdk/components/drivers_nrf/config)
+INC_PATHS += -I$(abspath ../../../../nrf5_iot_sdk/components/libraries/mem_manager)
+INC_PATHS += -I$(abspath ../../../../nrf5_iot_sdk/components/drivers_nrf/uart)
+INC_PATHS += -I$(abspath ../../../../nrf5_iot_sdk/components/iot/ble_ipsp)
+INC_PATHS += -I$(abspath ../../../../nrf5_iot_sdk/components/libraries/scheduler)
+INC_PATHS += -I$(abspath ../../../../nrf5_iot_sdk/components/iot/iot_timer)
+INC_PATHS += -I$(abspath ../../../../nrf5_iot_sdk/external/lwip/src/include/netif)
+INC_PATHS += -I$(abspath ../../../../nrf5_iot_sdk/components/iot/medium/commissioning)
+INC_PATHS += -I$(abspath ../../../../nrf5_iot_sdk/components/iot/include)
+INC_PATHS += -I$(abspath ../../../../nrf5_iot_sdk/components/drivers_nrf/pstorage)
+INC_PATHS += -I$(abspath ../../..)
+INC_PATHS += -I$(abspath ../../../../../..)
+INC_PATHS += -I$(abspath ../../../rtt/RTT)
+INC_PATHS += -I$(abspath ../../../../nrf5_iot_sdk/components/iot/context_manager)
+INC_PATHS += -I$(abspath ../../../../nrf5_iot_sdk/components/toolchain/gcc)
+INC_PATHS += -I$(abspath ../../../../nrf5_iot_sdk/components/drivers_nrf/delay)
+INC_PATHS += -I$(abspath ../../../../nrf5_iot_sdk/components/iot/medium/ble_ncfgs)
+INC_PATHS += -I$(abspath ../../../../nrf5_iot_sdk/components/drivers_nrf/gpiote)
+INC_PATHS += -I$(abspath ../../../../nrf5_iot_sdk/components/softdevice/s1xx_iot/headers/nrf52)
+INC_PATHS += -I$(abspath ../../../../nrf5_iot_sdk/external/lwip/src/include/lwip)
+INC_PATHS += -I$(abspath ../../../../nrf5_iot_sdk/components/iot/common)
+INC_PATHS += -I$(abspath ../../../../nrf5_iot_sdk/components/libraries/timer)
+INC_PATHS += -I$(abspath ../../../../nrf5_iot_sdk/external/lwip/src/port/arch)
+INC_PATHS += -I$(abspath ../../../../nrf5_iot_sdk/components/libraries/button)
+INC_PATHS += -I$(abspath ../../../../nrf5_iot_sdk/components/libraries/util)
+INC_PATHS += -I$(abspath ../../../../nrf5_iot_sdk/examples/bsp)
+INC_PATHS += -I$(abspath ../../../../nrf5_iot_sdk/components/toolchain)
+INC_PATHS += -I$(abspath ../../../../nrf5_iot_sdk/components/iot/medium/include)
+
+OBJECT_DIRECTORY = _build
+LISTING_DIRECTORY = $(OBJECT_DIRECTORY)
+OUTPUT_BINARY_DIRECTORY = $(OBJECT_DIRECTORY)
+
+# Sorting removes duplicates
+BUILD_DIRECTORIES := $(sort $(OBJECT_DIRECTORY) $(OUTPUT_BINARY_DIRECTORY) $(LISTING_DIRECTORY) )
+
+# Mongoose features
+MG_FEATURES_TINY = \
+                   -DMG_DISABLE_HTTP_DIGEST_AUTH \
+                   -DMG_DISABLE_MD5 \
+                   -DMG_DISABLE_HTTP_KEEP_ALIVE \
+                   -DMG_ENABLE_HTTP_SSI=0 \
+                   -DMG_ENABLE_HTTP_STREAMING_MULTIPART \
+                   -DMG_NO_BSD_SOCKETS
+
+#flags common to all targets
+CFLAGS  = -D__HEAP_SIZE=4096
+#CFLAGS += -DCOMMISSIONING_ENABLED
+CFLAGS += -DSWI_DISABLE0
+CFLAGS += -DSOFTDEVICE_PRESENT
+CFLAGS += -DBOARD_PCA10040
+CFLAGS += -DNRF52
+CFLAGS += -DCONFIG_GPIO_AS_PINRESET
+CFLAGS += -DBLE_STACK_SUPPORT_REQD
+CFLAGS += -Ds1xx
+CFLAGS += -mcpu=cortex-m4
+CFLAGS += -mthumb -mabi=aapcs --std=gnu99
+CFLAGS += -w -g3 -O3
+CFLAGS += -mfloat-abi=hard -mfpu=fpv4-sp-d16
+# keep every function in separate section. This will allow linker to dump unused functions
+CFLAGS += -ffunction-sections -fdata-sections -fno-strict-aliasing
+CFLAGS += -fno-builtin --short-enums
+
+CFLAGS += -DCS_ENABLE_STDIO
+
+# This macro is needed for stdout to be retargeted to either UART or RTT
+CFLAGS += -DENABLE_DEBUG_LOG_SUPPORT
+
+# Don't retarget stdout to UART; it'll be retargeted to RTT
+CFLAGS += -DNRF_LOG_USES_RTT
+
+# Mongoose flags
+CFLAGS += -DCS_PLATFORM=CS_P_NRF52 $(MG_FEATURES_TINY) -DMG_MODULE_LINES
+
+# keep every function in separate section. This will allow linker to dump unused functions
+LDFLAGS += -Xlinker -Map=$(LISTING_DIRECTORY)/$(OUTPUT_FILENAME).map
+LDFLAGS += -mthumb -mabi=aapcs -L $(TEMPLATE_PATH) -T$(LINKER_SCRIPT)
+LDFLAGS += -mcpu=cortex-m4
+LDFLAGS += -mfloat-abi=hard -mfpu=fpv4-sp-d16
+# let linker to dump unused sections
+LDFLAGS += -Wl,--gc-sections
+# use newlib in nano version
+LDFLAGS += --specs=nano.specs -lc -lnosys
+
+# Assembler flags
+ASMFLAGS += -x assembler-with-cpp
+ASMFLAGS += -D__HEAP_SIZE=4096
+ASMFLAGS += -DSWI_DISABLE0
+ASMFLAGS += -DSOFTDEVICE_PRESENT
+ASMFLAGS += -DBOARD_PCA10040
+ASMFLAGS += -DNRF52
+ASMFLAGS += -DCONFIG_GPIO_AS_PINRESET
+ASMFLAGS += -DENABLE_DEBUG_LOG_SUPPORT
+ASMFLAGS += -DBLE_STACK_SUPPORT_REQD
+ASMFLAGS += -Ds1xx
+ASMFLAGS += -g3
+
+#building all targets
+all: nrf52832_xxaa_s1xx_iot
+
+#target for printing all targets
+help:
+	@echo following targets are available:
+	@echo 	nrf52832_xxaa_s1xx_iot
+
+C_SOURCE_FILE_NAMES = $(notdir $(C_SOURCE_FILES))
+C_PATHS = $(call remduplicates, $(dir $(C_SOURCE_FILES) ) )
+C_OBJECTS = $(addprefix $(OBJECT_DIRECTORY)/, $(C_SOURCE_FILE_NAMES:.c=.o) )
+
+ASM_SOURCE_FILE_NAMES = $(notdir $(ASM_SOURCE_FILES))
+ASM_PATHS = $(call remduplicates, $(dir $(ASM_SOURCE_FILES) ))
+ASM_OBJECTS = $(addprefix $(OBJECT_DIRECTORY)/, $(ASM_SOURCE_FILE_NAMES:.s=.o) )
+
+vpath %.c $(C_PATHS)
+vpath %.s $(ASM_PATHS)
+
+OBJECTS = $(C_OBJECTS) $(ASM_OBJECTS)
+
+nrf52832_xxaa_s1xx_iot: OUTPUT_FILENAME := nrf52832_xxaa_s1xx_iot
+nrf52832_xxaa_s1xx_iot: LINKER_SCRIPT=iot_lwip_tcp_server_gcc_nrf52.ld
+
+nrf52832_xxaa_s1xx_iot: $(BUILD_DIRECTORIES) $(OBJECTS)
+	@echo Linking target: $(OUTPUT_FILENAME).out
+	$(NO_ECHO)$(CC) $(LDFLAGS) $(OBJECTS) $(LIBS) -o $(OUTPUT_BINARY_DIRECTORY)/$(OUTPUT_FILENAME).out
+	$(NO_ECHO)$(MAKE) -f $(MAKEFILE_NAME) -C $(MAKEFILE_DIR) -e finalize
+
+## Create build directories
+$(BUILD_DIRECTORIES):
+	echo $(MAKEFILE_NAME)
+	$(MK) $@
+
+# Create objects from C SRC files
+$(OBJECT_DIRECTORY)/%.o: %.c
+	@echo Compiling file: $(notdir $<)
+	$(NO_ECHO)$(CC) $(CFLAGS) $(INC_PATHS) -c -o $@ $<
+
+# Assemble files
+$(OBJECT_DIRECTORY)/%.o: %.s
+	@echo Assembly file: $(notdir $<)
+	$(NO_ECHO)$(CC) $(ASMFLAGS) $(INC_PATHS) -c -o $@ $<
+# Link
+$(OUTPUT_BINARY_DIRECTORY)/$(OUTPUT_FILENAME).out: $(BUILD_DIRECTORIES) $(OBJECTS)
+	@echo Linking target: $(OUTPUT_FILENAME).out
+	$(NO_ECHO)$(CC) $(LDFLAGS) $(OBJECTS) $(LIBS) -o $(OUTPUT_BINARY_DIRECTORY)/$(OUTPUT_FILENAME).out
+## Create binary .bin file from the .out file
+$(OUTPUT_BINARY_DIRECTORY)/$(OUTPUT_FILENAME).bin: $(OUTPUT_BINARY_DIRECTORY)/$(OUTPUT_FILENAME).out
+	@echo Preparing: $(OUTPUT_FILENAME).bin
+	$(NO_ECHO)$(OBJCOPY) -O binary $(OUTPUT_BINARY_DIRECTORY)/$(OUTPUT_FILENAME).out $(OUTPUT_BINARY_DIRECTORY)/$(OUTPUT_FILENAME).bin
+
+## Create binary .hex file from the .out file
+$(OUTPUT_BINARY_DIRECTORY)/$(OUTPUT_FILENAME).hex: $(OUTPUT_BINARY_DIRECTORY)/$(OUTPUT_FILENAME).out
+	@echo Preparing: $(OUTPUT_FILENAME).hex
+	$(NO_ECHO)$(OBJCOPY) -O ihex $(OUTPUT_BINARY_DIRECTORY)/$(OUTPUT_FILENAME).out $(OUTPUT_BINARY_DIRECTORY)/$(OUTPUT_FILENAME).hex
+
+finalize: genbin genhex echosize
+
+genbin:
+	@echo Preparing: $(OUTPUT_FILENAME).bin
+	$(NO_ECHO)$(OBJCOPY) -O binary $(OUTPUT_BINARY_DIRECTORY)/$(OUTPUT_FILENAME).out $(OUTPUT_BINARY_DIRECTORY)/$(OUTPUT_FILENAME).bin
+
+## Create binary .hex file from the .out file
+genhex: 
+	@echo Preparing: $(OUTPUT_FILENAME).hex
+	$(NO_ECHO)$(OBJCOPY) -O ihex $(OUTPUT_BINARY_DIRECTORY)/$(OUTPUT_FILENAME).out $(OUTPUT_BINARY_DIRECTORY)/$(OUTPUT_FILENAME).hex
+echosize:
+	-@echo ''
+	$(NO_ECHO)$(SIZE) $(OUTPUT_BINARY_DIRECTORY)/$(OUTPUT_FILENAME).out
+	-@echo ''
+
+clean:
+	$(RM) $(BUILD_DIRECTORIES)
+
+cleanobj:
+	$(RM) $(BUILD_DIRECTORIES)/*.o
+flash: $(MAKECMDGOALS)
+	@echo Flashing: $(OUTPUT_BINARY_DIRECTORY)/nrf52832_xxaa_s1xx_iot.hex
+	nrfjprog --program $(OUTPUT_BINARY_DIRECTORY)/nrf52832_xxaa_s1xx_iot.hex -f nrf52 --sectorerase
+	nrfjprog --reset -f nrf52
+
+## Flash softdevice
diff --git a/examples/nRF52/Makefile b/examples/nRF52/http/boards/pca10040/armgcc/Makefile.docker
similarity index 67%
rename from examples/nRF52/Makefile
rename to examples/nRF52/http/boards/pca10040/armgcc/Makefile.docker
index 103081e7e..f9998eaa0 100644
--- a/examples/nRF52/Makefile
+++ b/examples/nRF52/http/boards/pca10040/armgcc/Makefile.docker
@@ -1,5 +1,5 @@
 SDK ?= $(shell cat sdk.version)
-SRC_DIR ?= $(realpath ../../..)
+SRC_DIR ?= $(realpath ../../../../../../..)
 
 .PHONY: all clean flash gdbserver gdb jlinkexe rtt
 
@@ -22,5 +22,6 @@ all clean flash gdbserver gdb jlinkexe rtt:
 	$(V)docker run --rm -it $(ADD_DOCKER_ARGS) -v $(SRC_DIR):/src $(SDK) \
 		/bin/bash -c "\
 			make -C /src/mongoose mongoose.c mongoose.h && \
-			make -C /src/mongoose/examples/nRF52 -f Makefile.build $@ -$(MAKEFLAGS) \
+			if [ ! -e /src/mongoose/examples/nRF52/nrf5_iot_sdk ]; then ln -s /opt/nrf5_iot_sdk /src/mongoose/examples/nRF52/nrf5_iot_sdk; fi && \
+			make -C /src/mongoose/examples/nRF52/http/boards/pca10040/armgcc $@ -$(MAKEFLAGS) \
 		"
diff --git a/examples/nRF52/http/boards/pca10040/armgcc/README.md b/examples/nRF52/http/boards/pca10040/armgcc/README.md
new file mode 100644
index 000000000..9854096cb
--- /dev/null
+++ b/examples/nRF52/http/boards/pca10040/armgcc/README.md
@@ -0,0 +1,3 @@
+`Makefile` is intended to be used under nRF IoT SDK (see
+../../../../README.md); `Makefile.docker` is intended to be used under Cesanta
+repository.
diff --git a/examples/nRF52/ld/mongoose_example_nrf52.ld b/examples/nRF52/http/boards/pca10040/armgcc/iot_lwip_tcp_server_gcc_nrf52.ld
similarity index 84%
rename from examples/nRF52/ld/mongoose_example_nrf52.ld
rename to examples/nRF52/http/boards/pca10040/armgcc/iot_lwip_tcp_server_gcc_nrf52.ld
index aefb5d105..02876d7fc 100644
--- a/examples/nRF52/ld/mongoose_example_nrf52.ld
+++ b/examples/nRF52/http/boards/pca10040/armgcc/iot_lwip_tcp_server_gcc_nrf52.ld
@@ -9,4 +9,4 @@ MEMORY
   RAM (rwx) :  ORIGIN = 0x20002800, LENGTH = 0xd800
 }
 
-INCLUDE "nrf5x_common.ld"
\ No newline at end of file
+INCLUDE "nrf5x_common.ld"
diff --git a/examples/nRF52/sdk.version b/examples/nRF52/http/boards/pca10040/armgcc/sdk.version
similarity index 100%
rename from examples/nRF52/sdk.version
rename to examples/nRF52/http/boards/pca10040/armgcc/sdk.version
diff --git a/examples/nRF52/config/ipv6_medium_ble_cfg.h b/examples/nRF52/http/config/ipv6_medium_ble_cfg.h
similarity index 100%
rename from examples/nRF52/config/ipv6_medium_ble_cfg.h
rename to examples/nRF52/http/config/ipv6_medium_ble_cfg.h
diff --git a/examples/nRF52/config/ipv6_medium_platform.h b/examples/nRF52/http/config/ipv6_medium_platform.h
similarity index 100%
rename from examples/nRF52/config/ipv6_medium_platform.h
rename to examples/nRF52/http/config/ipv6_medium_platform.h
diff --git a/examples/nRF52/config/nrf_drv_config.h b/examples/nRF52/http/config/nrf_drv_config.h
similarity index 100%
rename from examples/nRF52/config/nrf_drv_config.h
rename to examples/nRF52/http/config/nrf_drv_config.h
diff --git a/examples/nRF52/config/pstorage_platform.h b/examples/nRF52/http/config/pstorage_platform.h
similarity index 100%
rename from examples/nRF52/config/pstorage_platform.h
rename to examples/nRF52/http/config/pstorage_platform.h
diff --git a/examples/nRF52/config/sdk_config.h b/examples/nRF52/http/config/sdk_config.h
similarity index 100%
rename from examples/nRF52/config/sdk_config.h
rename to examples/nRF52/http/config/sdk_config.h
diff --git a/examples/nRF52/main.c b/examples/nRF52/http/main.c
similarity index 90%
rename from examples/nRF52/main.c
rename to examples/nRF52/http/main.c
index 9c655db39..897703101 100644
--- a/examples/nRF52/main.c
+++ b/examples/nRF52/http/main.c
@@ -6,7 +6,7 @@
 #include "bleconfig.h"
 #include "myboard.h"
 
-#include "../../mongoose.h"
+#include "mongoose.h"
 
 /*
  * This is a callback invoked by Mongoose to signal that a poll is needed soon.
@@ -72,9 +72,11 @@ int main(void)
     // Note that many connections can be added to a single event manager
     // Connections can be created at any point, e.g. in event handler function
     const char *err;
-    struct mg_bind_opts opts = {};
+    struct mg_bind_opts opts;
+    struct mg_connection *nc = NULL;
+    memset(&opts, 0x00, sizeof(opts));
     opts.error_string = &err;
-    struct mg_connection *nc = mg_bind_opt(&mgr, "80", ev_handler, opts);  // Create listening connection and add it to the event manager
+    nc = mg_bind_opt(&mgr, "80", ev_handler, opts);  // Create listening connection and add it to the event manager
     if (nc == NULL) {
       printf("Failed to create listener: %s\n", err);
       return 1;
diff --git a/examples/nRF52/myboard.h b/examples/nRF52/http/myboard.h
similarity index 100%
rename from examples/nRF52/myboard.h
rename to examples/nRF52/http/myboard.h
diff --git a/examples/nRF52/rtt/README.txt b/examples/nRF52/http/rtt/README.txt
similarity index 100%
rename from examples/nRF52/rtt/README.txt
rename to examples/nRF52/http/rtt/README.txt
diff --git a/examples/nRF52/rtt/RTT/SEGGER_RTT.c b/examples/nRF52/http/rtt/RTT/SEGGER_RTT.c
similarity index 100%
rename from examples/nRF52/rtt/RTT/SEGGER_RTT.c
rename to examples/nRF52/http/rtt/RTT/SEGGER_RTT.c
diff --git a/examples/nRF52/rtt/RTT/SEGGER_RTT.h b/examples/nRF52/http/rtt/RTT/SEGGER_RTT.h
similarity index 100%
rename from examples/nRF52/rtt/RTT/SEGGER_RTT.h
rename to examples/nRF52/http/rtt/RTT/SEGGER_RTT.h
diff --git a/examples/nRF52/rtt/RTT/SEGGER_RTT_Conf.h b/examples/nRF52/http/rtt/RTT/SEGGER_RTT_Conf.h
similarity index 93%
rename from examples/nRF52/rtt/RTT/SEGGER_RTT_Conf.h
rename to examples/nRF52/http/rtt/RTT/SEGGER_RTT_Conf.h
index e8ddee7e7..cd1c02a57 100644
--- a/examples/nRF52/rtt/RTT/SEGGER_RTT_Conf.h
+++ b/examples/nRF52/http/rtt/RTT/SEGGER_RTT_Conf.h
@@ -27,7 +27,7 @@ Purpose : Implementation of SEGGER real-time terminal which allows
 #define SEGGER_RTT_MAX_NUM_UP_BUFFERS             (2)     // Max. number of up-buffers (T->H) available on this target    (Default: 2)
 #define SEGGER_RTT_MAX_NUM_DOWN_BUFFERS           (2)     // Max. number of down-buffers (H->T) available on this target  (Default: 2)
 
-#define BUFFER_SIZE_UP                            (512)  // Size of the buffer for terminal output of target, up to host (Default: 1k)
+#define BUFFER_SIZE_UP                            (2048)  // Size of the buffer for terminal output of target, up to host (Default: 1k)
 #define BUFFER_SIZE_DOWN                          (16)    // Size of the buffer for terminal input to target from host (Usually keyboard input) (Default: 16)
 
 #define SEGGER_RTT_PRINTF_BUFFER_SIZE             (64)    // Size of buffer for RTT printf to bulk-send chars via RTT     (Default: 64)
diff --git a/examples/nRF52/rtt/RTT/SEGGER_RTT_printf.c b/examples/nRF52/http/rtt/RTT/SEGGER_RTT_printf.c
similarity index 100%
rename from examples/nRF52/rtt/RTT/SEGGER_RTT_printf.c
rename to examples/nRF52/http/rtt/RTT/SEGGER_RTT_printf.c
diff --git a/examples/nRF52/rtt/Syscalls/RTT_Syscalls_GCC.c b/examples/nRF52/http/rtt/Syscalls/RTT_Syscalls_GCC.c
similarity index 100%
rename from examples/nRF52/rtt/Syscalls/RTT_Syscalls_GCC.c
rename to examples/nRF52/http/rtt/Syscalls/RTT_Syscalls_GCC.c
diff --git a/examples/nRF52/rtt/Syscalls/RTT_Syscalls_IAR.c b/examples/nRF52/http/rtt/Syscalls/RTT_Syscalls_IAR.c
similarity index 100%
rename from examples/nRF52/rtt/Syscalls/RTT_Syscalls_IAR.c
rename to examples/nRF52/http/rtt/Syscalls/RTT_Syscalls_IAR.c
diff --git a/examples/nRF52/rtt/Syscalls/RTT_Syscalls_KEIL.c b/examples/nRF52/http/rtt/Syscalls/RTT_Syscalls_KEIL.c
similarity index 100%
rename from examples/nRF52/rtt/Syscalls/RTT_Syscalls_KEIL.c
rename to examples/nRF52/http/rtt/Syscalls/RTT_Syscalls_KEIL.c
diff --git a/examples/nRF52/ld/nrf5x_common.ld b/examples/nRF52/ld/nrf5x_common.ld
deleted file mode 100644
index e58638baf..000000000
--- a/examples/nRF52/ld/nrf5x_common.ld
+++ /dev/null
@@ -1,164 +0,0 @@
-/* Linker script for Nordic Semiconductor nRF5 devices
- *
- * Version: Sourcery G++ 4.5-1
- * Support: https://support.codesourcery.com/GNUToolchain/
- *
- * Copyright (c) 2007, 2008, 2009, 2010 CodeSourcery, Inc.
- *
- * The authors hereby grant permission to use, copy, modify, distribute,
- * and license this software and its documentation for any purpose, provided
- * that existing copyright notices are retained in all copies and that this
- * notice is included verbatim in any distributions.  No written agreement,
- * license, or royalty fee is required for any of the authorized uses.
- * Modifications to this software may be copyrighted by their authors
- * and need not follow the licensing terms described here, provided that
- * the new terms are clearly indicated on the first page of each file where
- * they apply.
- */
-OUTPUT_FORMAT ("elf32-littlearm", "elf32-bigarm", "elf32-littlearm")
-
-/* 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
- *   __HeapLimit
- *   __StackLimit
- *   __StackTop
- *   __stack
- */
-ENTRY(Reset_Handler)
-
-SECTIONS
-{
-	.text :
-	{
-		KEEP(*(.Vectors))
-		*(.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*)
-
-		*(.eh_frame*)
-		. = ALIGN(4);
-	} > FLASH
-    
-
-	.ARM.extab : 
-	{
-		*(.ARM.extab* .gnu.linkonce.armextab.*)
-		. = ALIGN(4);
-	} > FLASH
-
-	__exidx_start = .;
-	.ARM.exidx :
-	{
-		*(.ARM.exidx* .gnu.linkonce.armexidx.*)
-		. = ALIGN(4);
-	} > FLASH
-	__exidx_end = .;
-
-	__etext = .;
-		
-	.data : AT (__etext)
-	{
-		__data_start__ = .;
-		*(vtable)
-		*(.data*)
-
-		. = ALIGN(4);
-		/* preinit data */
-		PROVIDE_HIDDEN (__preinit_array_start = .);
-		KEEP(*(.preinit_array))
-		PROVIDE_HIDDEN (__preinit_array_end = .);
-
-		. = ALIGN(4);
-		/* init data */
-		PROVIDE_HIDDEN (__init_array_start = .);
-		*(SORT(.init_array.*))
-		KEEP(*(.init_array))
-		PROVIDE_HIDDEN (__init_array_end = .);
-
-
-		. = ALIGN(4);
-		/* finit data */
-		PROVIDE_HIDDEN (__fini_array_start = .);
-		*(SORT(.fini_array.*))
-		KEEP(*(.fini_array))
-		PROVIDE_HIDDEN (__fini_array_end = .);
-
-		*(.jcr)
-		. = ALIGN(4);
-		/* All data end */
-		__data_end__ = .;
-
-	} > RAM
-
-	.bss :
-	{
-		. = ALIGN(4);
-		__bss_start__ = .;
-		*(.bss*)
-		*(COMMON)
-		. = ALIGN(4);
-		__bss_end__ = .;
-	} > RAM
-	
-	.heap (COPY):
-	{
-		__end__ = .;
-		end = __end__;
-		*(.heap*)
-		__HeapLimit = .;
-	} > 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*)
-	} > RAM
-
-	/* Set stack top to end of RAM, and stack limit move down by
-	 * size of stack_dummy section */
-	__StackTop = ORIGIN(RAM) + LENGTH(RAM);
-	__StackLimit = __StackTop - SIZEOF(.stack_dummy);
-	PROVIDE(__stack = __StackTop);
-	
-	/* Check if data + heap + stack exceeds RAM limit */
-	ASSERT(__StackLimit >= __HeapLimit, "region RAM overflowed with stack")
-}
-
-- 
GitLab