From 60a2af2e58dbefd735832ee8ca38b3f6ee930dc7 Mon Sep 17 00:00:00 2001 From: Stacey Sheldon Date: Sat, 4 Feb 2012 12:03:42 -0500 Subject: [PATCH] ef+dfu: Move EF image generation into separate makefile A separate makefile for EF (Entire Flash) targets allows the removal of board-specific hard-coded addresses. These values can now be included from the board-info.mk files for each board. --- Makefile | 21 +++++++--------- flight/EntireFlash/Makefile | 49 +++++++++++++++++++++++++++++++++++++ 2 files changed, 58 insertions(+), 12 deletions(-) create mode 100644 flight/EntireFlash/Makefile diff --git a/Makefile b/Makefile index ad7911fba..fd8ed8aa4 100644 --- a/Makefile +++ b/Makefile @@ -493,19 +493,16 @@ endef # $(1) = Canonical board name all in lower case (e.g. coptercontrol) define EF_TEMPLATE .PHONY: ef_$(1) -EF_$(1)_IMAGE_NAME := $(BUILD_DIR)/ef_$(1)/ef_$(1).bin -ef_$(1): $(BUILD_DIR)/ef_$(1)/ef_$(1).bin +ef_$(1): ef_$(1)_bin - -$$(EF_$(1)_IMAGE_NAME): bl_$(1)_bin fw_$(1)_bin - $(V0) @echo " FLASH IMG $$@" - $(V1) mkdir -p $(BUILD_DIR)/ef_$(1) - $(V1) cat $(BUILD_DIR)/bl_$(1)/bl_$(1).bin $(BUILD_DIR)/fw_$(1)/fw_$(1).bin > $$(EF_$(1)_IMAGE_NAME) - -.PHONY: ef_$(1)_dfu -ef_$(1)_dfu: $$(EF_$(1)_IMAGE_NAME) - $(V0) @echo " DFU RESCUE $$@" - $(V1) sudo $(DFUUTIL_DIR)/bin/dfu-util -l && sudo $(DFUUTIL_DIR)/bin/dfu-util -d 0483:df11 -c 1 -i 0 -a 0 -D $$< -s 0x08000000 +ef_$(1)_%: bl_$(1)_bin fw_$(1)_bin + $(V1) mkdir -p $(BUILD_DIR)/ef_$(1)/dep + $(V1) cd $(ROOT_DIR)/flight/EntireFlash && \ + $$(MAKE) -r --no-print-directory \ + BOARD_NAME=$(1) \ + TCHAIN_PREFIX="$(ARM_SDK_PREFIX)" \ + DFU_CMD="$(DFUUTIL_DIR)/bin/dfu-util" \ + $$* .PHONY: ef_$(1)_clean ef_$(1)_clean: diff --git a/flight/EntireFlash/Makefile b/flight/EntireFlash/Makefile new file mode 100644 index 000000000..2124a18ba --- /dev/null +++ b/flight/EntireFlash/Makefile @@ -0,0 +1,49 @@ +##### +# Makefile for Entire Flash (EF) images +# +# The OpenPilot Team, http://www.openpilot.org, Copyright (C) 2012. +# +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program; if not, write to the Free Software Foundation, Inc., +# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +##### + +WHEREAMI := $(dir $(lastword $(MAKEFILE_LIST))) +TOP := $(realpath $(WHEREAMI)/../../) +include $(TOP)/make/firmware-defs.mk +include $(TOP)/make/boards/$(BOARD_NAME)/board-info.mk + +# Target file name (without extension). +TARGET := ef_$(BOARD_NAME) + +# Directory for output files (lst, obj, dep, elf, sym, map, hex, bin etc.) +OUTDIR := $(TOP)/build/$(TARGET) + +.PHONY: bin +bin: $(OUTDIR)/$(TARGET).bin + +$(OUTDIR)/$(TARGET).bin: BL_BIN := $(TOP)/build/bl_$(BOARD_NAME)/bl_$(BOARD_NAME).bin +$(OUTDIR)/$(TARGET).bin: FW_BIN := $(TOP)/build/fw_$(BOARD_NAME)/fw_$(BOARD_NAME).bin +$(OUTDIR)/$(TARGET).bin: $(BL_BIN) $(FW_BIN) + $(V0) @echo " FLASH IMG $@" + $(V1) cat $(BL_BIN) $(FW_BIN) > $@ + +.PHONY: dfu +dfu: $(OUTDIR)/$(TARGET).bin + $(V0) @echo " DFU RESCUE $<" + $(V1) ( \ + sudo $(DFU_CMD) -l && \ + sudo $(DFU_CMD) -d 0483:df11 -c 1 -i 0 -a 0 -D $< -s $(BL_BANK_BASE) ; \ + ) +