From aa040652eee5cb72175f20abb83819d84386fa40 Mon Sep 17 00:00:00 2001 From: hathach Date: Mon, 6 Aug 2018 17:41:02 +0700 Subject: [PATCH] enhance Makefile --- .../feather52840_bootloader_6.0.0_s140.bin | Bin 25284 -> 0 bytes .../6.0.0/pca10056_bootloader_6.0.0_s140.bin | Bin 25268 -> 0 bytes src/Makefile | 217 ++++++++---------- src/boards.h | 6 +- src/{ => boards}/feather52840.h | 0 src/{ => boards}/pca10056.h | 0 6 files changed, 103 insertions(+), 120 deletions(-) delete mode 100755 bin/feather52840/6.0.0/feather52840_bootloader_6.0.0_s140.bin delete mode 100755 bin/pca10056/6.0.0/pca10056_bootloader_6.0.0_s140.bin rename src/{ => boards}/feather52840.h (100%) rename src/{ => boards}/pca10056.h (100%) diff --git a/bin/feather52840/6.0.0/feather52840_bootloader_6.0.0_s140.bin b/bin/feather52840/6.0.0/feather52840_bootloader_6.0.0_s140.bin deleted file mode 100755 index c552134d676b182f80c43adfdf997cc1bded1528..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25284 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
g(#a8%#~54<+mdfI2B3LMbCP;EyONQmK?eNt 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 G1Nh&p6FH0k diff --git a/bin/pca10056/6.0.0/pca10056_bootloader_6.0.0_s140.bin b/bin/pca10056/6.0.0/pca10056_bootloader_6.0.0_s140.bin deleted file mode 100755 index 8526a34fa1a02ddfe98f480dc456680ebb90a65e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25268 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 Qft>l#Jt2iIj2qy80t53TH2?qr diff --git a/src/Makefile b/src/Makefile index ea1e555..2c239b7 100644 --- a/src/Makefile +++ b/src/Makefile @@ -31,7 +31,24 @@ SD_PATH = ../lib/softdevice/$(SD_VERSION) SD_HEX = $(SD_PATH)/$(SD_NAME)/hex/$(SD_NAME)_nrf52_$(SD_VERSION)_softdevice.hex LINKER_SCRIPT = $(SRC_PATH)/$(SD_NAME)_$(SD_VERSION).ld -BOOTLOADER_SD_SUFFIX = $(VERSION_MAJOR).$(VERSION_MINOR).$(VERSION_REVISION)_$(SD_NAME) +BOOT_SD_NAME = $(OUTPUT_FILENAME)_$(VERSION_MAJOR).$(VERSION_MINOR).$(VERSION_REVISION)_$(SD_NAME) + +BETA_DIR = ../bin/$(BOARD)/beta +RELEASE_DIR = ../bin/$(BOARD)/$(VERSION_MAJOR).$(VERSION_MINOR).$(VERSION_REVISION) + +# Select the board to build for. +ifeq ($(BOARD),) + $(info You must provide a BOARD parameter with 'BOARD=') + $(info Possible values are:) + $(info $(sort $(subst .h,,$(subst boards/,,$(wildcard boards/*))))) + $(error BOARD not defined) +else + ifeq ($(wildcard boards/$(BOARD).h),) + $(error Invalid BOARD specified) + endif +endif + +BUILD = _build-$(BOARD) #****************************************************************************** # Tool configure @@ -48,10 +65,10 @@ endif MK := mkdir RM := rm -rf -ifeq ("$(VERBOSE)","1") -NO_ECHO := +ifeq ("$(V)","2") +QUIET := else -NO_ECHO := @ +QUIET := @ endif GNU_PREFIX = arm-none-eabi @@ -171,25 +188,22 @@ INC_PATHS += -I$(SD_PATH)/common INC_PATHS += -I$(SD_PATH)/$(SD_NAME)/headers INC_PATHS += -I$(SD_PATH)/$(SD_NAME)/headers/nrf52 - -OBJECT_DIRECTORY = _build -LISTING_DIRECTORY = $(OBJECT_DIRECTORY) -OUTPUT_BINARY_DIRECTORY = $(OBJECT_DIRECTORY) - -# Sorting removes duplicates -BUILD_DIRECTORIES := $(sort $(OBJECT_DIRECTORY) $(OUTPUT_BINARY_DIRECTORY) $(LISTING_DIRECTORY)) - #****************************************************************************** # Compiler Flags # - Additional compiler flags #****************************************************************************** #flags common to all targets -#CFLAGS += -DENABLE_SWO +CFLAGS += -mcpu=cortex-m4 +CFLAGS += -mthumb -mabi=aapcs --std=gnu99 +CFLAGS += -Wall -Werror -Os -g3 +CFLAGS += -mfloat-abi=hard -mfpu=fpv4-sp-d16 + +# keep every function in separate section. This will allow linker to dump unused functions +CFLAGS += -ffunction-sections -fdata-sections -fno-strict-aliasing +CFLAGS += -fno-builtin --short-enums -#************************* # Defined Symbol (MACROS) -#************************* CFLAGS += -DBOOTLOADER_VERSION=0x0$(VERSION_MAJOR)0$(VERSION_MINOR)0$(VERSION_REVISION)0$(VERSION_SINGLEBANK)UL CFLAGS += -DNRF52840_XXAA CFLAGS += -D__HEAP_SIZE=0 @@ -201,17 +215,10 @@ CFLAGS += -DSWI_DISABLE0 CFLAGS += -DSOFTDEVICE_PRESENT CFLAGS += -DFLOAT_ABI_HARD CFLAGS += -DMK_DIS_FIRMWARE='$(MK_DIS_FIRMWARE)' - CFLAGS += -DDFU_APP_DATA_RESERVED=7*4096 -CFLAGS += -mcpu=cortex-m4 -CFLAGS += -mthumb -mabi=aapcs --std=gnu99 -CFLAGS += -Wall -Werror -Os -g3 -CFLAGS += -mfloat-abi=hard -mfpu=fpv4-sp-d16 +CFLAGS += -DBOARD_$(shell echo $(BOARD) | tr '[:lower:]' '[:upper:]') -# keep every function in separate section. This will allow linker to dump unused functions -CFLAGS += -ffunction-sections -fdata-sections -fno-strict-aliasing -CFLAGS += -fno-builtin --short-enums #****************************************************************************** # Linker Flags @@ -219,7 +226,7 @@ CFLAGS += -fno-builtin --short-enums #****************************************************************************** # keep every function in separate section. This will allow linker to dump unused functions -LDFLAGS += -Xlinker -Map=$(LISTING_DIRECTORY)/$(OUTPUT_FILENAME).map +LDFLAGS += -Xlinker -Map=$(BUILD)/$(OUTPUT_FILENAME).map LDFLAGS += -mthumb -mabi=aapcs -L$(SRC_PATH)/ -T$(LINKER_SCRIPT) LDFLAGS += -mcpu=cortex-m4 LDFLAGS += -mfloat-abi=hard -mfpu=fpv4-sp-d16 @@ -243,138 +250,114 @@ ASMFLAGS += -DBLE_STACK_SUPPORT_REQD ASMFLAGS += -DBSP_DEFINES_ONLY ASMFLAGS += -DSWI_DISABLE0 ASMFLAGS += -DSOFTDEVICE_PRESENT - ASMFLAGS += -DFLOAT_ABI_HARD -MAKEFILE_NAME := $(MAKEFILE_LIST) -MAKEFILE_DIR := $(dir $(MAKEFILE_NAME) ) - #****************************************************************************** # BUILD TARGETS +# - BOARD +# - V #****************************************************************************** -ifeq ("$(VERBOSE)","1") +ifeq ("$(V)","1") $(info CFLAGS $(CFLAGS)) $(info ) $(info LDFLAGS $(LDFLAGS)) $(info ) endif -#default target - first one defined -default: all - -#building all targets -all: - @$(MAKE) -s -f $(MAKEFILE_NAME) -C $(MAKEFILE_DIR) -e clean - @echo Making feather52840 board - @echo ---------------------- - @$(MAKE) -s -f $(MAKEFILE_NAME) -C $(MAKEFILE_DIR) -e feather52840 - @$(MAKE) -s -f $(MAKEFILE_NAME) -C $(MAKEFILE_DIR) -e clean - @echo Making pca10056 board - @echo -------------------- - @$(MAKE) -s -f $(MAKEFILE_NAME) -C $(MAKEFILE_DIR) -e pca10056 - -#target for printing all targets -help: - @echo following targets are available: - @echo - feather52840 : build for Feather nRF52840 - @echo - flash_feather52840 : flash Feather nRF52840 - @echo - pca10056 : build for pca10056 DK - @echo - flash_pca10056 : flash pca10056 DK - @echo - flash_sd : flash SoftDevice only - C_SOURCE_FILE_NAMES = $(notdir $(C_SOURCE_FILES)) C_PATHS = $(call remduplicates, $(dir $(C_SOURCE_FILES) ) ) -C_OBJECTS = $(addprefix $(OBJECT_DIRECTORY)/, $(C_SOURCE_FILE_NAMES:.c=.o) ) +C_OBJECTS = $(addprefix $(BUILD)/, $(C_SOURCE_FILE_NAMES:.c=.o) ) ASM_SOURCE_FILE_NAMES = $(notdir $(ASM_SOURCE_FILES)) ASM_PATHS = $(call remduplicates, $(dir $(ASM_SOURCE_FILES) )) -ASM_OBJECTS = $(addprefix $(OBJECT_DIRECTORY)/, $(ASM_SOURCE_FILE_NAMES:.S=.o) ) +ASM_OBJECTS = $(addprefix $(BUILD)/, $(ASM_SOURCE_FILE_NAMES:.S=.o) ) vpath %.c $(C_PATHS) vpath %.S $(ASM_PATHS) OBJECTS = $(C_OBJECTS) $(ASM_OBJECTS) -export OUTPUT_FILENAME -export FINAL_BIN_DIR -BOOTLOADER_WITH_SD_NAME := $(OUTPUT_FILENAME)_$(BOOTLOADER_SD_SUFFIX) -# Target for Feather nrf52 board -feather52840: OUTPUT_FILENAME := feather52840_bootloader -feather52840: FINAL_BIN_DIR := ../bin/feather52840/$(VERSION_MAJOR).$(VERSION_MINOR).$(VERSION_REVISION) -feather52840: CFLAGS += -DBOARD_FEATHER52840 -feather52840: $(BUILD_DIRECTORIES) $(OBJECTS) - @echo Linking target: $(OUTPUT_FILENAME).out - $(NO_ECHO)$(CC) $(LDFLAGS) $(OBJECTS) $(LIBS) -lm -o $(OUTPUT_BINARY_DIRECTORY)/$(OUTPUT_FILENAME).out - $(NO_ECHO)$(MAKE) -f $(MAKEFILE_NAME) -C $(MAKEFILE_DIR) -e finalize -# Target for Metro nrf52 board -pca10056: OUTPUT_FILENAME := pca10056_bootloader -pca10056: FINAL_BIN_DIR := ../bin/pca10056/$(VERSION_MAJOR).$(VERSION_MINOR).$(VERSION_REVISION) -pca10056: CFLAGS += -DBOARD_PCA10056 -pca10056: $(BUILD_DIRECTORIES) $(OBJECTS) - @echo Linking target: $(OUTPUT_FILENAME).out - $(NO_ECHO)$(CC) $(LDFLAGS) $(OBJECTS) $(LIBS) -lm -o $(OUTPUT_BINARY_DIRECTORY)/$(OUTPUT_FILENAME).out - $(NO_ECHO)$(MAKE) -f $(MAKEFILE_NAME) -C $(MAKEFILE_DIR) -e finalize + +OUTPUT_FILENAME = $(BOARD)_bootloader + + +all: $(BUILD)/$(OUTPUT_FILENAME).out size + + +######## FLASH tagert ####### +.phony: flash sd + +flash: $(BUILD)/$(OUTPUT_FILENAME).hex + @echo Flashing: $< + nrfjprog --program $< --sectoranduicrerase -f nrf52 --reset + +sd: + @echo Flashing: $(SD_HEX) + nrfjprog --program $(SD_HEX) -f nrf52 --chiperase --reset + ## Create build directories -$(BUILD_DIRECTORIES): +.phony: $(BUILD) clean size + +$(BUILD): @$(MK) $@ +clean: + @$(RM) $(BUILD) + # Create objects from C SRC files -$(OBJECT_DIRECTORY)/%.o: %.c - @echo Compiling file: $(notdir $<) - $(NO_ECHO)$(CC) $(CFLAGS) $(INC_PATHS) -c -o $@ $< +$(BUILD)/%.o: %.c + @echo CC $(notdir $<) + $(QUIET)$(CC) $(CFLAGS) $(INC_PATHS) -c -o $@ $< # Assemble files -$(OBJECT_DIRECTORY)/%.o: %.S - @echo Assembly file: $(notdir $<) - $(NO_ECHO)$(CC) $(ASMFLAGS) $(INC_PATHS) -c -o $@ $< +$(BUILD)/%.o: %.S + @echo AS $(notdir $<) + $(QUIET)$(CC) $(ASMFLAGS) $(INC_PATHS) -c -o $@ $< # Link -$(OUTPUT_BINARY_DIRECTORY)/$(OUTPUT_FILENAME).out: $(BUILD_DIRECTORIES) $(OBJECTS) - @echo Linking target: $(OUTPUT_FILENAME).out - $(NO_ECHO)$(CC) $(LDFLAGS) $(OBJECTS) $(LIBS) -lm -o $(OUTPUT_BINARY_DIRECTORY)/$(OUTPUT_FILENAME).out +$(BUILD)/$(OUTPUT_FILENAME).out: $(BUILD) $(OBJECTS) + @echo LD $(OUTPUT_FILENAME).out + $(QUIET)$(CC) $(LDFLAGS) $(OBJECTS) $(LIBS) -lm -o $(BUILD)/$(OUTPUT_FILENAME).out -finalize: genhex genbin genpkg echosize +size: $(BUILD)/$(OUTPUT_FILENAME).out + -@echo '' + $(QUIET)$(SIZE) $< + -@echo '' + + +.phony: genhex genpkg beta release ## Create binary .hex file from the .out file -genhex: - @echo Preparing: $(OUTPUT_FILENAME).hex $(BOOTLOADER_WITH_SD_NAME).hex - $(NO_ECHO)$(OBJCOPY) -O ihex $(OUTPUT_BINARY_DIRECTORY)/$(OUTPUT_FILENAME).out $(OUTPUT_BINARY_DIRECTORY)/$(OUTPUT_FILENAME).hex - @mergehex -q -m $(OUTPUT_BINARY_DIRECTORY)/$(OUTPUT_FILENAME).hex $(SD_HEX) -o $(OUTPUT_BINARY_DIRECTORY)/$(BOOTLOADER_WITH_SD_NAME).hex - @mkdir -p $(FINAL_BIN_DIR) - @cp $(OUTPUT_BINARY_DIRECTORY)/$(BOOTLOADER_WITH_SD_NAME).hex $(FINAL_BIN_DIR)/ +genhex: $(BUILD)/$(OUTPUT_FILENAME).hex -## Create .bin file -genbin: - @echo Preparing: $(BOOTLOADER_WITH_SD_NAME).bin - $(NO_ECHO)$(OBJCOPY) -j .text -j .data -j .bss -O binary $(OUTPUT_BINARY_DIRECTORY)/$(OUTPUT_FILENAME).out $(FINAL_BIN_DIR)/$(BOOTLOADER_WITH_SD_NAME).bin +$(BUILD)/$(OUTPUT_FILENAME).hex: $(BUILD)/$(OUTPUT_FILENAME).out + @echo CR $(OUTPUT_FILENAME).hex + @echo CR $(BOOT_SD_NAME).hex + $(QUIET)$(OBJCOPY) -O ihex $< $@ + @mergehex -q -m $@ $(SD_HEX) -o $(BUILD)/$(BOOT_SD_NAME).hex -## Create pkg file for bootloader only and bootloader+SD combo to use with DFU -genpkg: - @echo Preparing: $(BOOTLOADER_WITH_SD_NAME).zip - @$(NRFUTIL) dfu genpkg --dev-type 0x0052 --dev-revision 0xADAF --bootloader $(OUTPUT_BINARY_DIRECTORY)/$(OUTPUT_FILENAME).hex --softdevice $(SD_HEX) $(FINAL_BIN_DIR)/$(BOOTLOADER_WITH_SD_NAME).zip +## Create pkg file for bootloader+SD combo to use with DFU +genpkg: $(BUILD)/$(BOOT_SD_NAME).zip -echosize: - -@echo '' - $(NO_ECHO)$(SIZE) $(OUTPUT_BINARY_DIRECTORY)/$(OUTPUT_FILENAME).out - -@echo '' +$(BUILD)/$(BOOT_SD_NAME).zip: $(BUILD)/$(OUTPUT_FILENAME).hex + @$(NRFUTIL) dfu genpkg --dev-type 0x0052 --dev-revision 0xADAF --bootloader $< --softdevice $(SD_HEX) $@ -clean: - @$(RM) $(BUILD_DIRECTORIES) +# Create SD+bootloader combo with hex & dfu package at beta folder +beta: genhex genpkg + @echo CR $(BETA_DIR)/$(BOOT_SD_NAME).hex + @echo CR $(BETA_DIR)/$(BOOT_SD_NAME).zip + @mkdir -p $(BETA_DIR) + @cp $(BUILD)/$(BOOT_SD_NAME).hex $(BETA_DIR)/$(BOOT_SD_NAME).hex + @cp $(BUILD)/$(BOOT_SD_NAME).zip $(BETA_DIR)/$(BOOT_SD_NAME).zip -flash_feather52840: BOOTLOADER_WITH_SD_NAME := feather52840_bootloader_$(BOOTLOADER_SD_SUFFIX) -flash_feather52840: feather52840 - @echo Flashing: $(OUTPUT_BINARY_DIRECTORY)/$(BOOTLOADER_WITH_SD_NAME).hex - nrfjprog --program $(OUTPUT_BINARY_DIRECTORY)/$(BOOTLOADER_WITH_SD_NAME).hex -f nrf52 --chiperase --reset - -flash_pca10056: BOOTLOADER_WITH_SD_NAME := pca10056_bootloader_$(BOOTLOADER_SD_SUFFIX) -flash_pca10056: pca10056 - @echo Flashing: $(OUTPUT_BINARY_DIRECTORY)/$(BOOTLOADER_WITH_SD_NAME).hex - nrfjprog --program $(OUTPUT_BINARY_DIRECTORY)/$(BOOTLOADER_WITH_SD_NAME).hex -f nrf52 --chiperase --reset - -flash_sd: - @echo Flashing: $(SD_HEX) - nrfjprog --program $(SD_HEX) -f nrf52 --chiperase --reset +release: genhex genpkg + @echo CR $(RELEASE_DIR)/$(BOOT_SD_NAME).hex + @echo CR $(RELEASE_DIR)/$(BOOT_SD_NAME).zip + @mkdir -p $(RELEASE_DIR) + @cp $(BUILD)/$(BOOT_SD_NAME).hex $(RELEASE_DIR)/$(BOOT_SD_NAME).hex + @cp $(BUILD)/$(BOOT_SD_NAME).zip $(RELEASE_DIR)/$(BOOT_SD_NAME).zip + \ No newline at end of file diff --git a/src/boards.h b/src/boards.h index eb1777d..a1d74c5 100644 --- a/src/boards.h +++ b/src/boards.h @@ -17,11 +17,11 @@ #include "nrf_gpio.h" #if defined BOARD_FEATHER52840 -#include "feather52840.h" + #include "boards/feather52840.h" #elif defined BOARD_PCA10056 -#include "pca10056.h" + #include "boards/pca10056.h" #else -#error No boards defined + #error No boards defined #endif // Make sure we have at least two buttons (DFU + FRESET since DFU+FRST=OTA) diff --git a/src/feather52840.h b/src/boards/feather52840.h similarity index 100% rename from src/feather52840.h rename to src/boards/feather52840.h diff --git a/src/pca10056.h b/src/boards/pca10056.h similarity index 100% rename from src/pca10056.h rename to src/boards/pca10056.h