From 404ba00f701b2021b95e88ba279c121e2ea6269b Mon Sep 17 00:00:00 2001 From: Oleg Semyonov Date: Sun, 17 Mar 2013 14:36:45 +0200 Subject: [PATCH] Makefile: rework Revolution Makefile to use new make system Conflicts: flight/targets/Revolution/Makefile --- flight/targets/Revolution/Makefile | 510 ++---------------- .../Revolution/System/inc/pios_config.h | 90 ++-- 2 files changed, 112 insertions(+), 488 deletions(-) diff --git a/flight/targets/Revolution/Makefile b/flight/targets/Revolution/Makefile index 2d120a6c7..c0aae6765 100644 --- a/flight/targets/Revolution/Makefile +++ b/flight/targets/Revolution/Makefile @@ -1,11 +1,6 @@ -##### -# Project: OpenPilot Revolution Target -# -# -# Makefile for OpenPilot Revolution project -# -# The OpenPilot Team, http://www.openpilot.org, Copyright (C) 2013. # +# Copyright (c) 2009-2013, The OpenPilot Team, http://www.openpilot.org +# Copyright (c) 2012, PhoenixPilot, http://github.com/PhoenixPilot # # 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 @@ -22,470 +17,77 @@ # 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 - -# Set developer code and compile options -# Set to YES for debugging -DEBUG ?= NO - -# Set to YES when using Code Sourcery toolchain -CODE_SOURCERY ?= NO - -ifeq ($(CODE_SOURCERY), YES) -REMOVE_CMD = cs-rm -else -REMOVE_CMD = rm +ifndef OPENPILOT_IS_COOL + $(error Top level Makefile must be used to build this target) endif -FLASH_TOOL = OPENOCD +include $(ROOT_DIR)/make/boards/$(BOARD_NAME)/board-info.mk +include $(ROOT_DIR)/make/firmware-defs.mk -# Optional module and driver defaults -USE_COMUSBBRIDGE ?= NO -USE_TXPID ?= NO -USE_ALTITUDE ?= NO -TEST_FAULTS ?= NO -USE_MAGBARO ?= NO - -# List of optional modules to include -OPTMODULES = -ifeq ($(USE_COMUSBBRIDGE), YES) -OPTMODULES += ComUsbBridge -endif -ifeq ($(USE_TXPID), YES) -OPTMODULES += TxPID -endif -ifeq ($(TEST_FAULTS), YES) -OPTMODULES += Fault -endif -ifeq ($(USE_MAGBARO), YES) -OPTMODULES += Extensions/MagBaro -endif - -# List of modules to include -MODULES = Sensors Attitude/revolution ManualControl Stabilization Actuator -MODULES += Altitude/revolution FirmwareIAP +# List of mandatory modules to include +MODULES += Sensors +MODULES += Attitude/revolution +MODULES += Altitude/revolution MODULES += Airspeed/revolution -MODULES += GPS AltitudeHold FixedWingPathFollower PathPlanner -#MODULES += VtolPathFollower ## OP-700: VtolPathFollower disabled because its currently unsafe - remove this line once Sambas code has been merged +MODULES += AltitudeHold +MODULES += Stabilization +MODULES += ManualControl +MODULES += Actuator +MODULES += GPS +#MODULES += TxPID MODULES += CameraStab +#MODULES += Battery +MODULES += FirmwareIAP +#MODULES += Radio +MODULES += PathPlanner +MODULES += FixedWingPathFollower +#MODULES += VtolPathFollower ## OP-700: VtolPathFollower disabled because its currently unsafe - remove this line once Sambas code has been merged MODULES += OveroSync MODULES += Telemetry -PYMODULES = -#FlightPlan -# Enable ARM DSP library -USE_DSP_LIB = NO +OPTMODULES = -# Paths -OPSYSTEM = ./System -OPSYSTEMINC = $(OPSYSTEM)/inc -OPUAVTALKINC = $(OPUAVTALK)/inc -OPUAVOBJINC = $(OPUAVOBJ)/inc -PIOSINC = $(PIOS)/inc -FLIGHTLIBINC = $(FLIGHTLIB)/inc -MATHLIB = $(FLIGHTLIB)/math -MATHLIBINC = $(FLIGHTLIB)/math -PIOSSTM32F4XX = $(PIOS)/STM32F4xx -PIOSCOMMON = $(PIOS)/Common -PIOSBOARDS = $(PIOS)/Boards -PIOSCOMMONLIB = $(PIOSCOMMON)/Libraries -APPLIBDIR = $(PIOSSTM32F4XX)/Libraries -STMLIBDIR = $(APPLIBDIR) -STMSPDDIR = $(STMLIBDIR)/STM32F4xx_StdPeriph_Driver -STMSPDSRCDIR = $(STMSPDDIR)/src -STMSPDINCDIR = $(STMSPDDIR)/inc -FLIGHTPLANLIB = $(OPMODULEDIR)/FlightPlan/lib -FLIGHTPLANS = $(OPMODULEDIR)/FlightPlan/flightplans +# Include all camera options +CDEFS += -DUSE_INPUT_LPF -DUSE_GIMBAL_LPF -DUSE_GIMBAL_FF -SRC = -# optional component libraries -include $(PIOSCOMMONLIB)/FreeRTOS/library.mk -#include $(PIOSCOMMONLIB)/dosfs/library.mk -include $(PIOSCOMMONLIB)/msheap/library.mk - -## PYMite support -#include $(FLIGHTLIB)/PyMite/pymite.mk - -# List C source files here. (C dependencies are automatically generated.) -# use file-extension c for "c-only"-files - -## MODULES -SRC += ${foreach MOD, ${OPTMODULES}, ${wildcard ${OPMODULEDIR}/${MOD}/*.c}} -SRC += ${foreach MOD, ${MODULES}, ${wildcard ${OPMODULEDIR}/${MOD}/*.c}} -## OPENPILOT CORE: -SRC += ${OPMODULEDIR}/System/systemmod.c -SRC += $(OPSYSTEM)/revolution.c -SRC += $(OPSYSTEM)/pios_board.c -SRC += $(OPSYSTEM)/pios_usb_board_data.c -SRC += $(OPSYSTEM)/alarms.c -SRC += $(OPUAVTALK)/uavtalk.c -SRC += $(OPUAVOBJ)/uavobjectmanager.c -SRC += $(OPUAVOBJ)/eventdispatcher.c - -#ifeq ($(DEBUG),YES) -SRC += $(OPSYSTEM)/dcc_stdio.c -SRC += $(OPSYSTEM)/cm3_fault_handlers.c -#endif - -SRC += $(FLIGHTLIB)/CoordinateConversions.c -SRC += $(FLIGHTLIB)/paths.c -SRC += $(FLIGHTLIB)/fifo_buffer.c -SRC += $(FLIGHTLIB)/WorldMagModel.c -SRC += $(FLIGHTLIB)/insgps13state.c -SRC += $(FLIGHTLIB)/taskmonitor.c -SRC += $(FLIGHTLIB)/sanitycheck.c - -SRC += $(MATHLIB)/sin_lookup.c -SRC += $(MATHLIB)/pid.c - -## PIOS Hardware (STM32F4xx) -include $(PIOS)/STM32F4xx/library.mk - -## PIOS Hardware (Common) -SRC += $(PIOSCOMMON)/pios_mpu6000.c -SRC += $(PIOSCOMMON)/pios_bma180.c -SRC += $(PIOSCOMMON)/pios_etasv3.c -SRC += $(PIOSCOMMON)/pios_mpxv.c -SRC += $(PIOSCOMMON)/pios_gcsrcvr.c -SRC += $(PIOSCOMMON)/pios_l3gd20.c -SRC += $(PIOSCOMMON)/pios_hmc5883.c -SRC += $(PIOSCOMMON)/pios_ms5611.c -SRC += $(PIOSCOMMON)/pios_crc.c -SRC += $(PIOSCOMMON)/pios_com.c -SRC += $(PIOSCOMMON)/pios_rcvr.c -SRC += $(PIOSCOMMON)/pios_sbus.c -SRC += $(PIOSCOMMON)/pios_flash_jedec.c -SRC += $(PIOSCOMMON)/pios_flashfs_logfs.c -SRC += $(PIOSCOMMON)/printf-stdarg.c -SRC += $(PIOSCOMMON)/pios_usb_desc_hid_cdc.c -SRC += $(PIOSCOMMON)/pios_usb_desc_hid_only.c -SRC += $(PIOSCOMMON)/pios_usb_util.c - -include ./UAVObjects.inc -SRC += $(UAVOBJSRC) - -# List C source files here which must be compiled in ARM-Mode (no -mthumb). -# use file-extension c for "c-only"-files -## just for testing, timer.c could be compiled in thumb-mode too -SRCARM = - -# List C++ source files here. -# use file-extension .cpp for C++-files (not .C) -CPPSRC = - -# List C++ source files here which must be compiled in ARM-Mode. -# use file-extension .cpp for C++-files (not .C) -#CPPSRCARM = $(TARGET).cpp -CPPSRCARM = - -# 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. - - -# List Assembler source files here which must be assembled in ARM-Mode.. -ASRCARM = - -# List any extra directories to look for include files here. -# Each directory must be seperated by a space. -EXTRAINCDIRS += $(PIOS) -EXTRAINCDIRS += $(PIOSINC) -EXTRAINCDIRS += $(OPSYSTEMINC) -EXTRAINCDIRS += $(OPUAVTALK) -EXTRAINCDIRS += $(OPUAVTALKINC) -EXTRAINCDIRS += $(OPUAVOBJ) -EXTRAINCDIRS += $(OPUAVOBJINC) -EXTRAINCDIRS += $(OPUAVSYNTHDIR) -EXTRAINCDIRS += $(FLIGHTLIBINC) -EXTRAINCDIRS += $(MATHLIBINC) -EXTRAINCDIRS += $(PIOSSTM32F4XX) -EXTRAINCDIRS += $(PIOSCOMMON) -EXTRAINCDIRS += $(PIOSBOARDS) -EXTRAINCDIRS += $(STMSPDINCDIR) -EXTRAINCDIRS += $(CMSISDIR) -EXTRAINCDIRS += $(BOOTINC) -EXTRAINCDIRS += $(HWDEFSINC) - -EXTRAINCDIRS += ${foreach MOD, ${OPTMODULES} ${MODULES} ${PYMODULES}, $(OPMODULEDIR)/${MOD}/inc} ${OPMODULEDIR}/System/inc - -# 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 += - -# Path to Linker-Scripts -LINKERSCRIPTPATH = $(PIOSSTM32F4XX) - -# Optimization level, can be [0, 1, 2, 3, s]. -# 0 = turn off optimization. s = optimize for size. -# (Note: 3 is not always the best optimization level. See avr-libc FAQ.) - -ifeq ($(DEBUG),YES) -CFLAGS += -O0 -CFLAGS += -DGENERAL_COV -CFLAGS += -finstrument-functions -ffixed-r10 -else -CFLAGS += -Os -endif - - - -# common architecture-specific flags from the device-specific library makefile -CFLAGS += $(ARCHFLAGS) - -CFLAGS += -DSTACK_DIAGNOSTICS -CFLAGS += -DMIXERSTATUS_DIAGNOSTICS -CFLAGS += -DRATEDESIRED_DIAGNOSTICS -CFLAGS += -DI2C_WDG_STATS_DIAGNOSTICS -CFLAGS += -DDIAG_TASKS - -# This is not the best place for these. Really should abstract out -# to the board file or something -CFLAGS += -DSTM32F4XX -CFLAGS += -DMEM_SIZE=1024000000 - -# Output format. (can be ihex or binary or both) -# binary to create a load-image in raw-binary format i.e. for SAM-BA, -# ihex to create a load-image in Intel hex format -#LOADFORMAT = ihex -#LOADFORMAT = binary -LOADFORMAT = both - -# Debugging format. -DEBUGF = dwarf-2 - -# Place project-specific -D (define) and/or -# -U options for C here. -CDEFS += -DHSE_VALUE=$(OSCILLATOR_FREQ) -CDEFS += -DSYSCLK_FREQ=$(SYSCLK_FREQ) -CDEFS += -DUSE_STDPERIPH_DRIVER -CDEFS += -DUSE_$(BOARD) -ifeq ($(ENABLE_DEBUG_CONSOLE), YES) -CDEFS += -DPIOS_INCLUDE_DEBUG_CONSOLE -endif - -# Declare all non-optional modules as built-in to force inclusion -CDEFS += $(foreach MOD, $(notdir $(MODULES)), -DMODULE_$(MOD)_BUILTIN) - -# Place project-specific -D and/or -U options for -# Assembler with preprocessor here. -#ADEFS = -DUSE_IRQ_ASM_WRAPPER -ADEFS = -D__ASSEMBLY__ - -# Compiler flag to set the C Standard level. -# c89 - "ANSI" C -# gnu89 - c89 plus GCC extensions -# c99 - ISO C99 standard (not yet fully implemented) -# gnu99 - c99 plus GCC extensions -CSTANDARD = -std=gnu99 - -#----- - -# Compiler flags. - -# -g*: generate debugging information -# -O*: optimization level -# -f...: tuning, see GCC manual and avr-libc documentation -# -Wall...: warning level -# -Wa,...: tell GCC to pass this to the assembler. -# -adhlns...: create assembler listing -# -# Flags for C and C++ (arm-elf-gcc/arm-elf-g++) - -CFLAGS += -g$(DEBUGF) +# All diagnostics +CDEFS += -DDIAGNOSTICS -DDIAG_TASKS +# Misc options CFLAGS += -ffast-math -CFLAGS += -mcpu=$(MCU) -CFLAGS += $(CDEFS) -CFLAGS += $(patsubst %,-I%,$(EXTRAINCDIRS)) -I. +# List C source files here (C dependencies are automatically generated). +# Use file-extension c for "c-only"-files +ifndef TESTAPP + ## Application Core + SRC += ${OPMODULEDIR}/System/systemmod.c + SRC += $(OPSYSTEM)/revolution.c + SRC += $(OPSYSTEM)/pios_board.c + SRC += $(OPSYSTEM)/pios_usb_board_data.c + SRC += $(OPSYSTEM)/alarms.c + SRC += $(OPUAVTALK)/uavtalk.c + SRC += $(OPUAVOBJ)/uavobjectmanager.c + SRC += $(OPUAVOBJ)/eventdispatcher.c -CFLAGS += -mapcs-frame -CFLAGS += -fomit-frame-pointer -ifeq ($(CODE_SOURCERY), YES) -CFLAGS += -fpromote-loop-indices -endif + #ifeq ($(DEBUG), YES) + SRC += $(OPSYSTEM)/dcc_stdio.c + SRC += $(OPSYSTEM)/cm3_fault_handlers.c + #endif -CFLAGS += -Wall -#CFLAGS += -Werror -CFLAGS += -Wa,-adhlns=$(addprefix $(OUTDIR)/, $(notdir $(addsuffix .lst, $(basename $<)))) -# Compiler flags to generate dependency files: -CFLAGS += -MD -MP -MF $(OUTDIR)/dep/$(@F).d - -# flags only for C -#CONLYFLAGS += -Wnested-externs -CONLYFLAGS += $(CSTANDARD) - -# Assembler flags. -# -Wa,...: tell GCC to pass this to the assembler. -# -ahlns: create listing -ASFLAGS = $(ARCHFLAGS) -mthumb -I. -x assembler-with-cpp -ASFLAGS += $(ADEFS) -ASFLAGS += -Wa,-adhlns=$(addprefix $(OUTDIR)/, $(notdir $(addsuffix .lst, $(basename $<)))) -ASFLAGS += $(patsubst %,-I%,$(EXTRAINCDIRS)) - -MATH_LIB = -lm - -# Linker flags. -# -Wl,...: tell GCC to pass this to linker. -# -Map: create map file -# --cref: add cross reference to map file -LDFLAGS = -nostartfiles -Wl,-Map=$(OUTDIR)/$(TARGET).map,--cref,--gc-sections -LDFLAGS += $(patsubst %,-L%,$(EXTRA_LIBDIRS)) -LDFLAGS += -lc -LDFLAGS += $(patsubst %,-l%,$(EXTRA_LIBS)) -LDFLAGS += $(MATH_LIB) -LDFLAGS += -lc -lgcc - -#Linker scripts -LDFLAGS += $(addprefix -T,$(LINKER_SCRIPTS_APP)) - - -# Define programs and commands. -REMOVE = $(REMOVE_CMD) -f -PYTHON = python - -# List of all source files. -ALLSRC = $(ASRCARM) $(ASRC) $(SRCARM) $(SRC) $(CPPSRCARM) $(CPPSRC) -# List of all source files without directory and file-extension. -ALLSRCBASE = $(notdir $(basename $(ALLSRC))) - -# Define all object files. -ALLOBJ = $(addprefix $(OUTDIR)/, $(addsuffix .o, $(ALLSRCBASE))) - -# Define all listing files (used for make clean). -LSTFILES = $(addprefix $(OUTDIR)/, $(addsuffix .lst, $(ALLSRCBASE))) -# Define all depedency-files (used for make clean). -DEPFILES = $(addprefix $(OUTDIR)/dep/, $(addsuffix .o.d, $(ALLSRCBASE))) - -# Default target. -all: gccversion build - -ifeq ($(LOADFORMAT),ihex) -build: elf hex lss sym + SRC += $(FLIGHTLIB)/paths.c + SRC += $(FLIGHTLIB)/WorldMagModel.c + SRC += $(FLIGHTLIB)/insgps13state.c else -ifeq ($(LOADFORMAT),binary) -build: elf bin lss sym -else -ifeq ($(LOADFORMAT),both) -build: elf hex bin lss sym -else -$(error "$(MSG_FORMATERROR) $(FORMAT)") -endif -endif + ## Test Code + SRC += $(OPTESTS)/test_common.c + SRC += $(OPTESTS)/$(TESTAPP).c endif - -# Link: create ELF output file from object files. -$(eval $(call LINK_TEMPLATE, $(OUTDIR)/$(TARGET).elf, $(ALLOBJ), $(ALLLIB))) - -# Assemble: create object files from assembler source files. -$(foreach src, $(ASRC), $(eval $(call ASSEMBLE_TEMPLATE, $(src)))) - -# Assemble: create object files from assembler source files. ARM-only -$(foreach src, $(ASRCARM), $(eval $(call ASSEMBLE_ARM_TEMPLATE, $(src)))) - -# Compile: create object files from C source files. -$(foreach src, $(SRC), $(eval $(call COMPILE_C_TEMPLATE, $(src)))) - -# Compile: create object files from C source files. ARM-only -$(foreach src, $(SRCARM), $(eval $(call COMPILE_C_ARM_TEMPLATE, $(src)))) - -# Compile: create object files from C++ source files. -$(foreach src, $(CPPSRC), $(eval $(call COMPILE_CPP_TEMPLATE, $(src)))) - -# Compile: create object files from C++ source files. ARM-only -$(foreach src, $(CPPSRCARM), $(eval $(call COMPILE_CPP_ARM_TEMPLATE, $(src)))) - -# Compile: create assembler files from C source files. ARM/Thumb -$(eval $(call PARTIAL_COMPILE_TEMPLATE, SRC)) - -# Compile: create assembler files from C source files. ARM only -$(eval $(call PARTIAL_COMPILE_ARM_TEMPLATE, SRCARM)) - -$(OUTDIR)/$(TARGET).bin.o: $(OUTDIR)/$(TARGET).bin - -$(eval $(call OPFW_TEMPLATE,$(OUTDIR)/$(TARGET).bin,$(BOARD_TYPE),$(BOARD_REVISION))) - -# Add jtag targets (program and wipe) -$(eval $(call JTAG_TEMPLATE,$(OUTDIR)/$(TARGET).bin,$(FW_BANK_BASE),$(FW_BANK_SIZE),$(OPENOCD_JTAG_CONFIG),$(OPENOCD_CONFIG))) - -.PHONY: elf lss sym hex bin bino opfw -elf: $(OUTDIR)/$(TARGET).elf -lss: $(OUTDIR)/$(TARGET).lss -sym: $(OUTDIR)/$(TARGET).sym -hex: $(OUTDIR)/$(TARGET).hex -bin: $(OUTDIR)/$(TARGET).bin -bino: $(OUTDIR)/$(TARGET).bin.o -opfw: $(OUTDIR)/$(TARGET).opfw - -# Display sizes of sections. -$(eval $(call SIZE_TEMPLATE, $(OUTDIR)/$(TARGET).elf)) - -# Generate Doxygen documents -docs: - doxygen $(DOXYGENDIR)/doxygen.cfg - -# Install: install binary file with prefix/suffix into install directory -install: $(OUTDIR)/$(TARGET).opfw -ifneq ($(INSTALL_DIR),) - @echo $(MSG_INSTALLING) $(call toprel, $<) - $(V1) mkdir -p $(INSTALL_DIR) - $(V1) $(INSTALL) $< $(INSTALL_DIR)/$(INSTALL_PFX)$(TARGET)$(INSTALL_SFX).opfw -else - $(error INSTALL_DIR must be specified for $@) +## UAVObjects +ifndef TESTAPP + include ./UAVObjects.inc + SRC += $(UAVOBJSRC) endif -# Target: clean project. -clean: clean_list - -clean_list : - @echo $(MSG_CLEANING) - $(V1) $(REMOVE) $(OUTDIR)/$(TARGET).map - $(V1) $(REMOVE) $(OUTDIR)/$(TARGET).elf - $(V1) $(REMOVE) $(OUTDIR)/$(TARGET).hex - $(V1) $(REMOVE) $(OUTDIR)/$(TARGET).bin - $(V1) $(REMOVE) $(OUTDIR)/$(TARGET).sym - $(V1) $(REMOVE) $(OUTDIR)/$(TARGET).lss - $(V1) $(REMOVE) $(OUTDIR)/$(TARGET).bin.o - $(V1) $(REMOVE) $(ALLOBJ) - $(V1) $(REMOVE) $(LSTFILES) - $(V1) $(REMOVE) $(DEPFILES) - $(V1) $(REMOVE) $(SRC:.c=.s) - $(V1) $(REMOVE) $(SRCARM:.c=.s) - $(V1) $(REMOVE) $(CPPSRC:.cpp=.s) - $(V1) $(REMOVE) $(CPPSRCARM:.cpp=.s) - -# Create output files directory -# all known MS Windows OS define the ComSpec environment variable -ifdef ComSpec -$(shell md $(subst /,\\,$(OUTDIR)) 2>NUL) -else -$(shell mkdir -p $(OUTDIR) 2>/dev/null) -endif - -# Include the dependency files. -ifdef ComSpec --include $(shell md $(subst /,\\,$(OUTDIR))\dep 2>NUL) $(wildcard $(OUTDIR)/dep/*) -else --include $(shell mkdir $(OUTDIR) 2>/dev/null) $(shell mkdir $(OUTDIR)/dep 2>/dev/null) $(wildcard $(OUTDIR)/dep/*) -endif - -# Listing of phony targets. -.PHONY : all build clean clean_list install +include $(ROOT_DIR)/make/apps-defs.mk +include $(ROOT_DIR)/make/common-defs.mk diff --git a/flight/targets/Revolution/System/inc/pios_config.h b/flight/targets/Revolution/System/inc/pios_config.h index 7c53d01ea..2bccd78dc 100644 --- a/flight/targets/Revolution/System/inc/pios_config.h +++ b/flight/targets/Revolution/System/inc/pios_config.h @@ -39,95 +39,109 @@ /* #define PIOS_INCLUDE_DEBUG_CONSOLE */ /* #define DEBUG_LEVEL 0 */ +/* PIOS system functions */ #define PIOS_INCLUDE_FREERTOS #define PIOS_INCLUDE_DELAY #define PIOS_INCLUDE_INITCALL #define PIOS_INCLUDE_SYS +/* PIOS hardware peripherals */ #define PIOS_INCLUDE_IRQ #define PIOS_INCLUDE_RTC #define PIOS_INCLUDE_TIM #define PIOS_INCLUDE_USART #define PIOS_INCLUDE_ADC -/* #define PIOS_INCLUDE_I2C */ +#define PIOS_INCLUDE_I2C #define PIOS_INCLUDE_SPI -#define PIOS_INCLUDE_GPIO +/* #define PIOS_INCLUDE_GPIO */ #define PIOS_INCLUDE_EXTI #define PIOS_INCLUDE_WDG + +/* PIOS USB functions */ #define PIOS_INCLUDE_USB #define PIOS_INCLUDE_USB_HID -#define PIOS_INCLUDE_USB_CDC -#define PIOS_INCLUDE_USB_RCTX +/* #define PIOS_INCLUDE_USB_CDC */ +/* #define PIOS_INCLUDE_USB_RCTX */ -#define PIOS_INCLUDE_ADXL345 -/* #define PIOS_INCLUDE_BMA180 */ -/* #define PIOS_INCLUDE_L3GD20 */ +/* PIOS sensor interfaces */ +/* #define PIOS_INCLUDE_ADXL345 */ +#define PIOS_INCLUDE_BMA180 +#define PIOS_INCLUDE_L3GD20 #define PIOS_INCLUDE_MPU6000 #define PIOS_MPU6000_ACCEL /* #define PIOS_INCLUDE_HMC5843 */ -/* #define PIOS_INCLUDE_HMC5883 */ -/* #define PIOS_HMC5883_HAS_GPIOS */ +#define PIOS_INCLUDE_HMC5883 +#define PIOS_HMC5883_HAS_GPIOS /* #define PIOS_INCLUDE_BMP085 */ -/* #define PIOS_INCLUDE_MS5611 */ -/* #define PIOS_INCLUDE_MPXV */ -/* #define PIOS_INCLUDE_ETASV3 */ +#define PIOS_INCLUDE_MS5611 +#define PIOS_INCLUDE_MPXV +#define PIOS_INCLUDE_ETASV3 /* #define PIOS_INCLUDE_HCSR04 */ +/* PIOS receiver drivers */ #define PIOS_INCLUDE_PWM #define PIOS_INCLUDE_PPM #define PIOS_INCLUDE_DSM #define PIOS_INCLUDE_SBUS #define PIOS_INCLUDE_GCSRCVR +/* PIOS common peripherals */ #define PIOS_INCLUDE_LED #define PIOS_INCLUDE_IAP #define PIOS_INCLUDE_SERVO /* #define PIOS_INCLUDE_I2C_ESC */ -/* #define PIOS_INCLUDE_OVERO */ +#define PIOS_INCLUDE_OVERO +#define PIOS_OVERO_SPI /* #define PIOS_INCLUDE_SDCARD */ #define PIOS_INCLUDE_FLASH #define PIOS_INCLUDE_FLASH_SECTOR_SETTINGS -/* #define FLASH_FREERTOS */ +#define FLASH_FREERTOS /* #define PIOS_INCLUDE_FLASH_EEPROM */ /* #define PIOS_INCLUDE_RFM22B */ /* #define PIOS_INCLUDE_PACKET_HANDLER */ /* #define PIOS_INCLUDE_VIDEO */ /* #define PIOS_INCLUDE_WAVE */ -#define PIOS_INCLUDE_BL_HELPER -/* #define PIOS_INCLUDE_BL_HELPER_WRITE_SUPPORT */ /* #define PIOS_INCLUDE_UDP */ +/* PIOS abstract receiver interface */ #define PIOS_INCLUDE_RCVR + +/* PIOS abstract comms interface with options */ #define PIOS_INCLUDE_COM /* #define PIOS_INCLUDE_COM_MSG */ -#define PIOS_INCLUDE_TELEMETRY_RF -/* #define PIOS_INCLUDE_COM_TELEM */ -/* #define PIOS_INCLUDE_COM_FLEXI */ -/* #define PIOS_TELEM_PRIORITY_QUEUE */ +/* #define PIOS_INCLUDE_TELEMETRY_RF */ +#define PIOS_INCLUDE_COM_TELEM +#define PIOS_INCLUDE_COM_FLEXI +#define PIOS_INCLUDE_COM_AUX +#define PIOS_TELEM_PRIORITY_QUEUE #define PIOS_INCLUDE_GPS -#define PIOS_GPS_MINIMAL +/* #define PIOS_GPS_MINIMAL */ #define PIOS_INCLUDE_GPS_NMEA_PARSER #define PIOS_INCLUDE_GPS_UBX_PARSER -/* #define PIOS_GPS_SETS_HOMELOCATION */ +#define PIOS_GPS_SETS_HOMELOCATION + +/* PIOS bootloader helper */ +#define PIOS_INCLUDE_BL_HELPER +/* #define PIOS_INCLUDE_BL_HELPER_WRITE_SUPPORT */ /* Performance counters */ -#define IDLE_COUNTS_PER_SEC_AT_NO_LOAD 1995998 +#define IDLE_COUNTS_PER_SEC_AT_NO_LOAD 8379692 /* Alarm Thresholds */ -#define HEAP_LIMIT_WARNING 220 -#define HEAP_LIMIT_CRITICAL 40 -#define IRQSTACK_LIMIT_WARNING 100 -#define IRQSTACK_LIMIT_CRITICAL 60 -#define CPULOAD_LIMIT_WARNING 85 +#define HEAP_LIMIT_WARNING 1000 +#define HEAP_LIMIT_CRITICAL 500 +#define IRQSTACK_LIMIT_WARNING 150 +#define IRQSTACK_LIMIT_CRITICAL 80 +#define CPULOAD_LIMIT_WARNING 80 #define CPULOAD_LIMIT_CRITICAL 95 /* Task stack sizes */ -#define PIOS_ACTUATOR_STACK_SIZE 1020 -#define PIOS_MANUAL_STACK_SIZE 800 -#define PIOS_SYSTEM_STACK_SIZE 660 -#define PIOS_STABILIZATION_STACK_SIZE 524 -#define PIOS_TELEM_STACK_SIZE 500 -#define PIOS_EVENTDISPATCHER_STACK_SIZE 130 +/* #define PIOS_ACTUATOR_STACK_SIZE 1020 */ +/* #define PIOS_MANUAL_STACK_SIZE 800 */ +/* #define PIOS_SYSTEM_STACK_SIZE 660 */ +/* #define PIOS_STABILIZATION_STACK_SIZE 524 */ +/* #define PIOS_TELEM_STACK_SIZE 500 */ +/* #define PIOS_EVENTDISPATCHER_STACK_SIZE 130 */ /* Stabilization options */ /* #define PIOS_QUATERNION_STABILIZATION */ @@ -135,7 +149,15 @@ /* This can't be too high to stop eventdispatcher thread overflowing */ #define PIOS_EVENTDISAPTCHER_QUEUE 10 +/* Revolution series */ +#define REVOLUTION + +/* OBSOLETE */ +#define PIOS_INCLUDE_COM_AUXSBUS +#define PIOS_FLASH_ON_ACCEL /* true for second revo */ + #endif /* PIOS_CONFIG_H */ + /** * @} * @}