@@ -33,54 +33,41 @@ OUTPUT_FILENAME = $(BOARD)_bootloader-$(GIT_VERSION)
33
33
# ******************************************************************************
34
34
# Tool configure
35
35
# ******************************************************************************
36
- NRFUTIL = adafruit-nrfutil
37
-
38
- ifneq ($(JLINK ) ,)
39
- NRFJPROG = nrfjprog -s $(JLINK )
40
- else
41
- NRFJPROG = nrfjprog
42
- endif
43
36
44
- # auto-detect BMP on macOS, otherwise have to specify
45
- BMP_PORT ?= $(shell ls -1 /dev/cu.usbmodem????????1 | head -1)
37
+ # Toolchain commands
38
+ # Should be added to your PATH
39
+ CROSS_COMPILE = arm-none-eabi-
40
+ CC := $(CROSS_COMPILE ) gcc
41
+ AS := $(CROSS_COMPILE ) as
42
+ AR := $(CROSS_COMPILE ) ar -r
43
+ LD := $(CROSS_COMPILE ) ld
44
+ NM := $(CROSS_COMPILE ) nm
45
+ OBJDUMP := $(CROSS_COMPILE ) objdump
46
+ OBJCOPY := $(CROSS_COMPILE ) objcopy
47
+ SIZE := $(CROSS_COMPILE ) size
48
+ GDB := $(CROSS_COMPILE ) gdb
46
49
47
- ifeq ($(OS ) ,Windows_NT)
48
- PROGFILES = C:/Program Files (x86)
49
- GNU_INSTALL_ROOT = $(PROGFILES ) /GNU Tools ARM Embedded/7 2018-q2-update/bin/
50
- endif
50
+ NRFUTIL = adafruit-nrfutil
51
+ NRFJPROG = nrfjprog
51
52
52
53
MK := mkdir
53
54
RM := rm -rf
54
55
55
56
# Verbose mode (V=). 0: default, 1: print out CFLAG, LDFLAG 2: print all compile command
56
57
ifeq ("$(V ) ","2")
57
- QUIET =
58
+ QUIET =
58
59
else
59
- QUIET = @
60
+ QUIET = @
60
61
endif
61
62
62
- GNU_PREFIX = arm-none-eabi
63
-
64
- # Toolchain commands
65
- CC := '$(GNU_INSTALL_ROOT )$(GNU_PREFIX ) -gcc'
66
- AS := '$(GNU_INSTALL_ROOT )$(GNU_PREFIX ) -as'
67
- AR := '$(GNU_INSTALL_ROOT )$(GNU_PREFIX ) -ar' -r
68
- LD := '$(GNU_INSTALL_ROOT )$(GNU_PREFIX ) -ld'
69
- NM := '$(GNU_INSTALL_ROOT )$(GNU_PREFIX ) -nm'
70
- OBJDUMP := '$(GNU_INSTALL_ROOT )$(GNU_PREFIX ) -objdump'
71
- OBJCOPY := '$(GNU_INSTALL_ROOT )$(GNU_PREFIX ) -objcopy'
72
- SIZE := '$(GNU_INSTALL_ROOT )$(GNU_PREFIX ) -size'
73
- GDB := '$(GNU_INSTALL_ROOT )$(GNU_PREFIX ) -gdb'
74
-
75
- GDB_BMP = arm-none-eabi-gdb -ex 'target extended-remote $(BMP_PORT ) ' -ex 'monitor swdp_scan' -ex 'attach 1'
76
-
77
- # function for removing duplicates in a list
78
- remduplicates = $(strip $(if $1,$(firstword $1) $(call remduplicates,$(filter-out $(firstword $1) ,$1) ) ) )
63
+ # auto-detect BMP on macOS, otherwise have to specify
64
+ BMP_PORT ?= $(shell ls -1 /dev/cu.usbmodem????????1 | head -1)
65
+ GDB_BMP = $(GDB ) -ex 'target extended-remote $(BMP_PORT ) ' -ex 'monitor swdp_scan' -ex 'attach 1'
79
66
80
67
# *********************************
81
68
# Select the board to build
82
69
# *********************************
83
- BOARD_LIST = $(sort $(subst .h,, $( subst src/boards/,,$(wildcard src/boards/* ) ) ) )
70
+ BOARD_LIST = $(sort $(subst src/boards/,,$(wildcard src/boards/* ) ) )
84
71
85
72
ifeq ($(filter $(BOARD ) ,$(BOARD_LIST ) ) ,)
86
73
$(info You must provide a BOARD parameter with 'BOARD='. Supported boards are :)
@@ -116,77 +103,77 @@ endif
116
103
# ******************************************************************************
117
104
118
105
# src
119
- C_SOURCE_FILES += $(SRC_PATH ) /main .c
120
- C_SOURCE_FILES += $(SRC_PATH ) /boards .c
121
- C_SOURCE_FILES += $(SRC_PATH ) /flash_nrf5x .c
122
- C_SOURCE_FILES += $(SRC_PATH ) /dfu_ble_svc .c
123
- C_SOURCE_FILES += $(SRC_PATH ) /dfu_init .c
106
+ C_SRC += $(SRC_PATH ) /boards .c
107
+ C_SRC += $(SRC_PATH ) /dfu_ble_svc .c
108
+ C_SRC += $(SRC_PATH ) /dfu_init .c
109
+ C_SRC += $(SRC_PATH ) /flash_nrf5x .c
110
+ C_SRC += $(SRC_PATH ) /main .c
124
111
125
112
# all sources files in specific board
126
- C_SOURCE_FILES += $(wildcard $(SRC_PATH ) /boards/$(BOARD ) /* .c)
113
+ C_SRC += $(wildcard $(SRC_PATH ) /boards/$(BOARD ) /* .c)
127
114
128
115
# nrfx
129
- C_SOURCE_FILES += $(NRFX_PATH ) /drivers/src/nrfx_power.c
130
- C_SOURCE_FILES += $(NRFX_PATH ) /drivers/src/nrfx_nvmc.c
131
- C_SOURCE_FILES += $(NRFX_PATH ) /mdk/system_$(MCU_SUB_VARIANT ) .c
116
+ C_SRC += $(NRFX_PATH ) /drivers/src/nrfx_power.c
117
+ C_SRC += $(NRFX_PATH ) /drivers/src/nrfx_nvmc.c
118
+ C_SRC += $(NRFX_PATH ) /mdk/system_$(MCU_SUB_VARIANT ) .c
132
119
133
120
# SDK 11 files
134
- C_SOURCE_FILES += $(SDK11_PATH ) /libraries/bootloader_dfu/bootloader.c
135
- C_SOURCE_FILES += $(SDK11_PATH ) /libraries/bootloader_dfu/bootloader_settings.c
136
- C_SOURCE_FILES += $(SDK11_PATH ) /libraries/bootloader_dfu/bootloader_util.c
137
- C_SOURCE_FILES += $(SDK11_PATH ) /libraries/bootloader_dfu/dfu_transport_serial.c
138
- C_SOURCE_FILES += $(SDK11_PATH ) /libraries/bootloader_dfu/dfu_transport_ble.c
139
- C_SOURCE_FILES += $(SDK11_PATH ) /libraries/bootloader_dfu/dfu_single_bank.c
121
+ C_SRC += $(SDK11_PATH ) /libraries/bootloader_dfu/bootloader.c
122
+ C_SRC += $(SDK11_PATH ) /libraries/bootloader_dfu/bootloader_settings.c
123
+ C_SRC += $(SDK11_PATH ) /libraries/bootloader_dfu/bootloader_util.c
124
+ C_SRC += $(SDK11_PATH ) /libraries/bootloader_dfu/dfu_transport_serial.c
125
+ C_SRC += $(SDK11_PATH ) /libraries/bootloader_dfu/dfu_transport_ble.c
126
+ C_SRC += $(SDK11_PATH ) /libraries/bootloader_dfu/dfu_single_bank.c
140
127
141
- C_SOURCE_FILES += $(SDK11_PATH ) /drivers_nrf/pstorage/pstorage_raw.c
128
+ C_SRC += $(SDK11_PATH ) /drivers_nrf/pstorage/pstorage_raw.c
142
129
143
- C_SOURCE_FILES += $(SDK11_PATH ) /ble/ble_services/ble_dfu/ble_dfu.c
144
- C_SOURCE_FILES += $(SDK11_PATH ) /ble/ble_services/ble_dis/ble_dis.c
130
+ C_SRC += $(SDK11_PATH ) /ble/ble_services/ble_dfu/ble_dfu.c
131
+ C_SRC += $(SDK11_PATH ) /ble/ble_services/ble_dis/ble_dis.c
145
132
146
133
# Latest SDK files
147
- C_SOURCE_FILES += $(SDK_PATH ) /libraries/timer/app_timer.c
148
- C_SOURCE_FILES += $(SDK_PATH ) /libraries/scheduler/app_scheduler.c
149
- C_SOURCE_FILES += $(SDK_PATH ) /libraries/util/app_error.c
150
- C_SOURCE_FILES += $(SDK_PATH ) /libraries/util/app_util_platform.c
151
- C_SOURCE_FILES += $(SDK_PATH ) /libraries/crc16/crc16.c
152
- C_SOURCE_FILES += $(SDK_PATH ) /libraries/hci/hci_mem_pool.c
153
- C_SOURCE_FILES += $(SDK_PATH ) /libraries/hci/hci_slip.c
154
- C_SOURCE_FILES += $(SDK_PATH ) /libraries/hci/hci_transport.c
155
- C_SOURCE_FILES += $(SDK_PATH ) /libraries/util/nrf_assert.c
134
+ C_SRC += $(SDK_PATH ) /libraries/timer/app_timer.c
135
+ C_SRC += $(SDK_PATH ) /libraries/scheduler/app_scheduler.c
136
+ C_SRC += $(SDK_PATH ) /libraries/util/app_error.c
137
+ C_SRC += $(SDK_PATH ) /libraries/util/app_util_platform.c
138
+ C_SRC += $(SDK_PATH ) /libraries/crc16/crc16.c
139
+ C_SRC += $(SDK_PATH ) /libraries/hci/hci_mem_pool.c
140
+ C_SRC += $(SDK_PATH ) /libraries/hci/hci_slip.c
141
+ C_SRC += $(SDK_PATH ) /libraries/hci/hci_transport.c
142
+ C_SRC += $(SDK_PATH ) /libraries/util/nrf_assert.c
156
143
157
144
# UART or USB Serial
158
145
ifeq ($(MCU_SUB_VARIANT ) ,nrf52)
159
- C_SOURCE_FILES += $(SDK_PATH ) /libraries/uart/app_uart.c
160
- C_SOURCE_FILES += $(SDK_PATH ) /drivers_nrf/uart/nrf_drv_uart.c
161
- C_SOURCE_FILES += $(SDK_PATH ) /drivers_nrf/common/nrf_drv_common.c
146
+ C_SRC += $(SDK_PATH ) /libraries/uart/app_uart.c
147
+ C_SRC += $(SDK_PATH ) /drivers_nrf/uart/nrf_drv_uart.c
148
+ C_SRC += $(SDK_PATH ) /drivers_nrf/common/nrf_drv_common.c
162
149
163
150
IPATH += $(SDK11_PATH ) /libraries/util
164
151
IPATH += $(SDK_PATH ) /drivers_nrf/common
165
152
IPATH += $(SDK_PATH ) /drivers_nrf/uart
166
153
167
154
else
168
155
# src
169
- C_SOURCE_FILES += $(SRC_PATH ) /usb/usb_desc.c
170
- C_SOURCE_FILES += $(SRC_PATH ) /usb/usb.c
171
- C_SOURCE_FILES += $(SRC_PATH ) /usb/msc_uf2.c
172
- C_SOURCE_FILES += $(SRC_PATH ) /usb/uf2/ghostfat.c
156
+ C_SRC += $(SRC_PATH ) /usb/usb_desc.c
157
+ C_SRC += $(SRC_PATH ) /usb/usb.c
158
+ C_SRC += $(SRC_PATH ) /usb/msc_uf2.c
159
+ C_SRC += $(SRC_PATH ) /usb/uf2/ghostfat.c
173
160
174
161
# TinyUSB stack
175
- C_SOURCE_FILES += $(TUSB_PATH ) /portable/nordic/nrf5x/dcd_nrf5x.c
176
- C_SOURCE_FILES += $(TUSB_PATH ) /common/tusb_fifo.c
177
- C_SOURCE_FILES += $(TUSB_PATH ) /device/usbd.c
178
- C_SOURCE_FILES += $(TUSB_PATH ) /device/usbd_control.c
179
- C_SOURCE_FILES += $(TUSB_PATH ) /class/cdc/cdc_device.c
180
- C_SOURCE_FILES += $(TUSB_PATH ) /class/msc/msc_device.c
181
- C_SOURCE_FILES += $(TUSB_PATH ) /tusb.c
162
+ C_SRC += $(TUSB_PATH ) /portable/nordic/nrf5x/dcd_nrf5x.c
163
+ C_SRC += $(TUSB_PATH ) /common/tusb_fifo.c
164
+ C_SRC += $(TUSB_PATH ) /device/usbd.c
165
+ C_SRC += $(TUSB_PATH ) /device/usbd_control.c
166
+ C_SRC += $(TUSB_PATH ) /class/cdc/cdc_device.c
167
+ C_SRC += $(TUSB_PATH ) /class/msc/msc_device.c
168
+ C_SRC += $(TUSB_PATH ) /tusb.c
182
169
183
170
endif
184
171
185
172
186
173
# ******************************************************************************
187
174
# Assembly Files
188
175
# ******************************************************************************
189
- ASM_SOURCE_FILES = $(NRFX_PATH ) /mdk/gcc_startup_$(MCU_SUB_VARIANT ) .S
176
+ ASM_SRC = $(NRFX_PATH ) /mdk/gcc_startup_$(MCU_SUB_VARIANT ) .S
190
177
191
178
# ******************************************************************************
192
179
# INCLUDE PATH
@@ -292,12 +279,16 @@ ASMFLAGS += -DSOFTDEVICE_PRESENT
292
279
ASMFLAGS += -DFLOAT_ABI_HARD
293
280
ASMFLAGS += $(MCU_FLAGS )
294
281
295
- C_SOURCE_FILE_NAMES = $(notdir $(C_SOURCE_FILES ) )
296
- C_PATHS = $(call remduplicates, $(dir $(C_SOURCE_FILES ) ) )
282
+
283
+ # function for removing duplicates in a list
284
+ remduplicates = $(strip $(if $1,$(firstword $1) $(call remduplicates,$(filter-out $(firstword $1) ,$1) ) ) )
285
+
286
+ C_SOURCE_FILE_NAMES = $(notdir $(C_SRC ) )
287
+ C_PATHS = $(call remduplicates, $(dir $(C_SRC ) ) )
297
288
C_OBJECTS = $(addprefix $(BUILD ) /, $(C_SOURCE_FILE_NAMES:.c=.o ) )
298
289
299
- ASM_SOURCE_FILE_NAMES = $(notdir $(ASM_SOURCE_FILES ) )
300
- ASM_PATHS = $(call remduplicates, $(dir $(ASM_SOURCE_FILES ) ) )
290
+ ASM_SOURCE_FILE_NAMES = $(notdir $(ASM_SRC ) )
291
+ ASM_PATHS = $(call remduplicates, $(dir $(ASM_SRC ) ) )
301
292
ASM_OBJECTS = $(addprefix $(BUILD ) /, $(ASM_SOURCE_FILE_NAMES:.S=.o ) )
302
293
303
294
vpath % .c $(C_PATHS )
0 commit comments