Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 4 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,16 +9,17 @@ 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
-----
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
---------------
Expand Down
1 change: 1 addition & 0 deletions examples/pca10001/blinky_example/pure-gcc/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ DEVICE = NRF51
BOARD = BOARD_PCA10001
#SEGGER_SERIAL =

#SDK_VERSION = 7
#USE_SOFTDEVICE = s110

SDK_PATH = $(HOME)/Projects/nrf51/nrf51822/
Expand Down
1 change: 1 addition & 0 deletions examples/pca10001/s110/ble_app_hrs/pure-gcc/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -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/
Expand Down
1 change: 1 addition & 0 deletions examples/pca10001/s110/ble_app_proximity/pure-gcc/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ DEVICE = NRF51
BOARD = BOARD_PCA10001
#SEGGER_SERIAL =

#SDK_VERSION = 7
USE_SOFTDEVICE = s110

SDK_PATH = ../../../../../
Expand Down
84 changes: 72 additions & 12 deletions template/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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/
Expand All @@ -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))

Expand Down