1
0
mirror of https://bitbucket.org/librepilot/librepilot.git synced 2025-01-30 15:52:12 +01:00

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.
This commit is contained in:
Stacey Sheldon 2012-02-04 12:03:42 -05:00
parent 4fafbb13ed
commit 60a2af2e58
2 changed files with 58 additions and 12 deletions

View File

@ -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:

View File

@ -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) ; \
)