mirror of
https://github.com/PX4/PX4-Autopilot.git
synced 2026-06-01 19:07:45 +08:00
Merge remote-tracking branch 'upstream/master' into new_state_machine
Conflicts: src/drivers/px4io/px4io.cpp src/modules/commander/commander.c src/modules/commander/state_machine_helper.c
This commit is contained in:
+6
-1
@@ -1,4 +1,5 @@
|
|||||||
.built
|
.built
|
||||||
|
.context
|
||||||
*.context
|
*.context
|
||||||
*.bdat
|
*.bdat
|
||||||
*.pdat
|
*.pdat
|
||||||
@@ -43,7 +44,6 @@ nuttx/nuttx.hex
|
|||||||
.settings
|
.settings
|
||||||
Firmware.sublime-workspace
|
Firmware.sublime-workspace
|
||||||
.DS_Store
|
.DS_Store
|
||||||
nsh_romfsimg.h
|
|
||||||
cscope.out
|
cscope.out
|
||||||
.configX-e
|
.configX-e
|
||||||
nuttx-export.zip
|
nuttx-export.zip
|
||||||
@@ -55,3 +55,8 @@ mavlink/include/mavlink/v0.9/
|
|||||||
core
|
core
|
||||||
.gdbinit
|
.gdbinit
|
||||||
mkdeps
|
mkdeps
|
||||||
|
Archives
|
||||||
|
Build
|
||||||
|
!ROMFS/*/*.d
|
||||||
|
!ROMFS/*/*/*.d
|
||||||
|
!ROMFS/*/*/*/*.d
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -1,43 +1,53 @@
|
|||||||
|
#
|
||||||
|
# Copyright (c) 2012, 2013 PX4 Development Team. All rights reserved.
|
||||||
|
#
|
||||||
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
# modification, are permitted provided that the following conditions
|
||||||
|
# are met:
|
||||||
|
#
|
||||||
|
# 1. Redistributions of source code must retain the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer.
|
||||||
|
# 2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer in
|
||||||
|
# the documentation and/or other materials provided with the
|
||||||
|
# distribution.
|
||||||
|
# 3. Neither the name PX4 nor the names of its contributors may be
|
||||||
|
# used to endorse or promote products derived from this software
|
||||||
|
# without specific prior written permission.
|
||||||
|
#
|
||||||
|
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||||
|
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||||
|
# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||||
|
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||||
|
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||||
|
# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
||||||
|
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||||
|
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||||
|
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
# POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
#
|
||||||
|
|
||||||
#
|
#
|
||||||
# Top-level Makefile for building PX4 firmware images.
|
# Top-level Makefile for building PX4 firmware images.
|
||||||
#
|
#
|
||||||
#
|
|
||||||
# Note that this is a transitional process; the eventual goal is for this
|
|
||||||
# project to slim down and simply generate PX4 link kits via the NuttX
|
|
||||||
# 'make export' mechanism.
|
|
||||||
#
|
|
||||||
#
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Some useful paths.
|
# Get path and tool configuration
|
||||||
#
|
#
|
||||||
export PX4BASE = $(realpath $(dir $(lastword $(MAKEFILE_LIST))))
|
export PX4_BASE := $(realpath $(dir $(lastword $(MAKEFILE_LIST))))/
|
||||||
export NUTTX_SRC = $(PX4BASE)/nuttx
|
include $(PX4_BASE)makefiles/setup.mk
|
||||||
export NUTTX_APPS = $(PX4BASE)/apps
|
|
||||||
export MAVLINK_SRC = $(PX4BASE)/mavlink
|
|
||||||
export ROMFS_SRC = $(PX4BASE)/ROMFS
|
|
||||||
export IMAGE_DIR = $(PX4BASE)/Images
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Tools
|
# Canned firmware configurations that we build.
|
||||||
#
|
#
|
||||||
MKFW = $(PX4BASE)/Tools/px_mkfw.py
|
CONFIGS ?= $(subst config_,,$(basename $(notdir $(wildcard $(PX4_MK_DIR)config_*.mk))))
|
||||||
UPLOADER = $(PX4BASE)/Tools/px_uploader.py
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# What are we currently configured for?
|
# Boards that we build NuttX export kits for.
|
||||||
#
|
#
|
||||||
CONFIGURED = $(PX4BASE)/.configured
|
BOARDS := $(subst board_,,$(basename $(notdir $(wildcard $(PX4_MK_DIR)board_*.mk))))
|
||||||
ifneq ($(wildcard $(CONFIGURED)),)
|
|
||||||
export TARGET := $(shell cat $(CONFIGURED))
|
|
||||||
endif
|
|
||||||
|
|
||||||
#
|
|
||||||
# What we will build
|
|
||||||
#
|
|
||||||
FIRMWARE_BUNDLE = $(IMAGE_DIR)/$(TARGET).px4
|
|
||||||
FIRMWARE_BINARY = $(IMAGE_DIR)/$(TARGET).bin
|
|
||||||
FIRMWARE_PROTOTYPE = $(IMAGE_DIR)/$(TARGET).prototype
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Debugging
|
# Debugging
|
||||||
@@ -45,120 +55,156 @@ FIRMWARE_PROTOTYPE = $(IMAGE_DIR)/$(TARGET).prototype
|
|||||||
MQUIET = --no-print-directory
|
MQUIET = --no-print-directory
|
||||||
#MQUIET = --print-directory
|
#MQUIET = --print-directory
|
||||||
|
|
||||||
all: $(FIRMWARE_BUNDLE)
|
################################################################################
|
||||||
|
# No user-serviceable parts below
|
||||||
|
################################################################################
|
||||||
|
|
||||||
#
|
#
|
||||||
# Generate a wrapped .px4 file from the built binary
|
# If the user has listed a config as a target, strip it out and override CONFIGS.
|
||||||
#
|
#
|
||||||
$(FIRMWARE_BUNDLE): $(FIRMWARE_BINARY) $(MKFW) $(FIRMWARE_PROTOTYPE)
|
FIRMWARE_GOAL = firmware
|
||||||
@echo Generating $@
|
EXPLICIT_CONFIGS := $(filter $(CONFIGS),$(MAKECMDGOALS))
|
||||||
@$(MKFW) --prototype $(FIRMWARE_PROTOTYPE) \
|
ifneq ($(EXPLICIT_CONFIGS),)
|
||||||
--git_identity $(PX4BASE) \
|
CONFIGS := $(EXPLICIT_CONFIGS)
|
||||||
--image $(FIRMWARE_BINARY) > $@
|
.PHONY: $(EXPLICIT_CONFIGS)
|
||||||
|
$(EXPLICIT_CONFIGS): all
|
||||||
|
|
||||||
#
|
#
|
||||||
# Build the firmware binary.
|
# If the user has asked to upload, they must have also specified exactly one
|
||||||
|
# config.
|
||||||
#
|
#
|
||||||
.PHONY: $(FIRMWARE_BINARY)
|
ifneq ($(filter upload,$(MAKECMDGOALS)),)
|
||||||
$(FIRMWARE_BINARY): setup_$(TARGET) configure-check
|
ifneq ($(words $(EXPLICIT_CONFIGS)),1)
|
||||||
@echo Building $@ for $(TARGET)
|
$(error In order to upload, exactly one board config must be specified)
|
||||||
@make -C $(NUTTX_SRC) -r $(MQUIET) all
|
endif
|
||||||
@cp $(NUTTX_SRC)/nuttx.bin $@
|
FIRMWARE_GOAL = upload
|
||||||
|
.PHONY: upload
|
||||||
#
|
upload:
|
||||||
# The 'configure' targets select one particular firmware configuration
|
@:
|
||||||
# and makes it current.
|
endif
|
||||||
#
|
|
||||||
configure_px4fmu:
|
|
||||||
@echo Configuring for px4fmu
|
|
||||||
@make -C $(PX4BASE) distclean
|
|
||||||
@cd $(NUTTX_SRC)/tools && /bin/sh configure.sh px4fmu/nsh
|
|
||||||
@echo px4fmu > $(CONFIGURED)
|
|
||||||
|
|
||||||
configure_px4io:
|
|
||||||
@echo Configuring for px4io
|
|
||||||
@make -C $(PX4BASE) distclean
|
|
||||||
@cd $(NUTTX_SRC)/tools && /bin/sh configure.sh px4io/io
|
|
||||||
@echo px4io > $(CONFIGURED)
|
|
||||||
|
|
||||||
configure-check:
|
|
||||||
ifeq ($(wildcard $(CONFIGURED)),)
|
|
||||||
@echo
|
|
||||||
@echo "Not configured - use 'make configure_px4fmu' or 'make configure_px4io' first"
|
|
||||||
@echo
|
|
||||||
@exit 1
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
#
|
||||||
|
# Built products
|
||||||
|
#
|
||||||
|
STAGED_FIRMWARES = $(foreach config,$(CONFIGS),$(IMAGE_DIR)$(config).px4)
|
||||||
|
FIRMWARES = $(foreach config,$(CONFIGS),$(BUILD_DIR)$(config).build/firmware.px4)
|
||||||
|
|
||||||
|
all: $(STAGED_FIRMWARES)
|
||||||
|
|
||||||
#
|
#
|
||||||
# Per-configuration additional targets
|
# Copy FIRMWARES into the image directory.
|
||||||
#
|
#
|
||||||
.PHONY: px4fmu_setup
|
$(STAGED_FIRMWARES): $(IMAGE_DIR)%.px4: $(BUILD_DIR)%.build/firmware.px4
|
||||||
setup_px4fmu:
|
@echo %% Copying $@
|
||||||
@echo Generating ROMFS
|
$(Q) $(COPY) $< $@
|
||||||
@make -C $(ROMFS_SRC) all
|
|
||||||
|
|
||||||
setup_px4io:
|
|
||||||
|
|
||||||
# fake target to make configure-check happy if TARGET is not set
|
|
||||||
setup_:
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Firmware uploading.
|
# Generate FIRMWARES.
|
||||||
#
|
#
|
||||||
|
.PHONY: $(FIRMWARES)
|
||||||
|
$(BUILD_DIR)%.build/firmware.px4: config = $(patsubst $(BUILD_DIR)%.build/firmware.px4,%,$@)
|
||||||
|
$(BUILD_DIR)%.build/firmware.px4: work_dir = $(BUILD_DIR)$(config).build/
|
||||||
|
$(FIRMWARES): $(BUILD_DIR)%.build/firmware.px4:
|
||||||
|
@echo %%%%
|
||||||
|
@echo %%%% Building $(config) in $(work_dir)
|
||||||
|
@echo %%%%
|
||||||
|
$(Q) mkdir -p $(work_dir)
|
||||||
|
$(Q) make -r -C $(work_dir) \
|
||||||
|
-f $(PX4_MK_DIR)firmware.mk \
|
||||||
|
CONFIG=$(config) \
|
||||||
|
WORK_DIR=$(work_dir) \
|
||||||
|
$(FIRMWARE_GOAL)
|
||||||
|
|
||||||
# serial port defaults by operating system.
|
#
|
||||||
SYSTYPE = $(shell uname)
|
# Build the NuttX export archives.
|
||||||
ifeq ($(SYSTYPE),Darwin)
|
#
|
||||||
SERIAL_PORTS ?= "/dev/tty.usbmodemPX1,/dev/tty.usbmodemPX2,/dev/tty.usbmodemPX3,/dev/tty.usbmodemPX4,/dev/tty.usbmodem1,/dev/tty.usbmodem2,/dev/tty.usbmodem3,/dev/tty.usbmodem4"
|
# Note that there are no explicit dependencies extended from these
|
||||||
endif
|
# archives. If NuttX is updated, the user is expected to rebuild the
|
||||||
ifeq ($(SYSTYPE),Linux)
|
# archives/build area manually. Likewise, when the 'archives' target is
|
||||||
SERIAL_PORTS ?= "/dev/ttyACM5,/dev/ttyACM4,/dev/ttyACM3,/dev/ttyACM2,/dev/ttyACM1,/dev/ttyACM0"
|
# invoked, all archives are always rebuilt.
|
||||||
endif
|
#
|
||||||
ifeq ($(SERIAL_PORTS),)
|
# XXX Should support fetching/unpacking from a separate directory to permit
|
||||||
SERIAL_PORTS = "\\\\.\\COM32,\\\\.\\COM31,\\\\.\\COM30,\\\\.\\COM29,\\\\.\\COM28,\\\\.\\COM27,\\\\.\\COM26,\\\\.\\COM25,\\\\.\\COM24,\\\\.\\COM23,\\\\.\\COM22,\\\\.\\COM21,\\\\.\\COM20,\\\\.\\COM19,\\\\.\\COM18,\\\\.\\COM17,\\\\.\\COM16,\\\\.\\COM15,\\\\.\\COM14,\\\\.\\COM13,\\\\.\\COM12,\\\\.\\COM11,\\\\.\\COM10,\\\\.\\COM9,\\\\.\\COM8,\\\\.\\COM7,\\\\.\\COM6,\\\\.\\COM5,\\\\.\\COM4,\\\\.\\COM3,\\\\.\\COM2,\\\\.\\COM1,\\\\.\\COM0"
|
# downloads of the prebuilt archives as well...
|
||||||
|
#
|
||||||
|
# XXX PX4IO configuration name is bad - NuttX configs should probably all be "px4"
|
||||||
|
#
|
||||||
|
NUTTX_ARCHIVES = $(foreach board,$(BOARDS),$(ARCHIVE_DIR)$(board).export)
|
||||||
|
.PHONY: archives
|
||||||
|
archives: $(NUTTX_ARCHIVES)
|
||||||
|
|
||||||
|
# We cannot build these parallel; note that we also force -j1 for the
|
||||||
|
# sub-make invocations.
|
||||||
|
ifneq ($(filter archives,$(MAKECMDGOALS)),)
|
||||||
|
.NOTPARALLEL:
|
||||||
endif
|
endif
|
||||||
|
|
||||||
upload: $(FIRMWARE_BUNDLE) $(UPLOADER)
|
$(ARCHIVE_DIR)%.export: board = $(notdir $(basename $@))
|
||||||
$(UPLOADER) --port $(SERIAL_PORTS) $(FIRMWARE_BUNDLE)
|
$(ARCHIVE_DIR)%.export: configuration = $(if $(filter $(board),px4io),io,nsh)
|
||||||
|
$(NUTTX_ARCHIVES): $(ARCHIVE_DIR)%.export: $(NUTTX_SRC) $(NUTTX_APPS)
|
||||||
#
|
@echo %% Configuring NuttX for $(board)
|
||||||
# JTAG firmware uploading with OpenOCD
|
$(Q) (cd $(NUTTX_SRC) && $(RMDIR) nuttx-export)
|
||||||
#
|
$(Q) make -r -j1 -C $(NUTTX_SRC) -r $(MQUIET) distclean
|
||||||
ifeq ($(JTAGCONFIG),)
|
$(Q) (cd $(NUTTX_SRC)tools && ./configure.sh $(board)/$(configuration))
|
||||||
JTAGCONFIG=interface/olimex-jtag-tiny.cfg
|
@echo %% Exporting NuttX for $(board)
|
||||||
endif
|
$(Q) make -r -j1 -C $(NUTTX_SRC) -r $(MQUIET) export
|
||||||
|
$(Q) mkdir -p $(dir $@)
|
||||||
upload-jtag-px4fmu:
|
$(Q) $(COPY) $(NUTTX_SRC)nuttx-export.zip $@
|
||||||
@echo Attempting to flash PX4FMU board via JTAG
|
|
||||||
@openocd -f $(JTAGCONFIG) -f ../Bootloader/stm32f4x.cfg -c init -c "reset halt" -c "flash write_image erase nuttx/nuttx" -c "flash write_image erase ../Bootloader/px4fmu_bl.elf" -c "reset run" -c shutdown
|
|
||||||
|
|
||||||
upload-jtag-px4io: all
|
|
||||||
@echo Attempting to flash PX4IO board via JTAG
|
|
||||||
@openocd -f $(JTAGCONFIG) -f ../Bootloader/stm32f1x.cfg -c init -c "reset halt" -c "flash write_image erase nuttx/nuttx" -c "flash write_image erase ../Bootloader/px4io_bl.elf" -c "reset run" -c shutdown
|
|
||||||
|
|
||||||
#
|
|
||||||
# Hacks and fixups
|
|
||||||
#
|
|
||||||
|
|
||||||
ifeq ($(SYSTYPE),Darwin)
|
|
||||||
# PATH inherited by Eclipse may not include toolchain install location
|
|
||||||
export PATH := $(PATH):/usr/local/bin
|
|
||||||
endif
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Cleanup targets. 'clean' should remove all built products and force
|
# Cleanup targets. 'clean' should remove all built products and force
|
||||||
# a complete re-compilation, 'distclean' should remove everything
|
# a complete re-compilation, 'distclean' should remove everything
|
||||||
# that's generated leaving only files that are in source control.
|
# that's generated leaving only files that are in source control.
|
||||||
#
|
#
|
||||||
.PHONY: clean upload-jtag-px4fmu
|
.PHONY: clean
|
||||||
clean:
|
clean:
|
||||||
@make -C $(NUTTX_SRC) -r $(MQUIET) distclean
|
$(Q) $(RMDIR) $(BUILD_DIR)*.build
|
||||||
@make -C $(ROMFS_SRC) -r $(MQUIET) clean
|
$(Q) $(REMOVE) $(IMAGE_DIR)*.px4
|
||||||
|
|
||||||
.PHONY: distclean
|
.PHONY: distclean
|
||||||
distclean:
|
distclean: clean
|
||||||
@rm -f $(CONFIGURED)
|
$(Q) $(REMOVE) $(ARCHIVE_DIR)*.export
|
||||||
@make -C $(NUTTX_SRC) -r $(MQUIET) distclean
|
$(Q) make -C $(NUTTX_SRC) -r $(MQUIET) distclean
|
||||||
@make -C $(ROMFS_SRC) -r $(MQUIET) distclean
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Print some help text
|
||||||
|
#
|
||||||
|
.PHONY: help
|
||||||
|
help:
|
||||||
|
@echo ""
|
||||||
|
@echo " PX4 firmware builder"
|
||||||
|
@echo " ===================="
|
||||||
|
@echo ""
|
||||||
|
@echo " Available targets:"
|
||||||
|
@echo " ------------------"
|
||||||
|
@echo ""
|
||||||
|
@echo " archives"
|
||||||
|
@echo " Build the NuttX RTOS archives that are used by the firmware build."
|
||||||
|
@echo ""
|
||||||
|
@echo " all"
|
||||||
|
@echo " Build all firmware configs: $(CONFIGS)"
|
||||||
|
@echo " A limited set of configs can be built with CONFIGS=<list-of-configs>"
|
||||||
|
@echo ""
|
||||||
|
@for config in $(CONFIGS); do \
|
||||||
|
echo " $$config"; \
|
||||||
|
echo " Build just the $$config firmware configuration."; \
|
||||||
|
echo ""; \
|
||||||
|
done
|
||||||
|
@echo " clean"
|
||||||
|
@echo " Remove all firmware build pieces."
|
||||||
|
@echo ""
|
||||||
|
@echo " distclean"
|
||||||
|
@echo " Remove all compilation products, including NuttX RTOS archives."
|
||||||
|
@echo ""
|
||||||
|
@echo " upload"
|
||||||
|
@echo " When exactly one config is being built, add this target to upload the"
|
||||||
|
@echo " firmware to the board when the build is complete. Not supported for"
|
||||||
|
@echo " all configurations."
|
||||||
|
@echo ""
|
||||||
|
@echo " Common options:"
|
||||||
|
@echo " ---------------"
|
||||||
|
@echo ""
|
||||||
|
@echo " V=1"
|
||||||
|
@echo " If V is set, more verbose output is printed during the build. This can"
|
||||||
|
@echo " help when diagnosing issues with the build or toolchain."
|
||||||
|
@echo ""
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
/img
|
|
||||||
-122
@@ -1,122 +0,0 @@
|
|||||||
#
|
|
||||||
# Makefile to generate a PX4FMU ROMFS image.
|
|
||||||
#
|
|
||||||
# In normal use, 'make install' will generate a new ROMFS header and place it
|
|
||||||
# into the px4fmu configuration in the appropriate location.
|
|
||||||
#
|
|
||||||
|
|
||||||
#
|
|
||||||
# Directories of interest
|
|
||||||
#
|
|
||||||
SRCROOT ?= $(dir $(lastword $(MAKEFILE_LIST)))
|
|
||||||
BUILDROOT ?= $(SRCROOT)/img
|
|
||||||
ROMFS_HEADER ?= $(SRCROOT)/../nuttx/configs/px4fmu/include/nsh_romfsimg.h
|
|
||||||
|
|
||||||
#
|
|
||||||
# List of files to install in the ROMFS, specified as <source>~<destination>
|
|
||||||
#
|
|
||||||
ROMFS_FSSPEC := $(SRCROOT)/scripts/rcS~init.d/rcS \
|
|
||||||
$(SRCROOT)/scripts/rc.sensors~init.d/rc.sensors \
|
|
||||||
$(SRCROOT)/scripts/rc.logging~init.d/rc.logging \
|
|
||||||
$(SRCROOT)/scripts/rc.standalone~init.d/rc.standalone \
|
|
||||||
$(SRCROOT)/scripts/rc.PX4IO~init.d/rc.PX4IO \
|
|
||||||
$(SRCROOT)/scripts/rc.PX4IOAR~init.d/rc.PX4IOAR \
|
|
||||||
$(SRCROOT)/scripts/rc.FMU_quad_x~init.d/rc.FMU_quad_x \
|
|
||||||
$(SRCROOT)/scripts/rc.usb~init.d/rc.usb \
|
|
||||||
$(SRCROOT)/scripts/rc.hil~init.d/rc.hil \
|
|
||||||
$(SRCROOT)/mixers/FMU_pass.mix~mixers/FMU_pass.mix \
|
|
||||||
$(SRCROOT)/mixers/FMU_Q.mix~mixers/FMU_Q.mix \
|
|
||||||
$(SRCROOT)/mixers/FMU_X5.mix~mixers/FMU_X5.mix \
|
|
||||||
$(SRCROOT)/mixers/FMU_AERT.mix~mixers/FMU_AERT.mix \
|
|
||||||
$(SRCROOT)/mixers/FMU_AET.mix~mixers/FMU_AET.mix \
|
|
||||||
$(SRCROOT)/mixers/FMU_RET.mix~mixers/FMU_ERT.mix \
|
|
||||||
$(SRCROOT)/mixers/FMU_quad_x.mix~mixers/FMU_quad_x.mix \
|
|
||||||
$(SRCROOT)/mixers/FMU_quad_+.mix~mixers/FMU_quad_+.mix \
|
|
||||||
$(SRCROOT)/mixers/FMU_hex_x.mix~mixers/FMU_hex_x.mix \
|
|
||||||
$(SRCROOT)/mixers/FMU_hex_+.mix~mixers/FMU_hex_+.mix \
|
|
||||||
$(SRCROOT)/mixers/FMU_octo_x.mix~mixers/FMU_octo_x.mix \
|
|
||||||
$(SRCROOT)/mixers/FMU_octo_+.mix~mixers/FMU_octo_+.mix \
|
|
||||||
$(SRCROOT)/logging/logconv.m~logging/logconv.m
|
|
||||||
|
|
||||||
# the EXTERNAL_SCRIPTS variable is used to add out of tree scripts
|
|
||||||
# to ROMFS.
|
|
||||||
ROMFS_FSSPEC += $(EXTERNAL_SCRIPTS)
|
|
||||||
|
|
||||||
#
|
|
||||||
# Add the PX4IO firmware to the spec if someone has dropped it into the
|
|
||||||
# source directory, or otherwise specified its location.
|
|
||||||
#
|
|
||||||
# Normally this is only something you'd do when working on PX4IO; most
|
|
||||||
# users will upgrade with firmware off the microSD card.
|
|
||||||
#
|
|
||||||
PX4IO_FIRMWARE ?= $(SRCROOT)/px4io.bin
|
|
||||||
ifneq ($(wildcard $(PX4IO_FIRMWARE)),)
|
|
||||||
ROMFS_FSSPEC += $(PX4IO_FIRMWARE)~px4io.bin
|
|
||||||
endif
|
|
||||||
|
|
||||||
################################################################################
|
|
||||||
# No user-serviceable parts below
|
|
||||||
################################################################################
|
|
||||||
|
|
||||||
#
|
|
||||||
# Just the source files from the ROMFS spec, so that we can fail cleanly if they don't
|
|
||||||
# exist
|
|
||||||
#
|
|
||||||
ROMFS_SRCFILES = $(foreach spec,$(ROMFS_FSSPEC),$(firstword $(subst ~, ,$(spec))))
|
|
||||||
|
|
||||||
#
|
|
||||||
# Just the destination directories from the ROMFS spec
|
|
||||||
#
|
|
||||||
ROMFS_DIRS = $(sort $(dir $(foreach spec,$(ROMFS_FSSPEC),$(lastword $(subst ~, ,$(spec))))))
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Intermediate products
|
|
||||||
#
|
|
||||||
ROMFS_IMG = $(BUILDROOT)/romfs.img
|
|
||||||
ROMFS_WORKDIR = $(BUILDROOT)/romfs
|
|
||||||
|
|
||||||
#
|
|
||||||
# Convenience target for rebuilding the ROMFS header
|
|
||||||
#
|
|
||||||
all: $(ROMFS_HEADER)
|
|
||||||
|
|
||||||
$(ROMFS_HEADER): $(ROMFS_IMG) $(dir $(ROMFS_HEADER))
|
|
||||||
@echo Generating the ROMFS header...
|
|
||||||
@(cd $(dir $(ROMFS_IMG)) && xxd -i $(notdir $(ROMFS_IMG))) | sed -e 's/char/const char/' > $@
|
|
||||||
|
|
||||||
$(ROMFS_IMG): $(ROMFS_WORKDIR)
|
|
||||||
@echo Generating the ROMFS image...
|
|
||||||
@genromfs -f $@ -d $(ROMFS_WORKDIR) -V "NSHInitVol"
|
|
||||||
|
|
||||||
$(ROMFS_WORKDIR): $(ROMFS_SRCFILES)
|
|
||||||
@echo Rebuilding the ROMFS work area...
|
|
||||||
@rm -rf $(ROMFS_WORKDIR)
|
|
||||||
@mkdir -p $(ROMFS_WORKDIR)
|
|
||||||
@for dir in $(ROMFS_DIRS) ; do mkdir -p $(ROMFS_WORKDIR)/$$dir; done
|
|
||||||
@for spec in $(ROMFS_FSSPEC) ; do \
|
|
||||||
echo $$spec | sed -e 's%^.*~% %' ;\
|
|
||||||
`echo "cp $$spec" | sed -e 's%~% $(ROMFS_WORKDIR)/%'` ;\
|
|
||||||
done
|
|
||||||
|
|
||||||
$(BUILDROOT):
|
|
||||||
@mkdir -p $(BUILDROOT)
|
|
||||||
|
|
||||||
clean:
|
|
||||||
@rm -rf $(BUILDROOT)
|
|
||||||
|
|
||||||
distclean: clean
|
|
||||||
@rm -f $(PX4IO_FIRMWARE) $(ROMFS_HEADER)
|
|
||||||
|
|
||||||
.PHONY: all install clean distclean
|
|
||||||
|
|
||||||
#
|
|
||||||
# Hacks and fixups
|
|
||||||
#
|
|
||||||
SYSTYPE = $(shell uname)
|
|
||||||
|
|
||||||
ifeq ($(SYSTYPE),Darwin)
|
|
||||||
# PATH inherited by Eclipse may not include toolchain install location
|
|
||||||
export PATH := $(PATH):/usr/local/bin
|
|
||||||
endif
|
|
||||||
|
|
||||||
@@ -1,224 +0,0 @@
|
|||||||
% This Matlab Script can be used to import the binary logged values of the
|
|
||||||
% PX4FMU into data that can be plotted and analyzed.
|
|
||||||
|
|
||||||
% Clear everything
|
|
||||||
clc
|
|
||||||
clear all
|
|
||||||
close all
|
|
||||||
|
|
||||||
% Set the path to your sysvector.bin file here
|
|
||||||
filePath = 'sysvector.bin';
|
|
||||||
|
|
||||||
% Work around a Matlab bug (not related to PX4)
|
|
||||||
% where timestamps from 1.1.1970 do not allow to
|
|
||||||
% read the file's size
|
|
||||||
if ismac
|
|
||||||
system('touch -t 201212121212.12 sysvector.bin');
|
|
||||||
end
|
|
||||||
|
|
||||||
%%%%%%%%%%%%%%%%%%%%%%%
|
|
||||||
% SYSTEM VECTOR
|
|
||||||
%
|
|
||||||
% //All measurements in NED frame
|
|
||||||
%
|
|
||||||
% uint64_t timestamp; //[us]
|
|
||||||
% float gyro[3]; //[rad/s]
|
|
||||||
% float accel[3]; //[m/s^2]
|
|
||||||
% float mag[3]; //[gauss]
|
|
||||||
% float baro; //pressure [millibar]
|
|
||||||
% float baro_alt; //altitude above MSL [meter]
|
|
||||||
% float baro_temp; //[degree celcius]
|
|
||||||
% float control[4]; //roll, pitch, yaw [-1..1], thrust [0..1]
|
|
||||||
% float actuators[8]; //motor 1-8, in motor units (PWM: 1000-2000,AR.Drone: 0-512)
|
|
||||||
% float vbat; //battery voltage in [volt]
|
|
||||||
% float bat_current - current drawn from battery at this time instant
|
|
||||||
% float bat_discharged - discharged energy in mAh
|
|
||||||
% float adc[4]; //ADC ports [volt]
|
|
||||||
% float local_position[3]; //tangent plane mapping into x,y,z [m]
|
|
||||||
% int32_t gps_raw_position[3]; //latitude [degrees] north, longitude [degrees] east, altitude above MSL [millimeter]
|
|
||||||
% float attitude[3]; //pitch, roll, yaw [rad]
|
|
||||||
% float rotMatrix[9]; //unitvectors
|
|
||||||
% float actuator_control[4]; //unitvector
|
|
||||||
% float optical_flow[4]; //roll, pitch, yaw [-1..1], thrust [0..1]
|
|
||||||
% float diff_pressure; - pressure difference in millibar
|
|
||||||
% float ind_airspeed;
|
|
||||||
% float true_airspeed;
|
|
||||||
|
|
||||||
% Definition of the logged values
|
|
||||||
logFormat{1} = struct('name', 'timestamp', 'bytes', 8, 'array', 1, 'precision', 'uint64', 'machineformat', 'ieee-le.l64');
|
|
||||||
logFormat{2} = struct('name', 'gyro', 'bytes', 4, 'array', 3, 'precision', 'float', 'machineformat', 'ieee-le');
|
|
||||||
logFormat{3} = struct('name', 'accel', 'bytes', 4, 'array', 3, 'precision', 'float', 'machineformat', 'ieee-le');
|
|
||||||
logFormat{4} = struct('name', 'mag', 'bytes', 4, 'array', 3, 'precision', 'float', 'machineformat', 'ieee-le');
|
|
||||||
logFormat{5} = struct('name', 'baro', 'bytes', 4, 'array', 1, 'precision', 'float', 'machineformat', 'ieee-le');
|
|
||||||
logFormat{6} = struct('name', 'baro_alt', 'bytes', 4, 'array', 1, 'precision', 'float', 'machineformat', 'ieee-le');
|
|
||||||
logFormat{7} = struct('name', 'baro_temp', 'bytes', 4, 'array', 1, 'precision', 'float', 'machineformat', 'ieee-le');
|
|
||||||
logFormat{8} = struct('name', 'control', 'bytes', 4, 'array', 4, 'precision', 'float', 'machineformat', 'ieee-le');
|
|
||||||
logFormat{9} = struct('name', 'actuators', 'bytes', 4, 'array', 8, 'precision', 'float', 'machineformat', 'ieee-le');
|
|
||||||
logFormat{10} = struct('name', 'vbat', 'bytes', 4, 'array', 1, 'precision', 'float', 'machineformat', 'ieee-le');
|
|
||||||
logFormat{11} = struct('name', 'bat_current', 'bytes', 4, 'array', 1, 'precision', 'float', 'machineformat', 'ieee-le');
|
|
||||||
logFormat{12} = struct('name', 'bat_discharged', 'bytes', 4, 'array', 1, 'precision', 'float', 'machineformat', 'ieee-le');
|
|
||||||
logFormat{13} = struct('name', 'adc', 'bytes', 4, 'array', 4, 'precision', 'float', 'machineformat', 'ieee-le');
|
|
||||||
logFormat{14} = struct('name', 'local_position', 'bytes', 4, 'array', 3, 'precision', 'float', 'machineformat', 'ieee-le');
|
|
||||||
logFormat{15} = struct('name', 'gps_raw_position', 'bytes', 4, 'array', 3, 'precision', 'uint32', 'machineformat', 'ieee-le');
|
|
||||||
logFormat{16} = struct('name', 'attitude', 'bytes', 4, 'array', 3, 'precision', 'float', 'machineformat', 'ieee-le');
|
|
||||||
logFormat{17} = struct('name', 'rot_matrix', 'bytes', 4, 'array', 9, 'precision', 'float', 'machineformat', 'ieee-le');
|
|
||||||
logFormat{18} = struct('name', 'vicon_position', 'bytes', 4, 'array', 6, 'precision', 'float', 'machineformat', 'ieee-le');
|
|
||||||
logFormat{19} = struct('name', 'actuator_control', 'bytes', 4, 'array', 4, 'precision', 'float', 'machineformat', 'ieee-le');
|
|
||||||
logFormat{20} = struct('name', 'optical_flow', 'bytes', 4, 'array', 6, 'precision', 'float', 'machineformat', 'ieee-le');
|
|
||||||
logFormat{21} = struct('name', 'diff_pressure', 'bytes', 4, 'array', 1, 'precision', 'float', 'machineformat', 'ieee-le');
|
|
||||||
logFormat{22} = struct('name', 'ind_airspeed', 'bytes', 4, 'array', 1, 'precision', 'float', 'machineformat', 'ieee-le');
|
|
||||||
logFormat{23} = struct('name', 'true_airspeed', 'bytes', 4, 'array', 1, 'precision', 'float', 'machineformat', 'ieee-le');
|
|
||||||
|
|
||||||
% First get length of one line
|
|
||||||
columns = length(logFormat);
|
|
||||||
lineLength = 0;
|
|
||||||
|
|
||||||
for i=1:columns
|
|
||||||
lineLength = lineLength + logFormat{i}.bytes * logFormat{i}.array;
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
if exist(filePath, 'file')
|
|
||||||
|
|
||||||
fileInfo = dir(filePath);
|
|
||||||
fileSize = fileInfo.bytes;
|
|
||||||
|
|
||||||
elements = int64(fileSize./(lineLength));
|
|
||||||
|
|
||||||
fid = fopen(filePath, 'r');
|
|
||||||
offset = 0;
|
|
||||||
for i=1:columns
|
|
||||||
% using fread with a skip speeds up the import drastically, do not
|
|
||||||
% import the values one after the other
|
|
||||||
sysvector.(genvarname(logFormat{i}.name)) = transpose(fread(...
|
|
||||||
fid, ...
|
|
||||||
[logFormat{i}.array, elements], [num2str(logFormat{i}.array),'*',logFormat{i}.precision,'=>',logFormat{i}.precision], ...
|
|
||||||
lineLength - logFormat{i}.bytes*logFormat{i}.array, ...
|
|
||||||
logFormat{i}.machineformat) ...
|
|
||||||
);
|
|
||||||
offset = offset + logFormat{i}.bytes*logFormat{i}.array;
|
|
||||||
fseek(fid, offset,'bof');
|
|
||||||
end
|
|
||||||
|
|
||||||
% shot the flight time
|
|
||||||
time_us = sysvector.timestamp(end) - sysvector.timestamp(1);
|
|
||||||
time_s = time_us*1e-6;
|
|
||||||
time_m = time_s/60;
|
|
||||||
|
|
||||||
% close the logfile
|
|
||||||
fclose(fid);
|
|
||||||
|
|
||||||
disp(['end log2matlab conversion' char(10)]);
|
|
||||||
else
|
|
||||||
disp(['file: ' filePath ' does not exist' char(10)]);
|
|
||||||
end
|
|
||||||
|
|
||||||
%% Plot GPS RAW measurements
|
|
||||||
|
|
||||||
% Only plot GPS data if available
|
|
||||||
if cumsum(double(sysvector.gps_raw_position(200:end,1))) > 0
|
|
||||||
figure('units','normalized','outerposition',[0 0 1 1])
|
|
||||||
plot3(sysvector.gps_raw_position(200:end,1), sysvector.gps_raw_position(200:end,2), sysvector.gps_raw_position(200:end,3));
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
%% Plot optical flow trajectory
|
|
||||||
|
|
||||||
flow_sz = size(sysvector.timestamp);
|
|
||||||
flow_elements = flow_sz(1);
|
|
||||||
|
|
||||||
xt(1:flow_elements,1) = sysvector.timestamp(:,1); % time column [ms]
|
|
||||||
|
|
||||||
|
|
||||||
%calc dt
|
|
||||||
dt = zeros(flow_elements,1);
|
|
||||||
for i = 1:flow_elements-1
|
|
||||||
dt(i+1,1) = double(xt(i+1,1)-xt(i,1)) * 10^(-6); % timestep [s]
|
|
||||||
end
|
|
||||||
dt(1,1) = mean(dt);
|
|
||||||
|
|
||||||
|
|
||||||
global_speed = zeros(flow_elements,3);
|
|
||||||
|
|
||||||
%calc global speed (with rot matrix)
|
|
||||||
for i = 1:flow_elements
|
|
||||||
rotM = [sysvector.rot_matrix(i,1:3);sysvector.rot_matrix(i,4:6);sysvector.rot_matrix(i,7:9)]';
|
|
||||||
speedX = sysvector.optical_flow(i,3);
|
|
||||||
speedY = sysvector.optical_flow(i,4);
|
|
||||||
|
|
||||||
relSpeed = [-speedY,speedX,0];
|
|
||||||
global_speed(i,:) = relSpeed * rotM;
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
px = zeros(flow_elements,1);
|
|
||||||
py = zeros(flow_elements,1);
|
|
||||||
distance = 0;
|
|
||||||
|
|
||||||
last_vx = 0;
|
|
||||||
last_vy = 0;
|
|
||||||
elem_cnt = 0;
|
|
||||||
|
|
||||||
% Very basic accumulation, stops on bad flow quality
|
|
||||||
for i = 1:flow_elements
|
|
||||||
if sysvector.optical_flow(i,6) > 5
|
|
||||||
px(i,1) = global_speed(i,1)*dt(i,1);
|
|
||||||
py(i,1) = global_speed(i,2)*dt(i,1);
|
|
||||||
distance = distance + norm([px(i,1) py(i,1)]);
|
|
||||||
last_vx = px(i,1);
|
|
||||||
last_vy = py(i,1);
|
|
||||||
else
|
|
||||||
px(i,1) = last_vx;
|
|
||||||
py(i,1) = last_vy;
|
|
||||||
last_vx = last_vx*0.95;
|
|
||||||
last_vy = last_vy*0.95;
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
px_sum = cumsum(px);
|
|
||||||
py_sum = cumsum(py);
|
|
||||||
time = cumsum(dt);
|
|
||||||
|
|
||||||
figure()
|
|
||||||
set(gca, 'Units','normal');
|
|
||||||
|
|
||||||
plot(py_sum, px_sum, '-blue', 'LineWidth',2);
|
|
||||||
axis equal;
|
|
||||||
% set title and axis captions
|
|
||||||
xlabel('X position (meters)','fontsize',14)
|
|
||||||
ylabel('Y position (meters)','fontsize',14)
|
|
||||||
% mark begin and end
|
|
||||||
hold on
|
|
||||||
plot(py_sum(1,1),px_sum(1,1),'ks','LineWidth',2,...
|
|
||||||
'MarkerEdgeColor','k',...
|
|
||||||
'MarkerFaceColor','g',...
|
|
||||||
'MarkerSize',10)
|
|
||||||
hold on
|
|
||||||
plot(py_sum(end,1),px_sum(end,1),'kv','LineWidth',2,...
|
|
||||||
'MarkerEdgeColor','k',...
|
|
||||||
'MarkerFaceColor','b',...
|
|
||||||
'MarkerSize',10)
|
|
||||||
% add total length as annotation
|
|
||||||
set(gca,'fontsize',13);
|
|
||||||
legend('Trajectory', 'START', sprintf('END\n(%.2f m, %.0f:%.0f s)', distance, time_m, time_s - time_m*60));
|
|
||||||
title('Optical Flow Position Integration', 'fontsize', 15);
|
|
||||||
|
|
||||||
figure()
|
|
||||||
plot(time, sysvector.optical_flow(:,5), 'blue');
|
|
||||||
axis([time(1,1) time(end,1) 0 (max(sysvector.optical_flow(i,5))+0.2)]);
|
|
||||||
xlabel('seconds','fontsize',14);
|
|
||||||
ylabel('m','fontsize',14);
|
|
||||||
set(gca,'fontsize',13);
|
|
||||||
title('Ultrasound Altitude', 'fontsize', 15);
|
|
||||||
|
|
||||||
|
|
||||||
figure()
|
|
||||||
plot(time, global_speed(:,2), 'red');
|
|
||||||
hold on;
|
|
||||||
plot(time, global_speed(:,1), 'blue');
|
|
||||||
legend('y velocity (m/s)', 'x velocity (m/s)');
|
|
||||||
xlabel('seconds','fontsize',14);
|
|
||||||
ylabel('m/s','fontsize',14);
|
|
||||||
set(gca,'fontsize',13);
|
|
||||||
title('Optical Flow Velocity', 'fontsize', 15);
|
|
||||||
@@ -20,10 +20,10 @@ uorb start
|
|||||||
# Load microSD params
|
# Load microSD params
|
||||||
#
|
#
|
||||||
echo "[init] loading microSD params"
|
echo "[init] loading microSD params"
|
||||||
param select /fs/microsd/parameters
|
param select /fs/microsd/params
|
||||||
if [ -f /fs/microsd/parameters ]
|
if [ -f /fs/microsd/params ]
|
||||||
then
|
then
|
||||||
param load /fs/microsd/parameters
|
param load /fs/microsd/params
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -0,0 +1,107 @@
|
|||||||
|
#!nsh
|
||||||
|
|
||||||
|
# Disable USB and autostart
|
||||||
|
set USB no
|
||||||
|
set MODE quad
|
||||||
|
|
||||||
|
#
|
||||||
|
# Start the ORB (first app to start)
|
||||||
|
#
|
||||||
|
uorb start
|
||||||
|
|
||||||
|
#
|
||||||
|
# Load microSD params
|
||||||
|
#
|
||||||
|
echo "[init] loading microSD params"
|
||||||
|
param select /fs/microsd/params
|
||||||
|
if [ -f /fs/microsd/params ]
|
||||||
|
then
|
||||||
|
param load /fs/microsd/params
|
||||||
|
fi
|
||||||
|
|
||||||
|
#
|
||||||
|
# Force some key parameters to sane values
|
||||||
|
# MAV_TYPE 1 = fixed wing, 2 = quadrotor, 13 = hexarotor
|
||||||
|
# see https://pixhawk.ethz.ch/mavlink/
|
||||||
|
#
|
||||||
|
param set MAV_TYPE 2
|
||||||
|
|
||||||
|
#
|
||||||
|
# Check if PX4IO Firmware should be upgraded (from Andrew Tridgell)
|
||||||
|
#
|
||||||
|
if [ -f /fs/microsd/px4io.bin ]
|
||||||
|
then
|
||||||
|
echo "PX4IO Firmware found. Checking Upgrade.."
|
||||||
|
if cmp /fs/microsd/px4io.bin /fs/microsd/px4io.bin.current
|
||||||
|
then
|
||||||
|
echo "No newer version, skipping upgrade."
|
||||||
|
else
|
||||||
|
echo "Loading /fs/microsd/px4io.bin"
|
||||||
|
if px4io update /fs/microsd/px4io.bin > /fs/microsd/px4io_update.log
|
||||||
|
then
|
||||||
|
cp /fs/microsd/px4io.bin /fs/microsd/px4io.bin.current
|
||||||
|
echo "Flashed /fs/microsd/px4io.bin OK" >> /fs/microsd/px4io_update.log
|
||||||
|
else
|
||||||
|
echo "Failed flashing /fs/microsd/px4io.bin" >> /fs/microsd/px4io_update.log
|
||||||
|
echo "Failed to upgrade PX4IO firmware - check if PX4IO is in bootloader mode"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
#
|
||||||
|
# Start MAVLink (depends on orb)
|
||||||
|
#
|
||||||
|
mavlink start -d /dev/ttyS1 -b 57600
|
||||||
|
usleep 5000
|
||||||
|
|
||||||
|
#
|
||||||
|
# Start the commander (depends on orb, mavlink)
|
||||||
|
#
|
||||||
|
commander start
|
||||||
|
|
||||||
|
#
|
||||||
|
# Start PX4IO interface (depends on orb, commander)
|
||||||
|
#
|
||||||
|
px4io start
|
||||||
|
|
||||||
|
#
|
||||||
|
# Allow PX4IO to recover from midair restarts.
|
||||||
|
# this is very unlikely, but quite safe and robust.
|
||||||
|
px4io recovery
|
||||||
|
|
||||||
|
#
|
||||||
|
# Start the sensors (depends on orb, px4io)
|
||||||
|
#
|
||||||
|
sh /etc/init.d/rc.sensors
|
||||||
|
|
||||||
|
#
|
||||||
|
# Start GPS interface (depends on orb)
|
||||||
|
#
|
||||||
|
gps start
|
||||||
|
|
||||||
|
#
|
||||||
|
# Start the attitude estimator (depends on orb)
|
||||||
|
#
|
||||||
|
attitude_estimator_ekf start
|
||||||
|
|
||||||
|
#
|
||||||
|
# Load mixer and start controllers (depends on px4io)
|
||||||
|
#
|
||||||
|
mixer load /dev/pwm_output /etc/mixers/FMU_quad_+.mix
|
||||||
|
multirotor_att_control start
|
||||||
|
|
||||||
|
#
|
||||||
|
# Start logging
|
||||||
|
#
|
||||||
|
#sdlog start -s 4
|
||||||
|
|
||||||
|
#
|
||||||
|
# Start system state
|
||||||
|
#
|
||||||
|
if blinkm start
|
||||||
|
then
|
||||||
|
echo "using BlinkM for state indication"
|
||||||
|
blinkm systemstate
|
||||||
|
else
|
||||||
|
echo "no BlinkM found, OK."
|
||||||
|
fi
|
||||||
@@ -0,0 +1,107 @@
|
|||||||
|
#!nsh
|
||||||
|
|
||||||
|
# Disable USB and autostart
|
||||||
|
set USB no
|
||||||
|
set MODE camflyer
|
||||||
|
|
||||||
|
#
|
||||||
|
# Start the ORB (first app to start)
|
||||||
|
#
|
||||||
|
uorb start
|
||||||
|
|
||||||
|
#
|
||||||
|
# Load microSD params
|
||||||
|
#
|
||||||
|
echo "[init] loading microSD params"
|
||||||
|
param select /fs/microsd/params
|
||||||
|
if [ -f /fs/microsd/params ]
|
||||||
|
then
|
||||||
|
param load /fs/microsd/params
|
||||||
|
fi
|
||||||
|
|
||||||
|
#
|
||||||
|
# Force some key parameters to sane values
|
||||||
|
# MAV_TYPE 1 = fixed wing, 2 = quadrotor, 13 = hexarotor
|
||||||
|
# see https://pixhawk.ethz.ch/mavlink/
|
||||||
|
#
|
||||||
|
param set MAV_TYPE 1
|
||||||
|
|
||||||
|
#
|
||||||
|
# Check if PX4IO Firmware should be upgraded (from Andrew Tridgell)
|
||||||
|
#
|
||||||
|
if [ -f /fs/microsd/px4io.bin ]
|
||||||
|
then
|
||||||
|
echo "PX4IO Firmware found. Checking Upgrade.."
|
||||||
|
if cmp /fs/microsd/px4io.bin /fs/microsd/px4io.bin.current
|
||||||
|
then
|
||||||
|
echo "No newer version, skipping upgrade."
|
||||||
|
else
|
||||||
|
echo "Loading /fs/microsd/px4io.bin"
|
||||||
|
if px4io update /fs/microsd/px4io.bin > /fs/microsd/px4io_update.log
|
||||||
|
then
|
||||||
|
cp /fs/microsd/px4io.bin /fs/microsd/px4io.bin.current
|
||||||
|
echo "Flashed /fs/microsd/px4io.bin OK" >> /fs/microsd/px4io_update.log
|
||||||
|
else
|
||||||
|
echo "Failed flashing /fs/microsd/px4io.bin" >> /fs/microsd/px4io_update.log
|
||||||
|
echo "Failed to upgrade PX4IO firmware - check if PX4IO is in bootloader mode"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
#
|
||||||
|
# Start MAVLink (depends on orb)
|
||||||
|
#
|
||||||
|
mavlink start -d /dev/ttyS1 -b 57600
|
||||||
|
usleep 5000
|
||||||
|
|
||||||
|
#
|
||||||
|
# Start the commander (depends on orb, mavlink)
|
||||||
|
#
|
||||||
|
commander start
|
||||||
|
|
||||||
|
#
|
||||||
|
# Start PX4IO interface (depends on orb, commander)
|
||||||
|
#
|
||||||
|
px4io start
|
||||||
|
|
||||||
|
#
|
||||||
|
# Allow PX4IO to recover from midair restarts.
|
||||||
|
# this is very unlikely, but quite safe and robust.
|
||||||
|
px4io recovery
|
||||||
|
|
||||||
|
#
|
||||||
|
# Start the sensors (depends on orb, px4io)
|
||||||
|
#
|
||||||
|
sh /etc/init.d/rc.sensors
|
||||||
|
|
||||||
|
#
|
||||||
|
# Start GPS interface (depends on orb)
|
||||||
|
#
|
||||||
|
gps start
|
||||||
|
|
||||||
|
#
|
||||||
|
# Start the attitude estimator (depends on orb)
|
||||||
|
#
|
||||||
|
kalman_demo start
|
||||||
|
|
||||||
|
#
|
||||||
|
# Load mixer and start controllers (depends on px4io)
|
||||||
|
#
|
||||||
|
mixer load /dev/pwm_output /etc/mixers/FMU_Q.mix
|
||||||
|
control_demo start
|
||||||
|
|
||||||
|
#
|
||||||
|
# Start logging
|
||||||
|
#
|
||||||
|
#sdlog start -s 4
|
||||||
|
|
||||||
|
#
|
||||||
|
# Start system state
|
||||||
|
#
|
||||||
|
if blinkm start
|
||||||
|
then
|
||||||
|
echo "using BlinkM for state indication"
|
||||||
|
blinkm systemstate
|
||||||
|
else
|
||||||
|
echo "no BlinkM found, OK."
|
||||||
|
fi
|
||||||
@@ -17,13 +17,13 @@ echo "[init] doing PX4IOAR startup..."
|
|||||||
uorb start
|
uorb start
|
||||||
|
|
||||||
#
|
#
|
||||||
# Init the parameter storage
|
# Load microSD params
|
||||||
#
|
#
|
||||||
echo "[init] loading microSD params"
|
echo "[init] loading microSD params"
|
||||||
param select /fs/microsd/parameters
|
param select /fs/microsd/params
|
||||||
if [ -f /fs/microsd/parameters ]
|
if [ -f /fs/microsd/params ]
|
||||||
then
|
then
|
||||||
param load /fs/microsd/parameters
|
param load /fs/microsd/params
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -33,6 +33,11 @@ fi
|
|||||||
#
|
#
|
||||||
param set MAV_TYPE 2
|
param set MAV_TYPE 2
|
||||||
|
|
||||||
|
#
|
||||||
|
# Configure PX4FMU for operation with PX4IOAR
|
||||||
|
#
|
||||||
|
fmu mode_gpio_serial
|
||||||
|
|
||||||
#
|
#
|
||||||
# Start the sensors.
|
# Start the sensors.
|
||||||
#
|
#
|
||||||
@@ -54,11 +59,6 @@ commander start
|
|||||||
#
|
#
|
||||||
attitude_estimator_ekf start
|
attitude_estimator_ekf start
|
||||||
|
|
||||||
#
|
|
||||||
# Configure PX4FMU for operation with PX4IOAR
|
|
||||||
#
|
|
||||||
fmu mode_gpio_serial
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Fire up the multi rotor attitude controller
|
# Fire up the multi rotor attitude controller
|
||||||
#
|
#
|
||||||
@@ -69,16 +69,16 @@ multirotor_att_control start
|
|||||||
#
|
#
|
||||||
ardrone_interface start -d /dev/ttyS1
|
ardrone_interface start -d /dev/ttyS1
|
||||||
|
|
||||||
#
|
|
||||||
# Start GPS capture
|
|
||||||
#
|
|
||||||
gps start
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Start logging
|
# Start logging
|
||||||
#
|
#
|
||||||
sdlog start -s 10
|
sdlog start -s 10
|
||||||
|
|
||||||
|
#
|
||||||
|
# Start GPS capture
|
||||||
|
#
|
||||||
|
gps start
|
||||||
|
|
||||||
#
|
#
|
||||||
# Start system state
|
# Start system state
|
||||||
#
|
#
|
||||||
@@ -95,4 +95,5 @@ fi
|
|||||||
# use the same UART for telemetry
|
# use the same UART for telemetry
|
||||||
#
|
#
|
||||||
echo "[init] startup done"
|
echo "[init] startup done"
|
||||||
|
|
||||||
exit
|
exit
|
||||||
@@ -17,10 +17,10 @@ hil mode_pwm
|
|||||||
# Load microSD params
|
# Load microSD params
|
||||||
#
|
#
|
||||||
echo "[init] loading microSD params"
|
echo "[init] loading microSD params"
|
||||||
param select /fs/microsd/parameters
|
param select /fs/microsd/params
|
||||||
if [ -f /fs/microsd/parameters ]
|
if [ -f /fs/microsd/params ]
|
||||||
then
|
then
|
||||||
param load /fs/microsd/parameters
|
param load /fs/microsd/params
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -35,6 +35,17 @@ param set MAV_TYPE 1
|
|||||||
#
|
#
|
||||||
commander start
|
commander start
|
||||||
|
|
||||||
|
#
|
||||||
|
# Check if we got an IO
|
||||||
|
#
|
||||||
|
if [ px4io start ]
|
||||||
|
then
|
||||||
|
echo "IO started"
|
||||||
|
else
|
||||||
|
fmu mode_serial
|
||||||
|
echo "FMU started"
|
||||||
|
end
|
||||||
|
|
||||||
#
|
#
|
||||||
# Start the sensors (depends on orb, px4io)
|
# Start the sensors (depends on orb, px4io)
|
||||||
#
|
#
|
||||||
@@ -7,6 +7,14 @@
|
|||||||
# Start sensor drivers here.
|
# Start sensor drivers here.
|
||||||
#
|
#
|
||||||
|
|
||||||
|
#
|
||||||
|
# Check for UORB
|
||||||
|
#
|
||||||
|
if uorb start
|
||||||
|
then
|
||||||
|
echo "uORB started"
|
||||||
|
fi
|
||||||
|
|
||||||
ms5611 start
|
ms5611 start
|
||||||
adc start
|
adc start
|
||||||
|
|
||||||
@@ -21,9 +21,9 @@ set MODE autostart
|
|||||||
set USB autoconnect
|
set USB autoconnect
|
||||||
|
|
||||||
#
|
#
|
||||||
# Start playing the startup tune
|
|
||||||
#
|
#
|
||||||
tone_alarm start
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Try to mount the microSD card.
|
# Try to mount the microSD card.
|
||||||
@@ -32,8 +32,12 @@ echo "[init] looking for microSD..."
|
|||||||
if mount -t vfat /dev/mmcsd0 /fs/microsd
|
if mount -t vfat /dev/mmcsd0 /fs/microsd
|
||||||
then
|
then
|
||||||
echo "[init] card mounted at /fs/microsd"
|
echo "[init] card mounted at /fs/microsd"
|
||||||
|
# Start playing the startup tune
|
||||||
|
tone_alarm start
|
||||||
else
|
else
|
||||||
echo "[init] no microSD card found"
|
echo "[init] no microSD card found"
|
||||||
|
# Play SOS
|
||||||
|
tone_alarm 2
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#
|
#
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,50 @@
|
|||||||
|
Delta-wing mixer for PX4FMU
|
||||||
|
===========================
|
||||||
|
|
||||||
|
This file defines mixers suitable for controlling a delta wing aircraft using
|
||||||
|
PX4FMU. The configuration assumes the elevon servos are connected to PX4FMU
|
||||||
|
servo outputs 0 and 1 and the motor speed control to output 3. Output 2 is
|
||||||
|
assumed to be unused.
|
||||||
|
|
||||||
|
Inputs to the mixer come from channel group 0 (vehicle attitude), channels 0
|
||||||
|
(roll), 1 (pitch) and 3 (thrust).
|
||||||
|
|
||||||
|
See the README for more information on the scaler format.
|
||||||
|
|
||||||
|
Elevon mixers
|
||||||
|
-------------
|
||||||
|
Three scalers total (output, roll, pitch).
|
||||||
|
|
||||||
|
On the assumption that the two elevon servos are physically reversed, the pitch
|
||||||
|
input is inverted between the two servos.
|
||||||
|
|
||||||
|
The scaling factor for roll inputs is adjusted to implement differential travel
|
||||||
|
for the elevons.
|
||||||
|
|
||||||
|
M: 2
|
||||||
|
O: 10000 10000 0 -10000 10000
|
||||||
|
S: 0 0 3000 5000 0 -10000 10000
|
||||||
|
S: 0 1 5000 5000 0 -10000 10000
|
||||||
|
|
||||||
|
M: 2
|
||||||
|
O: 10000 10000 0 -10000 10000
|
||||||
|
S: 0 0 5000 3000 0 -10000 10000
|
||||||
|
S: 0 1 -5000 -5000 0 -10000 10000
|
||||||
|
|
||||||
|
Output 2
|
||||||
|
--------
|
||||||
|
This mixer is empty.
|
||||||
|
|
||||||
|
Z:
|
||||||
|
|
||||||
|
Motor speed mixer
|
||||||
|
-----------------
|
||||||
|
Two scalers total (output, thrust).
|
||||||
|
|
||||||
|
This mixer generates a full-range output (-1 to 1) from an input in the (0 - 1)
|
||||||
|
range. Inputs below zero are treated as zero.
|
||||||
|
|
||||||
|
M: 1
|
||||||
|
O: 10000 10000 0 -10000 10000
|
||||||
|
S: 0 3 0 20000 -10000 -10000 10000
|
||||||
|
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
Multirotor mixer for PX4FMU
|
||||||
|
===========================
|
||||||
|
|
||||||
|
This file defines a single mixer for a quadrotor in the V configuration. All controls
|
||||||
|
are mixed 100%.
|
||||||
|
|
||||||
|
R: 4v 10000 10000 10000 0
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
Multirotor mixer for PX4FMU
|
||||||
|
===========================
|
||||||
|
|
||||||
|
This file defines a single mixer for a quadrotor with a wide configuration. All controls are mixed 100%.
|
||||||
|
|
||||||
|
R: 4w 10000 10000 10000 0
|
||||||
@@ -1,80 +0,0 @@
|
|||||||
#!nsh
|
|
||||||
|
|
||||||
# Disable USB and autostart
|
|
||||||
set USB no
|
|
||||||
set MODE camflyer
|
|
||||||
|
|
||||||
#
|
|
||||||
# Start the ORB
|
|
||||||
#
|
|
||||||
uorb start
|
|
||||||
|
|
||||||
#
|
|
||||||
# Load microSD params
|
|
||||||
#
|
|
||||||
echo "[init] loading microSD params"
|
|
||||||
param select /fs/microsd/parameters
|
|
||||||
if [ -f /fs/microsd/parameters ]
|
|
||||||
then
|
|
||||||
param load /fs/microsd/parameters
|
|
||||||
fi
|
|
||||||
|
|
||||||
#
|
|
||||||
# Force some key parameters to sane values
|
|
||||||
# MAV_TYPE 1 = fixed wing, 2 = quadrotor, 13 = hexarotor
|
|
||||||
# see https://pixhawk.ethz.ch/mavlink/
|
|
||||||
#
|
|
||||||
param set MAV_TYPE 1
|
|
||||||
|
|
||||||
#
|
|
||||||
# Start the sensors.
|
|
||||||
#
|
|
||||||
sh /etc/init.d/rc.sensors
|
|
||||||
|
|
||||||
#
|
|
||||||
# Start MAVLink
|
|
||||||
#
|
|
||||||
mavlink start -d /dev/ttyS1 -b 57600
|
|
||||||
usleep 5000
|
|
||||||
|
|
||||||
#
|
|
||||||
# Start the commander.
|
|
||||||
#
|
|
||||||
commander start
|
|
||||||
|
|
||||||
#
|
|
||||||
# Start GPS interface
|
|
||||||
#
|
|
||||||
gps start
|
|
||||||
|
|
||||||
#
|
|
||||||
# Start the attitude estimator
|
|
||||||
#
|
|
||||||
kalman_demo start
|
|
||||||
|
|
||||||
#
|
|
||||||
# Start PX4IO interface
|
|
||||||
#
|
|
||||||
px4io start
|
|
||||||
|
|
||||||
#
|
|
||||||
# Load mixer and start controllers
|
|
||||||
#
|
|
||||||
mixer load /dev/pwm_output /etc/mixers/FMU_Q.mix
|
|
||||||
control_demo start
|
|
||||||
|
|
||||||
#
|
|
||||||
# Start logging
|
|
||||||
#
|
|
||||||
sdlog start -s 10
|
|
||||||
|
|
||||||
#
|
|
||||||
# Start system state
|
|
||||||
#
|
|
||||||
if blinkm start
|
|
||||||
then
|
|
||||||
echo "using BlinkM for state indication"
|
|
||||||
blinkm systemstate
|
|
||||||
else
|
|
||||||
echo "no BlinkM found, OK."
|
|
||||||
fi
|
|
||||||
+15
-14
@@ -54,7 +54,6 @@ import sys
|
|||||||
import argparse
|
import argparse
|
||||||
import binascii
|
import binascii
|
||||||
import serial
|
import serial
|
||||||
import os
|
|
||||||
import struct
|
import struct
|
||||||
import json
|
import json
|
||||||
import zlib
|
import zlib
|
||||||
@@ -64,6 +63,7 @@ import array
|
|||||||
|
|
||||||
from sys import platform as _platform
|
from sys import platform as _platform
|
||||||
|
|
||||||
|
|
||||||
class firmware(object):
|
class firmware(object):
|
||||||
'''Loads a firmware file'''
|
'''Loads a firmware file'''
|
||||||
|
|
||||||
@@ -132,6 +132,7 @@ class firmware(object):
|
|||||||
state = self.__crc32(self.crcpad, state)
|
state = self.__crc32(self.crcpad, state)
|
||||||
return state
|
return state
|
||||||
|
|
||||||
|
|
||||||
class uploader(object):
|
class uploader(object):
|
||||||
'''Uploads a firmware file to the PX FMU bootloader'''
|
'''Uploads a firmware file to the PX FMU bootloader'''
|
||||||
|
|
||||||
@@ -167,7 +168,7 @@ class uploader(object):
|
|||||||
|
|
||||||
def __init__(self, portname, baudrate):
|
def __init__(self, portname, baudrate):
|
||||||
# open the port, keep the default timeout short so we can poll quickly
|
# open the port, keep the default timeout short so we can poll quickly
|
||||||
self.port = serial.Serial(portname, baudrate, timeout=0.25)
|
self.port = serial.Serial(portname, baudrate, timeout=0.5)
|
||||||
|
|
||||||
def close(self):
|
def close(self):
|
||||||
if self.port is not None:
|
if self.port is not None:
|
||||||
@@ -234,13 +235,13 @@ class uploader(object):
|
|||||||
def __erase(self):
|
def __erase(self):
|
||||||
self.__send(uploader.CHIP_ERASE
|
self.__send(uploader.CHIP_ERASE
|
||||||
+ uploader.EOC)
|
+ uploader.EOC)
|
||||||
# erase is very slow, give it 10s
|
# erase is very slow, give it 20s
|
||||||
deadline = time.time() + 10
|
deadline = time.time() + 20
|
||||||
while time.time() < deadline:
|
while time.time() < deadline:
|
||||||
try:
|
try:
|
||||||
self.__getSync()
|
self.__getSync()
|
||||||
return
|
return
|
||||||
except RuntimeError as ex:
|
except RuntimeError:
|
||||||
# we timed out, that's OK
|
# we timed out, that's OK
|
||||||
continue
|
continue
|
||||||
|
|
||||||
@@ -262,8 +263,8 @@ class uploader(object):
|
|||||||
self.port.flush()
|
self.port.flush()
|
||||||
programmed = self.__recv(len(data))
|
programmed = self.__recv(len(data))
|
||||||
if programmed != data:
|
if programmed != data:
|
||||||
print(("got " + binascii.hexlify(programmed)))
|
print("got " + binascii.hexlify(programmed))
|
||||||
print(("expect " + binascii.hexlify(data)))
|
print("expect " + binascii.hexlify(data))
|
||||||
return False
|
return False
|
||||||
self.__getSync()
|
self.__getSync()
|
||||||
return True
|
return True
|
||||||
@@ -307,8 +308,8 @@ class uploader(object):
|
|||||||
report_crc = self.__recv_int()
|
report_crc = self.__recv_int()
|
||||||
self.__getSync()
|
self.__getSync()
|
||||||
if report_crc != expect_crc:
|
if report_crc != expect_crc:
|
||||||
print(("Expected 0x%x" % expect_crc))
|
print("Expected 0x%x" % expect_crc)
|
||||||
print(("Got 0x%x" % report_crc))
|
print("Got 0x%x" % report_crc)
|
||||||
raise RuntimeError("Program CRC failed")
|
raise RuntimeError("Program CRC failed")
|
||||||
|
|
||||||
# get basic data about the board
|
# get basic data about the board
|
||||||
@@ -319,7 +320,7 @@ class uploader(object):
|
|||||||
# get the bootloader protocol ID first
|
# get the bootloader protocol ID first
|
||||||
self.bl_rev = self.__getInfo(uploader.INFO_BL_REV)
|
self.bl_rev = self.__getInfo(uploader.INFO_BL_REV)
|
||||||
if (self.bl_rev < uploader.BL_REV_MIN) or (self.bl_rev > uploader.BL_REV_MAX):
|
if (self.bl_rev < uploader.BL_REV_MIN) or (self.bl_rev > uploader.BL_REV_MAX):
|
||||||
print(("Unsupported bootloader protocol %d" % uploader.INFO_BL_REV))
|
print("Unsupported bootloader protocol %d" % uploader.INFO_BL_REV)
|
||||||
raise RuntimeError("Bootloader protocol mismatch")
|
raise RuntimeError("Bootloader protocol mismatch")
|
||||||
|
|
||||||
self.board_type = self.__getInfo(uploader.INFO_BOARD_ID)
|
self.board_type = self.__getInfo(uploader.INFO_BOARD_ID)
|
||||||
@@ -330,7 +331,7 @@ class uploader(object):
|
|||||||
def upload(self, fw):
|
def upload(self, fw):
|
||||||
# Make sure we are doing the right thing
|
# Make sure we are doing the right thing
|
||||||
if self.board_type != fw.property('board_id'):
|
if self.board_type != fw.property('board_id'):
|
||||||
raise RuntimeError("Firmware not suitable for this board (run 'make configure_px4fmu && make clean' or 'make configure_px4io && make clean' to reconfigure).")
|
raise RuntimeError("Firmware not suitable for this board")
|
||||||
if self.fw_maxsize < fw.property('image_size'):
|
if self.fw_maxsize < fw.property('image_size'):
|
||||||
raise RuntimeError("Firmware image is too large for this board")
|
raise RuntimeError("Firmware image is too large for this board")
|
||||||
|
|
||||||
@@ -360,7 +361,7 @@ args = parser.parse_args()
|
|||||||
|
|
||||||
# Load the firmware file
|
# Load the firmware file
|
||||||
fw = firmware(args.firmware)
|
fw = firmware(args.firmware)
|
||||||
print(("Loaded firmware for %x,%x, waiting for the bootloader..." % (fw.property('board_id'), fw.property('board_revision'))))
|
print("Loaded firmware for %x,%x, waiting for the bootloader..." % (fw.property('board_id'), fw.property('board_revision')))
|
||||||
|
|
||||||
# Spin waiting for a device to show up
|
# Spin waiting for a device to show up
|
||||||
while True:
|
while True:
|
||||||
@@ -393,7 +394,7 @@ while True:
|
|||||||
try:
|
try:
|
||||||
# identify the bootloader
|
# identify the bootloader
|
||||||
up.identify()
|
up.identify()
|
||||||
print(("Found board %x,%x bootloader rev %x on %s" % (up.board_type, up.board_rev, up.bl_rev, port)))
|
print("Found board %x,%x bootloader rev %x on %s" % (up.board_type, up.board_rev, up.bl_rev, port))
|
||||||
|
|
||||||
except:
|
except:
|
||||||
# most probably a timeout talking to the port, no bootloader
|
# most probably a timeout talking to the port, no bootloader
|
||||||
@@ -406,7 +407,7 @@ while True:
|
|||||||
except RuntimeError as ex:
|
except RuntimeError as ex:
|
||||||
|
|
||||||
# print the error
|
# print the error
|
||||||
print(("ERROR: %s" % ex.args))
|
print("ERROR: %s" % ex.args)
|
||||||
|
|
||||||
finally:
|
finally:
|
||||||
# always close the port
|
# always close the port
|
||||||
|
|||||||
@@ -1,42 +0,0 @@
|
|||||||
############################################################################
|
|
||||||
#
|
|
||||||
# Copyright (C) 2012 PX4 Development Team. All rights reserved.
|
|
||||||
#
|
|
||||||
# Redistribution and use in source and binary forms, with or without
|
|
||||||
# modification, are permitted provided that the following conditions
|
|
||||||
# are met:
|
|
||||||
#
|
|
||||||
# 1. Redistributions of source code must retain the above copyright
|
|
||||||
# notice, this list of conditions and the following disclaimer.
|
|
||||||
# 2. Redistributions in binary form must reproduce the above copyright
|
|
||||||
# notice, this list of conditions and the following disclaimer in
|
|
||||||
# the documentation and/or other materials provided with the
|
|
||||||
# distribution.
|
|
||||||
# 3. Neither the name PX4 nor the names of its contributors may be
|
|
||||||
# used to endorse or promote products derived from this software
|
|
||||||
# without specific prior written permission.
|
|
||||||
#
|
|
||||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
||||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
||||||
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
|
||||||
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
|
||||||
# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
||||||
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
|
||||||
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
|
||||||
# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
|
||||||
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
|
||||||
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
# POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
#
|
|
||||||
############################################################################
|
|
||||||
|
|
||||||
#
|
|
||||||
# Makefile to build the L3GD20 driver.
|
|
||||||
#
|
|
||||||
|
|
||||||
APPNAME = l3gd20
|
|
||||||
PRIORITY = SCHED_PRIORITY_DEFAULT
|
|
||||||
STACKSIZE = 2048
|
|
||||||
|
|
||||||
include $(APPDIR)/mk/app.mk
|
|
||||||
@@ -1,42 +0,0 @@
|
|||||||
############################################################################
|
|
||||||
#
|
|
||||||
# Copyright (C) 2012 PX4 Development Team. All rights reserved.
|
|
||||||
#
|
|
||||||
# Redistribution and use in source and binary forms, with or without
|
|
||||||
# modification, are permitted provided that the following conditions
|
|
||||||
# are met:
|
|
||||||
#
|
|
||||||
# 1. Redistributions of source code must retain the above copyright
|
|
||||||
# notice, this list of conditions and the following disclaimer.
|
|
||||||
# 2. Redistributions in binary form must reproduce the above copyright
|
|
||||||
# notice, this list of conditions and the following disclaimer in
|
|
||||||
# the documentation and/or other materials provided with the
|
|
||||||
# distribution.
|
|
||||||
# 3. Neither the name PX4 nor the names of its contributors may be
|
|
||||||
# used to endorse or promote products derived from this software
|
|
||||||
# without specific prior written permission.
|
|
||||||
#
|
|
||||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
||||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
||||||
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
|
||||||
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
|
||||||
# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
||||||
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
|
||||||
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
|
||||||
# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
|
||||||
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
|
||||||
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
# POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
#
|
|
||||||
############################################################################
|
|
||||||
|
|
||||||
#
|
|
||||||
# Makefile to build the BMA180 driver.
|
|
||||||
#
|
|
||||||
|
|
||||||
APPNAME = mpu6000
|
|
||||||
PRIORITY = SCHED_PRIORITY_DEFAULT
|
|
||||||
STACKSIZE = 4096
|
|
||||||
|
|
||||||
include $(APPDIR)/mk/app.mk
|
|
||||||
@@ -1,43 +0,0 @@
|
|||||||
############################################################################
|
|
||||||
#
|
|
||||||
# Copyright (C) 2012 PX4 Development Team. All rights reserved.
|
|
||||||
#
|
|
||||||
# Redistribution and use in source and binary forms, with or without
|
|
||||||
# modification, are permitted provided that the following conditions
|
|
||||||
# are met:
|
|
||||||
#
|
|
||||||
# 1. Redistributions of source code must retain the above copyright
|
|
||||||
# notice, this list of conditions and the following disclaimer.
|
|
||||||
# 2. Redistributions in binary form must reproduce the above copyright
|
|
||||||
# notice, this list of conditions and the following disclaimer in
|
|
||||||
# the documentation and/or other materials provided with the
|
|
||||||
# distribution.
|
|
||||||
# 3. Neither the name PX4 nor the names of its contributors may be
|
|
||||||
# used to endorse or promote products derived from this software
|
|
||||||
# without specific prior written permission.
|
|
||||||
#
|
|
||||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
||||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
||||||
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
|
||||||
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
|
||||||
# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
||||||
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
|
||||||
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
|
||||||
# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
|
||||||
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
|
||||||
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
# POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
#
|
|
||||||
############################################################################
|
|
||||||
|
|
||||||
#
|
|
||||||
# STM32 ADC driver
|
|
||||||
#
|
|
||||||
|
|
||||||
APPNAME = adc
|
|
||||||
PRIORITY = SCHED_PRIORITY_DEFAULT
|
|
||||||
STACKSIZE = 2048
|
|
||||||
INCLUDES = $(TOPDIR)/arch/arm/src/stm32 $(TOPDIR)/arch/arm/src/common
|
|
||||||
|
|
||||||
include $(APPDIR)/mk/app.mk
|
|
||||||
@@ -1,43 +0,0 @@
|
|||||||
############################################################################
|
|
||||||
#
|
|
||||||
# Copyright (C) 2012 PX4 Development Team. All rights reserved.
|
|
||||||
#
|
|
||||||
# Redistribution and use in source and binary forms, with or without
|
|
||||||
# modification, are permitted provided that the following conditions
|
|
||||||
# are met:
|
|
||||||
#
|
|
||||||
# 1. Redistributions of source code must retain the above copyright
|
|
||||||
# notice, this list of conditions and the following disclaimer.
|
|
||||||
# 2. Redistributions in binary form must reproduce the above copyright
|
|
||||||
# notice, this list of conditions and the following disclaimer in
|
|
||||||
# the documentation and/or other materials provided with the
|
|
||||||
# distribution.
|
|
||||||
# 3. Neither the name PX4 nor the names of its contributors may be
|
|
||||||
# used to endorse or promote products derived from this software
|
|
||||||
# without specific prior written permission.
|
|
||||||
#
|
|
||||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
||||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
||||||
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
|
||||||
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
|
||||||
# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
||||||
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
|
||||||
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
|
||||||
# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
|
||||||
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
|
||||||
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
# POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
#
|
|
||||||
############################################################################
|
|
||||||
|
|
||||||
#
|
|
||||||
# Tone alarm driver
|
|
||||||
#
|
|
||||||
|
|
||||||
APPNAME = tone_alarm
|
|
||||||
PRIORITY = SCHED_PRIORITY_DEFAULT
|
|
||||||
STACKSIZE = 2048
|
|
||||||
INCLUDES = $(TOPDIR)/arch/arm/src/stm32 $(TOPDIR)/arch/arm/src/common
|
|
||||||
|
|
||||||
include $(APPDIR)/mk/app.mk
|
|
||||||
@@ -38,7 +38,6 @@
|
|||||||
# Sub-directories
|
# Sub-directories
|
||||||
|
|
||||||
SUBDIRS = adc can cdcacm nsh
|
SUBDIRS = adc can cdcacm nsh
|
||||||
SUBDIRS += math_demo control_demo kalman_demo px4_deamon_app
|
|
||||||
|
|
||||||
#SUBDIRS = adc buttons can cdcacm composite cxxtest dhcpd discover elf ftpc
|
#SUBDIRS = adc buttons can cdcacm composite cxxtest dhcpd discover elf ftpc
|
||||||
#SUBDIRS += ftpd hello helloxx hidkbd igmp json keypadtest lcdrw mm modbus mount
|
#SUBDIRS += ftpd hello helloxx hidkbd igmp json keypadtest lcdrw mm modbus mount
|
||||||
|
|||||||
@@ -1,42 +0,0 @@
|
|||||||
############################################################################
|
|
||||||
#
|
|
||||||
# Copyright (C) 2012 PX4 Development Team. All rights reserved.
|
|
||||||
#
|
|
||||||
# Redistribution and use in source and binary forms, with or without
|
|
||||||
# modification, are permitted provided that the following conditions
|
|
||||||
# are met:
|
|
||||||
#
|
|
||||||
# 1. Redistributions of source code must retain the above copyright
|
|
||||||
# notice, this list of conditions and the following disclaimer.
|
|
||||||
# 2. Redistributions in binary form must reproduce the above copyright
|
|
||||||
# notice, this list of conditions and the following disclaimer in
|
|
||||||
# the documentation and/or other materials provided with the
|
|
||||||
# distribution.
|
|
||||||
# 3. Neither the name PX4 nor the names of its contributors may be
|
|
||||||
# used to endorse or promote products derived from this software
|
|
||||||
# without specific prior written permission.
|
|
||||||
#
|
|
||||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
||||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
||||||
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
|
||||||
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
|
||||||
# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
||||||
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
|
||||||
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
|
||||||
# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
|
||||||
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
|
||||||
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
# POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
#
|
|
||||||
############################################################################
|
|
||||||
|
|
||||||
#
|
|
||||||
# Basic example application
|
|
||||||
#
|
|
||||||
|
|
||||||
APPNAME = control_demo
|
|
||||||
PRIORITY = SCHED_PRIORITY_DEFAULT
|
|
||||||
STACKSIZE = 2048
|
|
||||||
|
|
||||||
include $(APPDIR)/mk/app.mk
|
|
||||||
@@ -1,42 +0,0 @@
|
|||||||
############################################################################
|
|
||||||
#
|
|
||||||
# Copyright (C) 2012 PX4 Development Team. All rights reserved.
|
|
||||||
#
|
|
||||||
# Redistribution and use in source and binary forms, with or without
|
|
||||||
# modification, are permitted provided that the following conditions
|
|
||||||
# are met:
|
|
||||||
#
|
|
||||||
# 1. Redistributions of source code must retain the above copyright
|
|
||||||
# notice, this list of conditions and the following disclaimer.
|
|
||||||
# 2. Redistributions in binary form must reproduce the above copyright
|
|
||||||
# notice, this list of conditions and the following disclaimer in
|
|
||||||
# the documentation and/or other materials provided with the
|
|
||||||
# distribution.
|
|
||||||
# 3. Neither the name PX4 nor the names of its contributors may be
|
|
||||||
# used to endorse or promote products derived from this software
|
|
||||||
# without specific prior written permission.
|
|
||||||
#
|
|
||||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
||||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
||||||
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
|
||||||
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
|
||||||
# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
||||||
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
|
||||||
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
|
||||||
# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
|
||||||
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
|
||||||
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
# POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
#
|
|
||||||
############################################################################
|
|
||||||
|
|
||||||
#
|
|
||||||
# Basic example application
|
|
||||||
#
|
|
||||||
|
|
||||||
APPNAME = kalman_demo
|
|
||||||
PRIORITY = SCHED_PRIORITY_MAX - 30
|
|
||||||
STACKSIZE = 2048
|
|
||||||
|
|
||||||
include $(APPDIR)/mk/app.mk
|
|
||||||
@@ -64,6 +64,8 @@ ROOTDEPPATH = --dep-path .
|
|||||||
|
|
||||||
VPATH =
|
VPATH =
|
||||||
|
|
||||||
|
MAXOPTIMIZATION = -Os
|
||||||
|
|
||||||
all: .built
|
all: .built
|
||||||
.PHONY: clean depend distclean
|
.PHONY: clean depend distclean
|
||||||
|
|
||||||
|
|||||||
@@ -1,42 +0,0 @@
|
|||||||
############################################################################
|
|
||||||
#
|
|
||||||
# Copyright (C) 2012 PX4 Development Team. All rights reserved.
|
|
||||||
#
|
|
||||||
# Redistribution and use in source and binary forms, with or without
|
|
||||||
# modification, are permitted provided that the following conditions
|
|
||||||
# are met:
|
|
||||||
#
|
|
||||||
# 1. Redistributions of source code must retain the above copyright
|
|
||||||
# notice, this list of conditions and the following disclaimer.
|
|
||||||
# 2. Redistributions in binary form must reproduce the above copyright
|
|
||||||
# notice, this list of conditions and the following disclaimer in
|
|
||||||
# the documentation and/or other materials provided with the
|
|
||||||
# distribution.
|
|
||||||
# 3. Neither the name PX4 nor the names of its contributors may be
|
|
||||||
# used to endorse or promote products derived from this software
|
|
||||||
# without specific prior written permission.
|
|
||||||
#
|
|
||||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
||||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
||||||
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
|
||||||
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
|
||||||
# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
||||||
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
|
||||||
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
|
||||||
# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
|
||||||
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
|
||||||
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
# POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
#
|
|
||||||
############################################################################
|
|
||||||
|
|
||||||
#
|
|
||||||
# Basic example application
|
|
||||||
#
|
|
||||||
|
|
||||||
APPNAME = px4_deamon_app
|
|
||||||
PRIORITY = SCHED_PRIORITY_DEFAULT
|
|
||||||
STACKSIZE = 2048
|
|
||||||
|
|
||||||
include $(APPDIR)/mk/app.mk
|
|
||||||
@@ -1,42 +0,0 @@
|
|||||||
############################################################################
|
|
||||||
#
|
|
||||||
# Copyright (C) 2012 PX4 Development Team. All rights reserved.
|
|
||||||
#
|
|
||||||
# Redistribution and use in source and binary forms, with or without
|
|
||||||
# modification, are permitted provided that the following conditions
|
|
||||||
# are met:
|
|
||||||
#
|
|
||||||
# 1. Redistributions of source code must retain the above copyright
|
|
||||||
# notice, this list of conditions and the following disclaimer.
|
|
||||||
# 2. Redistributions in binary form must reproduce the above copyright
|
|
||||||
# notice, this list of conditions and the following disclaimer in
|
|
||||||
# the documentation and/or other materials provided with the
|
|
||||||
# distribution.
|
|
||||||
# 3. Neither the name PX4 nor the names of its contributors may be
|
|
||||||
# used to endorse or promote products derived from this software
|
|
||||||
# without specific prior written permission.
|
|
||||||
#
|
|
||||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
||||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
||||||
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
|
||||||
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
|
||||||
# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
||||||
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
|
||||||
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
|
||||||
# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
|
||||||
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
|
||||||
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
# POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
#
|
|
||||||
############################################################################
|
|
||||||
|
|
||||||
#
|
|
||||||
# Basic example application
|
|
||||||
#
|
|
||||||
|
|
||||||
APPNAME = px4_mavlink_debug
|
|
||||||
PRIORITY = SCHED_PRIORITY_DEFAULT
|
|
||||||
STACKSIZE = 2048
|
|
||||||
|
|
||||||
include $(APPDIR)/mk/app.mk
|
|
||||||
@@ -1,42 +0,0 @@
|
|||||||
############################################################################
|
|
||||||
#
|
|
||||||
# Copyright (C) 2012 PX4 Development Team. All rights reserved.
|
|
||||||
#
|
|
||||||
# Redistribution and use in source and binary forms, with or without
|
|
||||||
# modification, are permitted provided that the following conditions
|
|
||||||
# are met:
|
|
||||||
#
|
|
||||||
# 1. Redistributions of source code must retain the above copyright
|
|
||||||
# notice, this list of conditions and the following disclaimer.
|
|
||||||
# 2. Redistributions in binary form must reproduce the above copyright
|
|
||||||
# notice, this list of conditions and the following disclaimer in
|
|
||||||
# the documentation and/or other materials provided with the
|
|
||||||
# distribution.
|
|
||||||
# 3. Neither the name PX4 nor the names of its contributors may be
|
|
||||||
# used to endorse or promote products derived from this software
|
|
||||||
# without specific prior written permission.
|
|
||||||
#
|
|
||||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
||||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
||||||
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
|
||||||
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
|
||||||
# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
||||||
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
|
||||||
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
|
||||||
# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
|
||||||
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
|
||||||
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
# POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
#
|
|
||||||
############################################################################
|
|
||||||
|
|
||||||
#
|
|
||||||
# Basic example application
|
|
||||||
#
|
|
||||||
|
|
||||||
APPNAME = px4_simple_app
|
|
||||||
PRIORITY = SCHED_PRIORITY_DEFAULT
|
|
||||||
STACKSIZE = 2048
|
|
||||||
|
|
||||||
include $(APPDIR)/mk/app.mk
|
|
||||||
@@ -1,45 +0,0 @@
|
|||||||
############################################################################
|
|
||||||
#
|
|
||||||
# Copyright (C) 2012 PX4 Development Team. All rights reserved.
|
|
||||||
#
|
|
||||||
# Redistribution and use in source and binary forms, with or without
|
|
||||||
# modification, are permitted provided that the following conditions
|
|
||||||
# are met:
|
|
||||||
#
|
|
||||||
# 1. Redistributions of source code must retain the above copyright
|
|
||||||
# notice, this list of conditions and the following disclaimer.
|
|
||||||
# 2. Redistributions in binary form must reproduce the above copyright
|
|
||||||
# notice, this list of conditions and the following disclaimer in
|
|
||||||
# the documentation and/or other materials provided with the
|
|
||||||
# distribution.
|
|
||||||
# 3. Neither the name PX4 nor the names of its contributors may be
|
|
||||||
# used to endorse or promote products derived from this software
|
|
||||||
# without specific prior written permission.
|
|
||||||
#
|
|
||||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
||||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
||||||
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
|
||||||
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
|
||||||
# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
||||||
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
|
||||||
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
|
||||||
# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
|
||||||
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
|
||||||
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
# POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
#
|
|
||||||
############################################################################
|
|
||||||
|
|
||||||
#
|
|
||||||
# Fixedwing Control application
|
|
||||||
#
|
|
||||||
|
|
||||||
APPNAME = fixedwing_att_control
|
|
||||||
PRIORITY = SCHED_PRIORITY_MAX - 30
|
|
||||||
STACKSIZE = 2048
|
|
||||||
|
|
||||||
INCLUDES = $(TOPDIR)/../mavlink/include/mavlink
|
|
||||||
|
|
||||||
include $(APPDIR)/mk/app.mk
|
|
||||||
|
|
||||||
@@ -1,45 +0,0 @@
|
|||||||
############################################################################
|
|
||||||
#
|
|
||||||
# Copyright (C) 2012 PX4 Development Team. All rights reserved.
|
|
||||||
#
|
|
||||||
# Redistribution and use in source and binary forms, with or without
|
|
||||||
# modification, are permitted provided that the following conditions
|
|
||||||
# are met:
|
|
||||||
#
|
|
||||||
# 1. Redistributions of source code must retain the above copyright
|
|
||||||
# notice, this list of conditions and the following disclaimer.
|
|
||||||
# 2. Redistributions in binary form must reproduce the above copyright
|
|
||||||
# notice, this list of conditions and the following disclaimer in
|
|
||||||
# the documentation and/or other materials provided with the
|
|
||||||
# distribution.
|
|
||||||
# 3. Neither the name PX4 nor the names of its contributors may be
|
|
||||||
# used to endorse or promote products derived from this software
|
|
||||||
# without specific prior written permission.
|
|
||||||
#
|
|
||||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
||||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
||||||
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
|
||||||
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
|
||||||
# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
||||||
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
|
||||||
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
|
||||||
# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
|
||||||
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
|
||||||
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
# POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
#
|
|
||||||
############################################################################
|
|
||||||
|
|
||||||
#
|
|
||||||
# Fixedwing Control application
|
|
||||||
#
|
|
||||||
|
|
||||||
APPNAME = fixedwing_pos_control
|
|
||||||
PRIORITY = SCHED_PRIORITY_MAX - 30
|
|
||||||
STACKSIZE = 2048
|
|
||||||
|
|
||||||
INCLUDES = $(TOPDIR)/../mavlink/include/mavlink
|
|
||||||
|
|
||||||
include $(APPDIR)/mk/app.mk
|
|
||||||
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user