7
7
# - SD_HEX : to bootloader hex binary
8
8
# ------------------------------------------------------------------------------
9
9
10
+ # local customization
10
11
-include Makefile.user
11
12
12
13
SDK_PATH = lib/sdk/components
@@ -15,8 +16,9 @@ TUSB_PATH = lib/tinyusb/src
15
16
NRFX_PATH = lib/nrfx
16
17
SD_PATH = lib/softdevice/$(SD_FILENAME )
17
18
19
+ # SD_VERSION can be overwritten by board.mk
18
20
ifndef SD_VERSION
19
- SD_VERSION = 6.1.1
21
+ SD_VERSION = 6.1.1
20
22
endif
21
23
22
24
SD_FILENAME = $(SD_NAME ) _nrf52_$(SD_VERSION )
@@ -37,7 +39,7 @@ OUT_NAME = $(BOARD)_bootloader-$(GIT_VERSION)
37
39
MERGED_FILE = $(OUT_NAME ) _$(SD_NAME ) _$(SD_VERSION )
38
40
39
41
# ------------------------------------------------------------------------------
40
- # Tool configure
42
+ # Tool Configure
41
43
# ------------------------------------------------------------------------------
42
44
43
45
# Toolchain commands
@@ -208,39 +210,46 @@ ASM_SRC = $(NRFX_PATH)/mdk/gcc_startup_$(MCU_SUB_VARIANT).S
208
210
# ------------------------------------------------------------------------------
209
211
210
212
# src
211
- IPATH += src
212
- IPATH += src/boards
213
- IPATH += src/boards/$(BOARD )
214
- IPATH += src/cmsis/include
215
- IPATH += src/usb
216
- IPATH += $(TUSB_PATH )
213
+ IPATH += \
214
+ src \
215
+ src/boards \
216
+ src/boards/$(BOARD) \
217
+ src/cmsis/include \
218
+ src/usb \
219
+ $(TUSB_PATH)
217
220
218
221
# nrfx
219
- IPATH += $(NRFX_PATH )
220
- IPATH += $(NRFX_PATH ) /mdk
221
- IPATH += $(NRFX_PATH ) /hal
222
- IPATH += $(NRFX_PATH ) /drivers/include
223
- IPATH += $(NRFX_PATH ) /drivers/src
224
-
225
- IPATH += $(SDK11_PATH ) /libraries/bootloader_dfu/hci_transport
226
- IPATH += $(SDK11_PATH ) /libraries/bootloader_dfu
227
- IPATH += $(SDK11_PATH ) /drivers_nrf/pstorage
228
- IPATH += $(SDK11_PATH ) /ble/common
229
- IPATH += $(SDK11_PATH ) /ble/ble_services/ble_dfu
230
- IPATH += $(SDK11_PATH ) /ble/ble_services/ble_dis
231
-
232
- IPATH += $(SDK_PATH ) /libraries/timer
233
- IPATH += $(SDK_PATH ) /libraries/scheduler
234
- IPATH += $(SDK_PATH ) /libraries/crc16
235
- IPATH += $(SDK_PATH ) /libraries/util
236
- IPATH += $(SDK_PATH ) /libraries/hci/config
237
- IPATH += $(SDK_PATH ) /libraries/uart
238
- IPATH += $(SDK_PATH ) /libraries/hci
239
- IPATH += $(SDK_PATH ) /drivers_nrf/delay
240
-
241
- # Softdevice
242
- IPATH += $(SD_PATH ) /$(SD_FILENAME ) _API/include
243
- IPATH += $(SD_PATH ) /$(SD_FILENAME ) _API/include/nrf52
222
+ IPATH += \
223
+ $(NRFX_PATH) \
224
+ $(NRFX_PATH)/mdk \
225
+ $(NRFX_PATH)/hal \
226
+ $(NRFX_PATH)/drivers/include \
227
+ $(NRFX_PATH)/drivers/src
228
+
229
+ # sdk11 for cdc/ble dfu
230
+ IPATH += \
231
+ $(SDK11_PATH)/libraries/bootloader_dfu/hci_transport \
232
+ $(SDK11_PATH)/libraries/bootloader_dfu \
233
+ $(SDK11_PATH)/drivers_nrf/pstorage \
234
+ $(SDK11_PATH)/ble/common \
235
+ $(SDK11_PATH)/ble/ble_services/ble_dfu \
236
+ $(SDK11_PATH)/ble/ble_services/ble_dis
237
+
238
+ # later sdk with updated drivers
239
+ IPATH += \
240
+ $(SDK_PATH)/libraries/timer \
241
+ $(SDK_PATH)/libraries/scheduler \
242
+ $(SDK_PATH)/libraries/crc16 \
243
+ $(SDK_PATH)/libraries/util \
244
+ $(SDK_PATH)/libraries/hci/config \
245
+ $(SDK_PATH)/libraries/uart \
246
+ $(SDK_PATH)/libraries/hci \
247
+ $(SDK_PATH)/drivers_nrf/delay
248
+
249
+ # SoftDevice
250
+ IPATH += \
251
+ $(SD_PATH)/$(SD_FILENAME)_API/include \
252
+ $(SD_PATH)/$(SD_FILENAME)_API/include/nrf52
244
253
245
254
# ------------------------------------------------------------------------------
246
255
# Compiler Flags
@@ -253,6 +262,7 @@ CFLAGS += \
253
262
-mcpu=cortex-m4 \
254
263
-mfloat-abi=hard \
255
264
-mfpu=fpv4-sp-d16 \
265
+ -ggdb \
256
266
-Os \
257
267
-ffunction-sections \
258
268
-fdata-sections \
@@ -272,15 +282,11 @@ CFLAGS += \
272
282
-Wsign-compare \
273
283
-Wmissing-format-attribute \
274
284
-Wno-endif-labels \
275
- -Wunreachable-code \
276
- -ggdb
285
+ -Wunreachable-code
277
286
278
287
# Suppress warning caused by SDK
279
288
CFLAGS += -Wno-unused-parameter -Wno-expansion-to-defined
280
289
281
- # TinyUSB tusb_hal_nrf_power_event
282
- CFLAGS += -Wno-cast-function-type
283
-
284
290
# Nordic Softdevice SDK header files contains inline assembler that has
285
291
# broken constraints. As a result the IPA-modref pass, introduced in gcc-11,
286
292
# is able to "prove" that arguments to wrapper functions generated with
@@ -332,6 +338,7 @@ LIBS += -lm -lc
332
338
# ------------------------------------------------------------------------------
333
339
# Assembler flags
334
340
# ------------------------------------------------------------------------------
341
+
335
342
ASFLAGS += $(CFLAGS )
336
343
337
344
# function for removing duplicates in a list
@@ -356,7 +363,7 @@ INC_PATHS = $(addprefix -I,$(IPATH))
356
363
# BUILD TARGETS
357
364
# ------------------------------------------------------------------------------
358
365
359
- .PHONY : all clean flash dfu- flash sd gdbflash gdb
366
+ .PHONY : all clean flash flash- dfu flash-sd flash-mbr dfu-flash sd mbr gdbflash gdb
360
367
361
368
# default target to build
362
369
all : $(BUILD ) /$(OUT_NAME ) .out $(BUILD ) /$(OUT_NAME ) _nosd.hex $(BUILD ) /update-$(OUT_NAME ) _nosd.uf2 $(BUILD ) /$(MERGED_FILE ) .hex $(BUILD ) /$(MERGED_FILE ) .zip
@@ -431,7 +438,9 @@ copy-artifact: $(BIN)
431
438
@$(CP ) $(BUILD ) /$(MERGED_FILE ) .hex $(BIN )
432
439
@$(CP ) $(BUILD ) /$(MERGED_FILE ) .zip $(BIN )
433
440
434
- # ------------------- Flash target -------------------
441
+ # --------------------------------------
442
+ # Flash Target
443
+ # --------------------------------------
435
444
436
445
check_defined = \
437
446
$(strip $(foreach 1,$1, \
@@ -440,29 +449,31 @@ __check_defined = \
440
449
$(if $(value $1),, \
441
450
$(error Undefined make flag : $1$(if $2, ($2) )))
442
451
452
+ # erase chip
453
+ erase :
454
+ @echo Erasing flash
455
+ $(call FLASH_ERASE_CMD)
456
+
443
457
# Flash the compiled
444
458
flash : $(BUILD ) /$(OUT_NAME ) _nosd.hex
445
459
@echo Flashing: $(notdir $< )
446
460
$(call FLASH_CMD,$< )
447
461
448
- erase :
449
- @echo Erasing flash
450
- $(call FLASH_ERASE_CMD)
451
-
452
462
# flash SD only
453
- sd :
463
+ sd : flash-sd
464
+ flash-sd :
454
465
@echo Flashing: $(SD_HEX )
455
466
$(call FLASH_NOUICR_CMD,$(SD_HEX ) )
456
467
457
468
# flash MBR only
458
- mbr :
469
+ mbr : flash-mbr
470
+ flash-mbr :
459
471
@echo Flashing: $(MBR_HEX )
460
472
$(call FLASH_NOUICR_CMD,$(MBR_HEX ) )
461
473
462
- # ------------------- Flash with NRFUTIL via DFU -------------------
463
-
464
- # dfu using CDC interface
465
- dfu-flash : $(BUILD ) /$(MERGED_FILE ) .zip
474
+ # dfu with adafruit-nrfutil using CDC interface
475
+ dfu-flash : flash-dfu
476
+ flash-dfu : $(BUILD ) /$(MERGED_FILE ) .zip
466
477
@:$(call check_defined, SERIAL, example: SERIAL=/dev/ttyACM0)
467
478
$(NRFUTIL ) --verbose dfu serial --package $< -p $(SERIAL ) -b 115200 --singlebank --touch 1200
468
479
0 commit comments