| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262 | PROJECT_NAME     := secure_bootloader_uart_mbr_pca10040_debugTARGETS          := nrf52832_xxaa_mbrOUTPUT_DIRECTORY := _buildSDK_ROOT := ../../../../..PROJ_DIR := ../..$(OUTPUT_DIRECTORY)/nrf52832_xxaa_mbr.out: \  LINKER_SCRIPT  := secure_bootloader_gcc_nrf52.ld# Source files common to all targetsSRC_FILES += \  $(SDK_ROOT)/modules/nrfx/mdk/gcc_startup_nrf52.S \  $(SDK_ROOT)/modules/nrfx/mdk/system_nrf52.c \  $(SDK_ROOT)/components/libraries/log/src/nrf_log_backend_rtt.c \  $(SDK_ROOT)/components/libraries/log/src/nrf_log_backend_serial.c \  $(SDK_ROOT)/components/libraries/log/src/nrf_log_backend_uart.c \  $(SDK_ROOT)/components/libraries/log/src/nrf_log_default_backends.c \  $(SDK_ROOT)/components/libraries/log/src/nrf_log_frontend.c \  $(SDK_ROOT)/components/libraries/log/src/nrf_log_str_formatter.c \  $(SDK_ROOT)/components/boards/boards.c \  $(SDK_ROOT)/components/libraries/crypto/backend/micro_ecc/micro_ecc_backend_ecc.c \  $(SDK_ROOT)/components/libraries/crypto/backend/micro_ecc/micro_ecc_backend_ecdh.c \  $(SDK_ROOT)/components/libraries/crypto/backend/micro_ecc/micro_ecc_backend_ecdsa.c \  $(SDK_ROOT)/components/libraries/util/app_error_weak.c \  $(SDK_ROOT)/components/libraries/scheduler/app_scheduler.c \  $(SDK_ROOT)/components/libraries/util/app_util_platform.c \  $(SDK_ROOT)/components/libraries/crc32/crc32.c \  $(SDK_ROOT)/components/libraries/mem_manager/mem_manager.c \  $(SDK_ROOT)/components/libraries/util/nrf_assert.c \  $(SDK_ROOT)/components/libraries/atomic/nrf_atomic.c \  $(SDK_ROOT)/components/libraries/balloc/nrf_balloc.c \  $(SDK_ROOT)/external/fprintf/nrf_fprintf.c \  $(SDK_ROOT)/external/fprintf/nrf_fprintf_format.c \  $(SDK_ROOT)/components/libraries/fstorage/nrf_fstorage.c \  $(SDK_ROOT)/components/libraries/fstorage/nrf_fstorage_nvmc.c \  $(SDK_ROOT)/components/libraries/memobj/nrf_memobj.c \  $(SDK_ROOT)/components/libraries/queue/nrf_queue.c \  $(SDK_ROOT)/components/libraries/ringbuf/nrf_ringbuf.c \  $(SDK_ROOT)/components/libraries/strerror/nrf_strerror.c \  $(SDK_ROOT)/components/libraries/sha256/sha256.c \  $(SDK_ROOT)/components/libraries/slip/slip.c \  $(SDK_ROOT)/integration/nrfx/legacy/nrf_drv_uart.c \  $(SDK_ROOT)/components/drivers_nrf/nrf_soc_nosd/nrf_nvic.c \  $(SDK_ROOT)/modules/nrfx/hal/nrf_nvmc.c \  $(SDK_ROOT)/components/drivers_nrf/nrf_soc_nosd/nrf_soc.c \  $(SDK_ROOT)/modules/nrfx/soc/nrfx_atomic.c \  $(SDK_ROOT)/modules/nrfx/drivers/src/prs/nrfx_prs.c \  $(SDK_ROOT)/modules/nrfx/drivers/src/nrfx_uart.c \  $(SDK_ROOT)/modules/nrfx/drivers/src/nrfx_uarte.c \  $(SDK_ROOT)/components/libraries/crypto/nrf_crypto_ecc.c \  $(SDK_ROOT)/components/libraries/crypto/nrf_crypto_ecdsa.c \  $(SDK_ROOT)/components/libraries/crypto/nrf_crypto_hash.c \  $(SDK_ROOT)/components/libraries/crypto/nrf_crypto_init.c \  $(SDK_ROOT)/components/libraries/crypto/nrf_crypto_shared.c \  $(PROJ_DIR)/../dfu_public_key.c \  $(PROJ_DIR)/main.c \  $(SDK_ROOT)/components/libraries/crypto/backend/nrf_sw/nrf_sw_backend_hash.c \  $(SDK_ROOT)/components/libraries/bootloader/nrf_bootloader.c \  $(SDK_ROOT)/components/libraries/bootloader/nrf_bootloader_app_start.c \  $(SDK_ROOT)/components/libraries/bootloader/nrf_bootloader_app_start_final.c \  $(SDK_ROOT)/components/libraries/bootloader/nrf_bootloader_dfu_timers.c \  $(SDK_ROOT)/components/libraries/bootloader/nrf_bootloader_fw_activation.c \  $(SDK_ROOT)/components/libraries/bootloader/nrf_bootloader_info.c \  $(SDK_ROOT)/components/libraries/bootloader/nrf_bootloader_wdt.c \  $(SDK_ROOT)/external/nano-pb/pb_common.c \  $(SDK_ROOT)/external/nano-pb/pb_decode.c \  $(SDK_ROOT)/components/libraries/bootloader/dfu/dfu-cc.pb.c \  $(SDK_ROOT)/components/libraries/bootloader/dfu/nrf_dfu.c \  $(SDK_ROOT)/components/libraries/bootloader/dfu/nrf_dfu_flash.c \  $(SDK_ROOT)/components/libraries/bootloader/dfu/nrf_dfu_handling_error.c \  $(SDK_ROOT)/components/libraries/bootloader/dfu/nrf_dfu_mbr.c \  $(SDK_ROOT)/components/libraries/bootloader/dfu/nrf_dfu_req_handler.c \  $(SDK_ROOT)/components/libraries/bootloader/serial_dfu/nrf_dfu_serial_uart.c \  $(SDK_ROOT)/components/libraries/bootloader/dfu/nrf_dfu_settings.c \  $(SDK_ROOT)/components/libraries/bootloader/dfu/nrf_dfu_transport.c \  $(SDK_ROOT)/components/libraries/bootloader/dfu/nrf_dfu_utils.c \  $(SDK_ROOT)/components/libraries/bootloader/dfu/nrf_dfu_validation.c \  $(SDK_ROOT)/components/libraries/bootloader/dfu/nrf_dfu_ver_validation.c \  $(SDK_ROOT)/components/libraries/bootloader/serial_dfu/nrf_dfu_serial.c \  $(SDK_ROOT)/external/segger_rtt/SEGGER_RTT.c \  $(SDK_ROOT)/external/segger_rtt/SEGGER_RTT_Syscalls_GCC.c \  $(SDK_ROOT)/external/segger_rtt/SEGGER_RTT_printf.c \  $(SDK_ROOT)/components/libraries/crypto/backend/oberon/oberon_backend_chacha_poly_aead.c \  $(SDK_ROOT)/components/libraries/crypto/backend/oberon/oberon_backend_ecc.c \  $(SDK_ROOT)/components/libraries/crypto/backend/oberon/oberon_backend_ecdh.c \  $(SDK_ROOT)/components/libraries/crypto/backend/oberon/oberon_backend_ecdsa.c \  $(SDK_ROOT)/components/libraries/crypto/backend/oberon/oberon_backend_eddsa.c \  $(SDK_ROOT)/components/libraries/crypto/backend/oberon/oberon_backend_hash.c \  $(SDK_ROOT)/components/libraries/crypto/backend/oberon/oberon_backend_hmac.c \# Include folders common to all targetsINC_FOLDERS += \  $(SDK_ROOT)/modules/nrfx/drivers/include \  $(SDK_ROOT)/components/libraries/crypto/backend/micro_ecc \  $(SDK_ROOT)/components/libraries/memobj \  $(SDK_ROOT)/components/libraries/sha256 \  $(SDK_ROOT)/components/libraries/crc32 \  $(SDK_ROOT)/components/libraries/experimental_section_vars \  $(SDK_ROOT)/components/libraries/mem_manager \  $(SDK_ROOT)/components/libraries/fstorage \  $(SDK_ROOT)/components/libraries/util \  $(SDK_ROOT)/modules/nrfx \  $(SDK_ROOT)/external/nrf_oberon/include \  $(SDK_ROOT)/components/libraries/crypto/backend/oberon \  $(SDK_ROOT)/components/libraries/crypto/backend/cifra \  $(SDK_ROOT)/components/libraries/atomic \  $(SDK_ROOT)/integration/nrfx \  $(SDK_ROOT)/components/libraries/crypto/backend/cc310_bl \  $(SDK_ROOT)/components/drivers_nrf/nrf_soc_nosd \  $(SDK_ROOT)/components/libraries/log/src \  $(SDK_ROOT)/components/libraries/bootloader/dfu \  $(SDK_ROOT)/components/libraries/bootloader/serial_dfu \  $(SDK_ROOT)/external/segger_rtt \  $(SDK_ROOT)/components/libraries/delay \  $(SDK_ROOT)/integration/nrfx/legacy \  $(SDK_ROOT)/modules/nrfx/hal \  $(SDK_ROOT)/components/libraries/crypto/backend/nrf_hw \  $(SDK_ROOT)/components/libraries/log \  $(SDK_ROOT)/external/nrf_oberon \  $(SDK_ROOT)/components/libraries/strerror \  $(SDK_ROOT)/components/libraries/crypto/backend/mbedtls \  $(SDK_ROOT)/components/boards \  $(SDK_ROOT)/components/libraries/crypto/backend/cc310 \  $(SDK_ROOT)/components/libraries/bootloader \  $(SDK_ROOT)/components/softdevice/mbr/headers \  $(SDK_ROOT)/components/libraries/crypto \  ../config \  $(SDK_ROOT)/components/libraries/crypto/backend/optiga \  $(SDK_ROOT)/components/libraries/scheduler \  $(SDK_ROOT)/components/libraries/slip \  $(SDK_ROOT)/external/fprintf \  $(SDK_ROOT)/components/toolchain/cmsis/include \  $(SDK_ROOT)/components/libraries/balloc \  $(SDK_ROOT)/components/libraries/stack_info \  $(SDK_ROOT)/external/micro-ecc/micro-ecc \  $(PROJ_DIR) \  $(SDK_ROOT)/components/libraries/crypto/backend/nrf_sw \  $(SDK_ROOT)/modules/nrfx/mdk \  $(SDK_ROOT)/external/nano-pb \  $(SDK_ROOT)/components/libraries/queue \  $(SDK_ROOT)/components/libraries/ringbuf \# Libraries common to all targetsLIB_FILES += \  $(SDK_ROOT)/external/nrf_oberon/lib/cortex-m4/hard-float/liboberon_3.0.6.a \  $(SDK_ROOT)/external/micro-ecc/nrf52hf_armgcc/armgcc/micro_ecc_lib_nrf52.a \# Optimization flagsOPT = -Os -g3# Uncomment the line below to enable link time optimization#OPT += -flto# C flags common to all targetsCFLAGS += $(OPT)CFLAGS += -DBOARD_PCA10040CFLAGS += -DCONFIG_GPIO_AS_PINRESETCFLAGS += -DDEBUG_NRFCFLAGS += -DFLOAT_ABI_HARDCFLAGS += -DMBR_PRESENTCFLAGS += -DNRF52CFLAGS += -DNRF52832_XXAACFLAGS += -DNRF52_PAN_74CFLAGS += -DNRF_DFU_DEBUG_VERSIONCFLAGS += -DNRF_DFU_SETTINGS_VERSION=2CFLAGS += -DSVC_INTERFACE_CALL_AS_NORMAL_FUNCTIONCFLAGS += -DuECC_ENABLE_VLI_API=0CFLAGS += -DuECC_OPTIMIZATION_LEVEL=3CFLAGS += -DuECC_SQUARE_FUNC=0CFLAGS += -DuECC_SUPPORT_COMPRESSED_POINT=0CFLAGS += -DuECC_VLI_NATIVE_LITTLE_ENDIAN=1CFLAGS += -mcpu=cortex-m4CFLAGS += -mthumb -mabi=aapcsCFLAGS += -Wall -WerrorCFLAGS += -mfloat-abi=hard -mfpu=fpv4-sp-d16# keep every function in a separate section, this allows linker to discard unused onesCFLAGS += -ffunction-sections -fdata-sections -fno-strict-aliasingCFLAGS += -fno-builtin -fshort-enums# C++ flags common to all targetsCXXFLAGS += $(OPT)# Assembler flags common to all targetsASMFLAGS += -g3ASMFLAGS += -mcpu=cortex-m4ASMFLAGS += -mthumb -mabi=aapcsASMFLAGS += -mfloat-abi=hard -mfpu=fpv4-sp-d16ASMFLAGS += -DBOARD_PCA10040ASMFLAGS += -DCONFIG_GPIO_AS_PINRESETASMFLAGS += -DDEBUG_NRFASMFLAGS += -DFLOAT_ABI_HARDASMFLAGS += -DMBR_PRESENTASMFLAGS += -DNRF52ASMFLAGS += -DNRF52832_XXAAASMFLAGS += -DNRF52_PAN_74ASMFLAGS += -DNRF_DFU_DEBUG_VERSIONASMFLAGS += -DNRF_DFU_SETTINGS_VERSION=2ASMFLAGS += -DSVC_INTERFACE_CALL_AS_NORMAL_FUNCTIONASMFLAGS += -DuECC_ENABLE_VLI_API=0ASMFLAGS += -DuECC_OPTIMIZATION_LEVEL=3ASMFLAGS += -DuECC_SQUARE_FUNC=0ASMFLAGS += -DuECC_SUPPORT_COMPRESSED_POINT=0ASMFLAGS += -DuECC_VLI_NATIVE_LITTLE_ENDIAN=1# Linker flagsLDFLAGS += $(OPT)LDFLAGS += -mthumb -mabi=aapcs -L$(SDK_ROOT)/modules/nrfx/mdk -T$(LINKER_SCRIPT)LDFLAGS += -mcpu=cortex-m4LDFLAGS += -mfloat-abi=hard -mfpu=fpv4-sp-d16# let linker dump unused sectionsLDFLAGS += -Wl,--gc-sections# use newlib in nano versionLDFLAGS += --specs=nano.specsnrf52832_xxaa_mbr: CFLAGS += -D__HEAP_SIZE=0nrf52832_xxaa_mbr: ASMFLAGS += -D__HEAP_SIZE=0# Add standard libraries at the very end of the linker input, after all objects# that may need symbols provided by these libraries.LIB_FILES += -lc -lnosys -lm.PHONY: default help# Default target - first one defineddefault: nrf52832_xxaa_mbr# Print all targets that can be builthelp:	@echo following targets are available:	@echo		nrf52832_xxaa_mbr	@echo		flash_mbr	@echo		sdk_config - starting external tool for editing sdk_config.h	@echo		flash      - flashing binaryTEMPLATE_PATH := $(SDK_ROOT)/components/toolchain/gccinclude $(TEMPLATE_PATH)/Makefile.common$(foreach target, $(TARGETS), $(call define_target, $(target))).PHONY: flash flash_mbr erase# Flash the programflash: default	@echo Flashing: $(OUTPUT_DIRECTORY)/nrf52832_xxaa_mbr.hex	nrfjprog -f nrf52 --program $(OUTPUT_DIRECTORY)/nrf52832_xxaa_mbr.hex --sectorerase	nrfjprog -f nrf52 --reset# Flash softdeviceflash_mbr:	@echo Flashing: mbr_nrf52_2.4.1_mbr.hex	nrfjprog -f nrf52 --program $(SDK_ROOT)/components/softdevice/mbr/hex/mbr_nrf52_2.4.1_mbr.hex --sectorerase	nrfjprog -f nrf52 --reseterase:	nrfjprog -f nrf52 --eraseallSDK_CONFIG_FILE := ../config/sdk_config.hCMSIS_CONFIG_TOOL := $(SDK_ROOT)/external_tools/cmsisconfig/CMSIS_Configuration_Wizard.jarsdk_config:	java -jar $(CMSIS_CONFIG_TOOL) $(SDK_CONFIG_FILE)
 |