2013-03-14 08:45:21 +01:00
|
|
|
#
|
|
|
|
# Copyright (c) 2009-2013, The OpenPilot Team, http://www.openpilot.org
|
|
|
|
#
|
|
|
|
# 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
|
|
|
|
#
|
|
|
|
|
|
|
|
ifndef OPENPILOT_IS_COOL
|
|
|
|
$(error Top level Makefile must be used to build this target)
|
|
|
|
endif
|
|
|
|
|
|
|
|
# Set developer code and compile options.
|
|
|
|
# Set to YES to compile for debugging
|
|
|
|
DEBUG ?= NO
|
|
|
|
|
|
|
|
# Set to YES to use the Servo output pins for debugging via scope or logic analyser
|
|
|
|
ENABLE_DEBUG_PINS ?= NO
|
|
|
|
|
|
|
|
# Set to YES to enable the AUX UART which is mapped on the S1 (Tx) and S2 (Rx) servo outputs
|
|
|
|
ENABLE_AUX_UART ?= NO
|
|
|
|
|
|
|
|
# Paths
|
|
|
|
TOPDIR = .
|
|
|
|
OPSYSTEM = $(TOPDIR)
|
|
|
|
OPSYSTEMINC = $(OPSYSTEM)/inc
|
|
|
|
PIOSINC = $(PIOS)/inc
|
|
|
|
PIOSCOMMON = $(PIOS)/Common
|
|
|
|
PIOSBOARDS = $(PIOS)/Boards
|
|
|
|
FLIGHTLIBINC = $(FLIGHTLIB)/inc
|
|
|
|
|
2013-03-16 18:21:41 +01:00
|
|
|
## PIOS Hardware
|
2013-03-14 08:45:21 +01:00
|
|
|
ifeq ($(MCU),cortex-m3)
|
2013-03-16 18:21:41 +01:00
|
|
|
include $(PIOS)/STM32F10x/library.mk
|
2013-03-14 08:45:21 +01:00
|
|
|
else ifeq ($(MCU),cortex-m4)
|
2013-03-16 18:21:41 +01:00
|
|
|
include $(PIOS)/STM32F4xx/library.mk
|
2013-03-14 08:45:21 +01:00
|
|
|
else
|
|
|
|
$(error Unsupported MCU: $(MCU))
|
|
|
|
endif
|
|
|
|
|
|
|
|
# List C source files here (C dependencies are automatically generated).
|
|
|
|
# Use file-extension c for "c-only"-files
|
|
|
|
|
|
|
|
## Bootloader Core
|
|
|
|
SRC += $(OPSYSTEM)/main.c
|
|
|
|
SRC += $(OPSYSTEM)/pios_board.c
|
|
|
|
SRC += $(OPSYSTEM)/pios_usb_board_data.c
|
|
|
|
SRC += $(OPSYSTEM)/op_dfu.c
|
|
|
|
|
|
|
|
## PIOS Hardware (Common)
|
|
|
|
SRC += $(PIOSCOMMON)/pios_board_info.c
|
|
|
|
SRC += $(PIOSCOMMON)/pios_com_msg.c
|
|
|
|
SRC += $(PIOSCOMMON)/printf-stdarg.c
|
|
|
|
SRC += $(PIOSCOMMON)/pios_usb_desc_hid_only.c
|
|
|
|
SRC += $(PIOSCOMMON)/pios_usb_util.c
|
|
|
|
|
|
|
|
# List C source files here which must be compiled in ARM-Mode (no -mthumb).
|
|
|
|
# Use file-extension c for "c-only"-files
|
2013-03-16 18:21:41 +01:00
|
|
|
SRCARM +=
|
2013-03-14 08:45:21 +01:00
|
|
|
|
|
|
|
# List C++ source files here.
|
|
|
|
# Use file-extension .cpp for C++-files (not .C)
|
2013-03-16 18:21:41 +01:00
|
|
|
CPPSRC +=
|
2013-03-14 08:45:21 +01:00
|
|
|
|
|
|
|
# List C++ source files here which must be compiled in ARM-Mode.
|
|
|
|
# Use file-extension .cpp for C++-files (not .C)
|
2013-03-16 18:21:41 +01:00
|
|
|
CPPSRCARM +=
|
2013-03-14 08:45:21 +01:00
|
|
|
|
|
|
|
# List Assembler source files here.
|
|
|
|
# Make them always end in a capital .S. Files ending in a lowercase .s
|
|
|
|
# will not be considered source files but generated files (assembler
|
|
|
|
# output from the compiler), and will be deleted upon "make clean"!
|
|
|
|
# Even though the DOS/Win* filesystem matches both .s and .S the same,
|
|
|
|
# it will preserve the spelling of the filenames, and gcc itself does
|
|
|
|
# care about how the name is spelled on its command-line.
|
2013-03-16 18:21:41 +01:00
|
|
|
ASRC +=
|
2013-03-14 08:45:21 +01:00
|
|
|
|
|
|
|
# List Assembler source files here which must be assembled in ARM-Mode.
|
2013-03-16 18:21:41 +01:00
|
|
|
ASRCARM +=
|
2013-03-14 08:45:21 +01:00
|
|
|
|
|
|
|
# List any extra directories to look for include files here.
|
|
|
|
# Each directory must be seperated by a space.
|
|
|
|
EXTRAINCDIRS += $(PIOS)
|
|
|
|
EXTRAINCDIRS += $(PIOSINC)
|
|
|
|
EXTRAINCDIRS += $(FLIGHTLIBINC)
|
|
|
|
EXTRAINCDIRS += $(PIOSCOMMON)
|
|
|
|
EXTRAINCDIRS += $(PIOSBOARDS)
|
|
|
|
EXTRAINCDIRS += $(STMSPDINCDIR)
|
|
|
|
EXTRAINCDIRS += $(HWDEFSINC)
|
|
|
|
EXTRAINCDIRS += $(OPSYSTEMINC)
|
|
|
|
|
|
|
|
# List any extra directories to look for library files here.
|
|
|
|
# Also add directories where the linker should search for
|
|
|
|
# includes from linker-script to the list
|
|
|
|
# Each directory must be seperated by a space.
|
|
|
|
EXTRA_LIBDIRS =
|
|
|
|
|
|
|
|
# Extra Libraries
|
|
|
|
# Each library-name must be seperated by a space.
|
|
|
|
# i.e. to link with libxyz.a, libabc.a and libefsl.a:
|
|
|
|
# EXTRA_LIBS = xyz abc efsl
|
|
|
|
# for newlib-lpc (file: libnewlibc-lpc.a):
|
|
|
|
# EXTRA_LIBS = newlib-lpc
|
|
|
|
EXTRA_LIBS =
|
|
|
|
|
|
|
|
# Provide (only) the bootloader with board-specific defines
|
|
|
|
BLONLY_CDEFS += -DBOARD_TYPE=$(BOARD_TYPE)
|
|
|
|
BLONLY_CDEFS += -DBOARD_REVISION=$(BOARD_REVISION)
|
|
|
|
BLONLY_CDEFS += -DHW_TYPE=$(HW_TYPE)
|
|
|
|
BLONLY_CDEFS += -DBOOTLOADER_VERSION=$(BOOTLOADER_VERSION)
|
|
|
|
BLONLY_CDEFS += -DFW_BANK_BASE=$(FW_BANK_BASE)
|
|
|
|
BLONLY_CDEFS += -DFW_BANK_SIZE=$(FW_BANK_SIZE)
|
|
|
|
BLONLY_CDEFS += -DFW_DESC_SIZE=$(FW_DESC_SIZE)
|
|
|
|
|
2013-03-16 18:21:41 +01:00
|
|
|
# Compiler flags
|
2013-03-14 08:45:21 +01:00
|
|
|
CFLAGS += $(BLONLY_CDEFS)
|
|
|
|
|
|
|
|
# Set linker-script name depending on selected submodel name
|
|
|
|
ifeq ($(MCU),cortex-m3)
|
2013-03-16 18:21:41 +01:00
|
|
|
LDFLAGS += -T$(LINKER_SCRIPTS_PATH)/link_$(BOARD)_memory.ld
|
|
|
|
LDFLAGS += -T$(LINKER_SCRIPTS_PATH)/link_$(BOARD)_BL_sections.ld
|
2013-03-14 08:45:21 +01:00
|
|
|
else ifeq ($(MCU),cortex-m4)
|
|
|
|
LDFLAGS += $(addprefix -T,$(LINKER_SCRIPTS_BL))
|
|
|
|
endif
|