77# - SD_HEX : to bootloader hex binary
88# ------------------------------------------------------------------------------
99
10+ # local customization
1011-include Makefile.user
1112
1213SDK_PATH = lib/sdk/components
@@ -15,8 +16,9 @@ TUSB_PATH = lib/tinyusb/src
1516NRFX_PATH = lib/nrfx
1617SD_PATH = lib/softdevice/$(SD_FILENAME )
1718
19+ # SD_VERSION can be overwritten by board.mk
1820ifndef SD_VERSION
19- SD_VERSION = 6.1.1
21+ SD_VERSION = 6.1.1
2022endif
2123
2224SD_FILENAME = $(SD_NAME ) _nrf52_$(SD_VERSION )
@@ -37,7 +39,7 @@ OUT_NAME = $(BOARD)_bootloader-$(GIT_VERSION)
3739MERGED_FILE = $(OUT_NAME ) _$(SD_NAME ) _$(SD_VERSION )
3840
3941# ------------------------------------------------------------------------------
40- # Tool configure
42+ # Tool Configure
4143# ------------------------------------------------------------------------------
4244
4345# Toolchain commands
@@ -208,39 +210,46 @@ ASM_SRC = $(NRFX_PATH)/mdk/gcc_startup_$(MCU_SUB_VARIANT).S
208210# ------------------------------------------------------------------------------
209211
210212# 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)
217220
218221# 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
244253
245254# ------------------------------------------------------------------------------
246255# Compiler Flags
@@ -253,6 +262,7 @@ CFLAGS += \
253262 -mcpu=cortex-m4 \
254263 -mfloat-abi=hard \
255264 -mfpu=fpv4-sp-d16 \
265+ -ggdb \
256266 -Os \
257267 -ffunction-sections \
258268 -fdata-sections \
@@ -272,15 +282,11 @@ CFLAGS += \
272282 -Wsign-compare \
273283 -Wmissing-format-attribute \
274284 -Wno-endif-labels \
275- -Wunreachable-code \
276- -ggdb
285+ -Wunreachable-code
277286
278287# Suppress warning caused by SDK
279288CFLAGS += -Wno-unused-parameter -Wno-expansion-to-defined
280289
281- # TinyUSB tusb_hal_nrf_power_event
282- CFLAGS += -Wno-cast-function-type
283-
284290# Nordic Softdevice SDK header files contains inline assembler that has
285291# broken constraints. As a result the IPA-modref pass, introduced in gcc-11,
286292# is able to "prove" that arguments to wrapper functions generated with
@@ -332,6 +338,7 @@ LIBS += -lm -lc
332338# ------------------------------------------------------------------------------
333339# Assembler flags
334340# ------------------------------------------------------------------------------
341+
335342ASFLAGS += $(CFLAGS )
336343
337344# function for removing duplicates in a list
@@ -356,7 +363,7 @@ INC_PATHS = $(addprefix -I,$(IPATH))
356363# BUILD TARGETS
357364# ------------------------------------------------------------------------------
358365
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
360367
361368# default target to build
362369all : $(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)
431438 @$(CP ) $(BUILD ) /$(MERGED_FILE ) .hex $(BIN )
432439 @$(CP ) $(BUILD ) /$(MERGED_FILE ) .zip $(BIN )
433440
434- # ------------------- Flash target -------------------
441+ # --------------------------------------
442+ # Flash Target
443+ # --------------------------------------
435444
436445check_defined = \
437446 $(strip $(foreach 1,$1, \
@@ -440,29 +449,31 @@ __check_defined = \
440449 $(if $(value $1),, \
441450 $(error Undefined make flag : $1$(if $2, ($2) )))
442451
452+ # erase chip
453+ erase :
454+ @echo Erasing flash
455+ $(call FLASH_ERASE_CMD)
456+
443457# Flash the compiled
444458flash : $(BUILD ) /$(OUT_NAME ) _nosd.hex
445459 @echo Flashing: $(notdir $< )
446460 $(call FLASH_CMD,$< )
447461
448- erase :
449- @echo Erasing flash
450- $(call FLASH_ERASE_CMD)
451-
452462# flash SD only
453- sd :
463+ sd : flash-sd
464+ flash-sd :
454465 @echo Flashing: $(SD_HEX )
455466 $(call FLASH_NOUICR_CMD,$(SD_HEX ) )
456467
457468# flash MBR only
458- mbr :
469+ mbr : flash-mbr
470+ flash-mbr :
459471 @echo Flashing: $(MBR_HEX )
460472 $(call FLASH_NOUICR_CMD,$(MBR_HEX ) )
461473
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
466477 @:$(call check_defined, SERIAL, example: SERIAL=/dev/ttyACM0)
467478 $(NRFUTIL ) --verbose dfu serial --package $< -p $(SERIAL ) -b 115200 --singlebank --touch 1200
468479
0 commit comments