From ce74639d3723e23ba7cc30721e8c8ad4119d98fe Mon Sep 17 00:00:00 2001 From: Josh Adkins Date: Wed, 21 Jan 2015 18:11:54 -0500 Subject: [PATCH] Updated to support version 7 --- README.md | 7 +- .../pca10001/blinky_example/pure-gcc/Makefile | 1 + .../s110/ble_app_hrs/pure-gcc/Makefile | 1 + .../s110/ble_app_proximity/pure-gcc/Makefile | 1 + template/Makefile | 84 ++++++++++++++++--- 5 files changed, 79 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index 3526bdd..53612a2 100644 --- a/README.md +++ b/README.md @@ -9,8 +9,8 @@ pull request if you find something that doesn't work. This was started (long) before the official SDK got GCC support, but I've kept maintaining it, since I don't really like the official Makefiles... -The currently supported SDK version is 6.0.0. Support for some other versions -are available as branches. +The currently supported SDK versions are 6.0.0 and 7.2.0. +Support for some other versions are available as branches. Usage ----- @@ -18,7 +18,8 @@ Make a pure-gcc subfolder in your project folder (i.e. alongside the arm/gcc/iar folders from the SDK) and copy an example Makefile from the examples/ folder into it. Make sure that the SDK_PATH and TEMPLATE_PATH points towards your nRF51 SDK installation and the template/ subfolder of your clone -of this repository respectively. +of this repository respectively. Also make sure that SDK_VERSION = 7 is +uncommented if you are using version 7 of the SDK. Project options --------------- diff --git a/examples/pca10001/blinky_example/pure-gcc/Makefile b/examples/pca10001/blinky_example/pure-gcc/Makefile index 87faa85..9d576f8 100644 --- a/examples/pca10001/blinky_example/pure-gcc/Makefile +++ b/examples/pca10001/blinky_example/pure-gcc/Makefile @@ -7,6 +7,7 @@ DEVICE = NRF51 BOARD = BOARD_PCA10001 #SEGGER_SERIAL = +#SDK_VERSION = 7 #USE_SOFTDEVICE = s110 SDK_PATH = $(HOME)/Projects/nrf51/nrf51822/ diff --git a/examples/pca10001/s110/ble_app_hrs/pure-gcc/Makefile b/examples/pca10001/s110/ble_app_hrs/pure-gcc/Makefile index 88326fa..e53e97d 100644 --- a/examples/pca10001/s110/ble_app_hrs/pure-gcc/Makefile +++ b/examples/pca10001/s110/ble_app_hrs/pure-gcc/Makefile @@ -21,6 +21,7 @@ DEVICE = NRF51 BOARD = BOARD_PCA10001 #SEGGER_SERIAL = +#SDK_VERSION = 7 USE_SOFTDEVICE = s110 SDK_PATH = $(HOME)/Projects/nrf51-sdk-6.0.0/nrf51822/ diff --git a/examples/pca10001/s110/ble_app_proximity/pure-gcc/Makefile b/examples/pca10001/s110/ble_app_proximity/pure-gcc/Makefile index 2cdc342..8573b56 100644 --- a/examples/pca10001/s110/ble_app_proximity/pure-gcc/Makefile +++ b/examples/pca10001/s110/ble_app_proximity/pure-gcc/Makefile @@ -24,6 +24,7 @@ DEVICE = NRF51 BOARD = BOARD_PCA10001 #SEGGER_SERIAL = +#SDK_VERSION = 7 USE_SOFTDEVICE = s110 SDK_PATH = ../../../../../ diff --git a/template/Makefile b/template/Makefile index 79f6a52..5e79c41 100644 --- a/template/Makefile +++ b/template/Makefile @@ -11,15 +11,6 @@ GDB = $(TOOLCHAIN_PATH)$(TOOLCHAIN_PREFIX)-gdb START_CODE ?= startup_nrf51.s SYSTEM_FILE ?= system_nrf51.c -SDK_INCLUDE_PATH += $(SDK_PATH)Include/ -SDK_SOURCE_PATH += $(SDK_PATH)Source/ -CMSIS_INCLUDE_PATH += $(SDK_PATH)Include/gcc - -LIBRARY_PATHS += ../ -LIBRARY_PATHS += $(SDK_INCLUDE_PATH) -LIBRARY_PATHS += $(SDK_INCLUDE_PATH)sdk/ -SOURCE_PATHS += ../ $(SDK_SOURCE_PATH) $(TEMPLATE_PATH) $(wildcard $(SDK_SOURCE_PATH)*/) - ifeq ($(USE_SOFTDEVICE), s110) USE_BLE = 1 endif @@ -37,6 +28,71 @@ ifeq ($(USE_SOFTDEVICE), s310) USE_ANT = 1 endif + +ifeq ($(SDK_VERSION), 7) +#this is for version 7 + + SDK_INCLUDE_PATH += $(SDK_PATH)components/ + SDK_SOURCE_PATH += $(SDK_PATH)components/ + CMSIS_INCLUDE_PATH += $(SDK_PATH)components/toolchain/gcc/ + LIBRARY_PATHS += $(wildcard $(SDK_INCLUDE_PATH)libraries/*/) + LIBRARY_PATHS += $(wildcard $(SDK_INCLUDE_PATH)drivers_nrf/ble_flash/) + LIBRARY_PATHS += $(wildcard $(SDK_INCLUDE_PATH)drivers_nrf/hal/) + LIBRARY_PATHS += $(wildcard $(SDK_INCLUDE_PATH)drivers_nrf/pstorage/) + LIBRARY_PATHS += $(wildcard $(SDK_INCLUDE_PATH)drivers_nrf/radio_config/) + LIBRARY_PATHS += $(wildcard $(SDK_INCLUDE_PATH)drivers_nrf/sdio/) + LIBRARY_PATHS += $(wildcard $(SDK_INCLUDE_PATH)drivers_nrf/simple_uart/) + LIBRARY_PATHS += $(wildcard $(SDK_INCLUDE_PATH)drivers_nrf/spi_master/) + LIBRARY_PATHS += $(wildcard $(SDK_INCLUDE_PATH)drivers_nrf/spi_slave/) + LIBRARY_PATHS += $(wildcard $(SDK_INCLUDE_PATH)drivers_nrf/twi_master/) + LIBRARY_PATHS += $(wildcard $(SDK_INCLUDE_PATH)drivers_nrf/uart/) + LIBRARY_PATHS += $(wildcard $(SDK_INCLUDE_PATH)drivers_ext/*/) + LIBRARY_PATHS += $(wildcard $(SDK_INCLUDE_PATH)serialization/*/) + LIBRARY_PATHS += $(SDK_PATH)components/toolchain/gcc/ + LIBRARY_PATHS += $(SDK_INCLUDE_PATH)toolchain/ + SOURCE_PATHS += ../ + SOURCE_PATHS += $(SDK_SOURCE_PATH) + SOURCE_PATHS += $(TEMPLATE_PATH) + SOURCE_PATHS += $(wildcard $(SDK_SOURCE_PATH)*/) + SOURCE_PATHS += $(wildcard $(SDK_SOURCE_PATH)libraries/*/) + SOURCE_PATHS += $(wildcard $(SDK_SOURCE_PATH)drivers_nrf/*/) + SOURCE_PATHS += $(wildcard $(SDK_SOURCE_PATH)drivers_ext/*/) + SOURCE_PATHS += $(wildcard $(SDK_SOURCE_PATH)serialization/*/) + +ifdef USE_BLE + LIBRARY_PATHS += $(wildcard $(SDK_INCLUDE_PATH)ble/*/) + LIBRARY_PATHS += $(wildcard $(SDK_INCLUDE_PATH)ble/ble_services/*/) + SOURCE_PATHS += $(wildcard $(SDK_SOURCE_PATH)ble/*/) + SOURCE_PATHS += $(wildcard $(SDK_SOURCE_PATH)ble/ble_services/*/) + CFLAGS += -DBLE_STACK_SUPPORT_REQD +endif + +ifdef USE_ANT + CFLAGS += -DANT_STACK_SUPPORT_REQD +endif + +ifdef USE_SOFTDEVICE + LIBRARY_PATHS += $(SDK_INCLUDE_PATH)softdevice/common/softdevice_handler/ + LIBRARY_PATHS += $(SDK_INCLUDE_PATH)softdevice/$(USE_SOFTDEVICE)/headers/ + SOURCE_PATHS += $(SDK_INCLUDE_PATH)softdevice/common/softdevice_handler/ + SOURCE_PATHS += $(SDK_INCLUDE_PATH)softdevice/$(USE_SOFTDEVICE)/headers/ +else + LIBRARY_PATHS += $(wildcard $(SDK_INCLUDE_PATH)drivers_nrf/nrf_soc_nosd/) + USE_SOFTDEVICE = blank +endif + +else +#this is for version 6(default) + +SDK_INCLUDE_PATH += $(SDK_PATH)Include/ +SDK_SOURCE_PATH += $(SDK_PATH)Source/ +CMSIS_INCLUDE_PATH += $(SDK_PATH)Include/gcc + +LIBRARY_PATHS += ../ +LIBRARY_PATHS += $(SDK_INCLUDE_PATH) +LIBRARY_PATHS += $(SDK_INCLUDE_PATH)sdk/ +SOURCE_PATHS += ../ $(SDK_SOURCE_PATH) $(TEMPLATE_PATH) $(wildcard $(SDK_SOURCE_PATH)*/) + ifdef USE_BLE LIBRARY_PATHS += $(SDK_INCLUDE_PATH)ble/ LIBRARY_PATHS += $(SDK_INCLUDE_PATH)ble/ble_services/ @@ -58,14 +114,18 @@ else USE_SOFTDEVICE = blank endif -LINKER_SCRIPT ?= gcc_nrf51_$(USE_SOFTDEVICE).ld -OUTPUT_NAME ?= $(addsuffix _$(USE_SOFTDEVICE), $(PROJECT_NAME)) - ifdef USE_EXT_SENSORS LIBRARY_PATHS += $(SDK_INCLUDE_PATH)ext_sensors/ SOURCE_PATHS += $(wildcard $(SDK_SOURCE_PATH)ext_sensors/*/) endif +endif + +print-% : ; @echo $* = $($*) + +LINKER_SCRIPT ?= gcc_nrf51_$(USE_SOFTDEVICE).ld +OUTPUT_NAME ?= $(addsuffix _$(USE_SOFTDEVICE), $(PROJECT_NAME)) + LIBRARY_INCLUDES = $(addprefix -I,$(LIBRARY_PATHS)) CMSIS_INCLUDE = $(addprefix -I,$(CMSIS_INCLUDE_PATH))