Merge working changes into export-build branch.

This commit is contained in:
px4dev
2013-04-26 16:14:32 -07:00
parent ce0e4a3afd
commit 01e427b17c
102 changed files with 1088 additions and 621 deletions
+4
View File
@@ -1,4 +1,5 @@
.built .built
.context
*.context *.context
*.bdat *.bdat
*.pdat *.pdat
@@ -56,3 +57,6 @@ core
mkdeps mkdeps
Archives Archives
Build Build
!ROMFS/*/*.d
!ROMFS/*/*/*.d
!ROMFS/*/*/*/*.d
+28 -9
View File
@@ -42,12 +42,12 @@ include $(PX4_BASE)makefiles/setup.mk
# #
# Canned firmware configurations that we build. # Canned firmware configurations that we build.
# #
CONFIGS ?= px4fmu_default px4io_default CONFIGS ?= $(subst config_,,$(basename $(notdir $(wildcard $(PX4_MK_DIR)config_*.mk))))
# #
# Boards that we build NuttX export kits for. # Boards that we build NuttX export kits for.
# #
BOARDS = px4fmu px4io BOARDS := $(subst board_,,$(basename $(notdir $(wildcard $(PX4_MK_DIR)board_*.mk))))
# #
# Debugging # Debugging
@@ -62,11 +62,26 @@ MQUIET = --no-print-directory
# #
# If the user has listed a config as a target, strip it out and override CONFIGS. # If the user has listed a config as a target, strip it out and override CONFIGS.
# #
FIRMWARE_GOAL = firmware
EXPLICIT_CONFIGS := $(filter $(CONFIGS),$(MAKECMDGOALS)) EXPLICIT_CONFIGS := $(filter $(CONFIGS),$(MAKECMDGOALS))
ifneq ($(EXPLICIT_CONFIGS),) ifneq ($(EXPLICIT_CONFIGS),)
CONFIGS := $(EXPLICIT_CONFIGS) CONFIGS := $(EXPLICIT_CONFIGS)
.PHONY: $(EXPLICIT_CONFIGS) .PHONY: $(EXPLICIT_CONFIGS)
$(EXPLICIT_CONFIGS): all $(EXPLICIT_CONFIGS): all
#
# If the user has asked to upload, they must have also specified exactly one
# config.
#
ifneq ($(filter upload,$(MAKECMDGOALS)),)
ifneq ($(words $(EXPLICIT_CONFIGS)),1)
$(error In order to upload, exactly one board config must be specified)
endif
FIRMWARE_GOAL = upload
.PHONY: upload
upload:
@:
endif
endif endif
# #
@@ -95,11 +110,11 @@ $(FIRMWARES): $(BUILD_DIR)%.build/firmware.px4:
@echo %%%% Building $(config) in $(work_dir) @echo %%%% Building $(config) in $(work_dir)
@echo %%%% @echo %%%%
$(Q) mkdir -p $(work_dir) $(Q) mkdir -p $(work_dir)
$(Q) make -C $(work_dir) \ $(Q) make -r -C $(work_dir) \
-f $(PX4_MK_DIR)firmware.mk \ -f $(PX4_MK_DIR)firmware.mk \
CONFIG=$(config) \ CONFIG=$(config) \
WORK_DIR=$(work_dir) \ WORK_DIR=$(work_dir) \
firmware $(FIRMWARE_GOAL)
# #
# Build the NuttX export archives. # Build the NuttX export archives.
@@ -118,15 +133,21 @@ NUTTX_ARCHIVES = $(foreach board,$(BOARDS),$(ARCHIVE_DIR)$(board).export)
.PHONY: archives .PHONY: archives
archives: $(NUTTX_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
$(ARCHIVE_DIR)%.export: board = $(notdir $(basename $@)) $(ARCHIVE_DIR)%.export: board = $(notdir $(basename $@))
$(ARCHIVE_DIR)%.export: configuration = $(if $(filter $(board),px4io),io,nsh) $(ARCHIVE_DIR)%.export: configuration = $(if $(filter $(board),px4io),io,nsh)
$(NUTTX_ARCHIVES): $(ARCHIVE_DIR)%.export: $(NUTTX_SRC) $(NUTTX_APPS) $(NUTTX_ARCHIVES): $(ARCHIVE_DIR)%.export: $(NUTTX_SRC) $(NUTTX_APPS)
@echo %% Configuring NuttX for $(board) @echo %% Configuring NuttX for $(board)
$(Q) (cd $(NUTTX_SRC) && $(RMDIR) nuttx-export) $(Q) (cd $(NUTTX_SRC) && $(RMDIR) nuttx-export)
$(Q) make -C $(NUTTX_SRC) -r $(MQUIET) distclean $(Q) make -r -j1 -C $(NUTTX_SRC) -r $(MQUIET) distclean
$(Q) (cd $(NUTTX_SRC)tools && ./configure.sh $(board)/$(configuration)) $(Q) (cd $(NUTTX_SRC)tools && ./configure.sh $(board)/$(configuration))
@echo %% Exporting NuttX for $(board) @echo %% Exporting NuttX for $(board)
$(Q) make -C $(NUTTX_SRC) -r $(MQUIET) export $(Q) make -r -j1 -C $(NUTTX_SRC) -r $(MQUIET) export
$(Q) mkdir -p $(dir $@) $(Q) mkdir -p $(dir $@)
$(Q) $(COPY) $(NUTTX_SRC)nuttx-export.zip $@ $(Q) $(COPY) $(NUTTX_SRC)nuttx-export.zip $@
@@ -162,9 +183,7 @@ help:
@echo "" @echo ""
@echo " all" @echo " all"
@echo " Build all firmware configs: $(CONFIGS)" @echo " Build all firmware configs: $(CONFIGS)"
@echo " A limited set of configs can be built with:" @echo " A limited set of configs can be built with CONFIGS=<list-of-configs>"
@echo ""
@echo " CONFIGS=<list-of-configs>"
@echo "" @echo ""
@for config in $(CONFIGS); do \ @for config in $(CONFIGS); do \
echo " $$config"; \ echo " $$config"; \
+67
View File
@@ -0,0 +1,67 @@
#!nsh
#
# Flight startup script for PX4FMU with PWM outputs.
#
# Disable the USB interface
set USB no
# Disable autostarting other apps
set MODE custom
echo "[init] doing PX4FMU Quad startup..."
#
# 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 2
#
# Start MAVLink
#
mavlink start -d /dev/ttyS0 -b 57600
usleep 5000
#
# Start the sensors and test them.
#
sh /etc/init.d/rc.sensors
#
# Start the commander.
#
commander start
#
# Start the attitude estimator
#
attitude_estimator_ekf start
echo "[init] starting PWM output"
fmu mode_pwm
mixer load /dev/pwm_output /etc/mixers/FMU_quad_x.mix
#
# Start attitude control
#
multirotor_att_control start
echo "[init] startup done, exiting"
exit
+80
View File
@@ -0,0 +1,80 @@
#!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
+98
View File
@@ -0,0 +1,98 @@
#!nsh
#
# Flight startup script for PX4FMU on PX4IOAR carrier board.
#
# Disable the USB interface
set USB no
# Disable autostarting other apps
set MODE ardrone
echo "[init] doing PX4IOAR startup..."
#
# Start the ORB
#
uorb start
#
# Init the parameter storage
#
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 2
#
# Start the sensors.
#
sh /etc/init.d/rc.sensors
#
# Start MAVLink
#
mavlink start -d /dev/ttyS0 -b 57600
usleep 5000
#
# Start the commander.
#
commander start
#
# Start the attitude estimator
#
attitude_estimator_ekf start
#
# Configure PX4FMU for operation with PX4IOAR
#
fmu mode_gpio_serial
#
# Fire up the multi rotor attitude controller
#
multirotor_att_control start
#
# Fire up the AR.Drone interface.
#
ardrone_interface start -d /dev/ttyS1
#
# Start GPS capture
#
gps 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
#
# startup is done; we don't want the shell because we
# use the same UART for telemetry
#
echo "[init] startup done"
exit
+66
View File
@@ -0,0 +1,66 @@
#!nsh
#
# If we are still in flight mode, work out what airframe
# configuration we have and start up accordingly.
#
if [ $MODE != autostart ]
then
echo "[init] automatic startup cancelled by user script"
else
echo "[init] detecting attached hardware..."
#
# Assume that we are PX4FMU in standalone mode
#
set BOARD PX4FMU
#
# Are we attached to a PX4IOAR (AR.Drone carrier board)?
#
if boardinfo test name PX4IOAR
then
set BOARD PX4IOAR
if [ -f /etc/init.d/rc.PX4IOAR ]
then
echo "[init] reading /etc/init.d/rc.PX4IOAR"
usleep 500
sh /etc/init.d/rc.PX4IOAR
fi
else
echo "[init] PX4IOAR not detected"
fi
#
# Are we attached to a PX4IO?
#
if boardinfo test name PX4IO
then
set BOARD PX4IO
if [ -f /etc/init.d/rc.PX4IO ]
then
echo "[init] reading /etc/init.d/rc.PX4IO"
usleep 500
sh /etc/init.d/rc.PX4IO
fi
else
echo "[init] PX4IO not detected"
fi
#
# Looks like we are stand-alone
#
if [ $BOARD == PX4FMU ]
then
echo "[init] no expansion board detected"
if [ -f /etc/init.d/rc.standalone ]
then
echo "[init] reading /etc/init.d/rc.standalone"
sh /etc/init.d/rc.standalone
fi
fi
#
# We may not reach here if the airframe-specific script exits the shell.
#
echo "[init] startup done."
fi
+10
View File
@@ -0,0 +1,10 @@
#!nsh
#
# Test jig startup script
#
echo "[testing] doing production test.."
tests jig
echo "[testing] testing done"
+9
View File
@@ -0,0 +1,9 @@
#!nsh
#
# Initialise logging services.
#
if [ -d /fs/microsd ]
then
sdlog start
fi
+34
View File
@@ -0,0 +1,34 @@
#!nsh
#
# Standard startup script for PX4FMU onboard sensor drivers.
#
#
# Start sensor drivers here.
#
ms5611 start
adc start
if mpu6000 start
then
echo "using MPU6000 and HMC5883L"
hmc5883 start
else
echo "using L3GD20 and LSM303D"
l3gd20 start
lsm303 start
fi
#
# Start the sensor collection task.
# IMPORTANT: this also loads param offsets
# ALWAYS start this task before the
# preflight_check.
#
sensors start
#
# Check sensors - run AFTER 'sensors start'
#
preflight_check
+13
View File
@@ -0,0 +1,13 @@
#!nsh
#
# Flight startup script for PX4FMU standalone configuration.
#
echo "[init] doing standalone PX4FMU startup..."
#
# Start the ORB
#
uorb start
echo "[init] startup done"
+79
View File
@@ -0,0 +1,79 @@
#!nsh
#
# PX4FMU startup script.
#
# This script is responsible for:
#
# - mounting the microSD card (if present)
# - running the user startup script from the microSD card (if present)
# - detecting the configuration of the system and picking a suitable
# startup script to continue with
#
# Note: DO NOT add configuration-specific commands to this script;
# add them to the per-configuration scripts instead.
#
#
# Default to auto-start mode. An init script on the microSD card
# can change this to prevent automatic startup of the flight script.
#
set MODE autostart
set USB autoconnect
#
# Start playing the startup tune
#
tone_alarm start
#
# Try to mount the microSD card.
#
echo "[init] looking for microSD..."
if mount -t vfat /dev/mmcsd0 /fs/microsd
then
echo "[init] card mounted at /fs/microsd"
else
echo "[init] no microSD card found"
fi
#
# Look for an init script on the microSD card.
#
# To prevent automatic startup in the current flight mode,
# the script should set MODE to some other value.
#
if [ -f /fs/microsd/etc/rc ]
then
echo "[init] reading /fs/microsd/etc/rc"
sh /fs/microsd/etc/rc
fi
# Also consider rc.txt files
if [ -f /fs/microsd/etc/rc.txt ]
then
echo "[init] reading /fs/microsd/etc/rc.txt"
sh /fs/microsd/etc/rc.txt
fi
#
# Check for USB host
#
if [ $USB != autoconnect ]
then
echo "[init] not connecting USB"
else
if sercon
then
echo "[init] USB interface connected"
else
echo "[init] No USB connected"
fi
fi
# if this is an APM build then there will be a rc.APM script
# from an EXTERNAL_SCRIPTS build option
if [ -f /etc/init.d/rc.APM ]
then
echo Running rc.APM
# if APM startup is successful then nsh will exit
sh /etc/init.d/rc.APM
fi
+17 -16
View File
@@ -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'''
@@ -101,7 +101,7 @@ class firmware(object):
0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2, 0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db, 0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2, 0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db,
0xaed16a4a, 0xd9d65adc, 0x40df0b66, 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9, 0xaed16a4a, 0xd9d65adc, 0x40df0b66, 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9,
0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, 0xcdd70693, 0x54de5729, 0x23d967bf, 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, 0xcdd70693, 0x54de5729, 0x23d967bf,
0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94, 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d ]) 0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94, 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d])
crcpad = bytearray('\xff\xff\xff\xff') crcpad = bytearray('\xff\xff\xff\xff')
def __init__(self, path): def __init__(self, path):
@@ -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:
@@ -177,7 +178,7 @@ class uploader(object):
# print("send " + binascii.hexlify(c)) # print("send " + binascii.hexlify(c))
self.port.write(str(c)) self.port.write(str(c))
def __recv(self, count = 1): def __recv(self, count=1):
c = self.port.read(count) c = self.port.read(count)
if len(c) < 1: if len(c) < 1:
raise RuntimeError("timeout waiting for data") raise RuntimeError("timeout waiting for data")
@@ -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
-57
View File
@@ -1,57 +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.
#
############################################################################
APPNAME = attitude_estimator_ekf
PRIORITY = SCHED_PRIORITY_DEFAULT
STACKSIZE = 2048
CXXSRCS = attitude_estimator_ekf_main.cpp
CSRCS = attitude_estimator_ekf_params.c \
codegen/eye.c \
codegen/attitudeKalmanfilter.c \
codegen/mrdivide.c \
codegen/rdivide.c \
codegen/attitudeKalmanfilter_initialize.c \
codegen/attitudeKalmanfilter_terminate.c \
codegen/rt_nonfinite.c \
codegen/rtGetInf.c \
codegen/rtGetNaN.c \
codegen/norm.c \
codegen/cross.c
# XXX this is *horribly* broken
INCLUDES += $(TOPDIR)/../mavlink/include/mavlink
include $(APPDIR)/mk/app.mk
View File
-45
View File
@@ -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.
#
############################################################################
#
# Commander application
#
APPNAME = commander
PRIORITY = SCHED_PRIORITY_MAX - 30
STACKSIZE = 2048
INCLUDES = $(TOPDIR)/../mavlink/include/mavlink
include $(APPDIR)/mk/app.mk
-41
View File
@@ -1,41 +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.
#
############################################################################
#
# Board-specific startup code for the PX4FMU
#
INCLUDES = $(TOPDIR)/arch/arm/src/stm32 $(TOPDIR)/arch/arm/src/common
LIBNAME = brd_px4fmu
include $(APPDIR)/mk/app.mk
-44
View File
@@ -1,44 +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.
#
############################################################################
#
# Interface driver for the PX4FMU board
#
APPNAME = fmu
PRIORITY = SCHED_PRIORITY_DEFAULT
STACKSIZE = 2048
INCLUDES = $(TOPDIR)/arch/arm/src/stm32 $(TOPDIR)/arch/arm/src/common
include $(APPDIR)/mk/app.mk
+2
View File
@@ -372,7 +372,9 @@ Sensors *g_sensors;
} }
Sensors::Sensors() : Sensors::Sensors() :
#ifdef CONFIG_HRT_PPM
_ppm_last_valid(0), _ppm_last_valid(0),
#endif
_fd_adc(-1), _fd_adc(-1),
_last_adc(0), _last_adc(0),
-45
View File
@@ -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.
#
############################################################################
#
# Build the eeprom tool.
#
APPNAME = eeprom
PRIORITY = SCHED_PRIORITY_DEFAULT
STACKSIZE = 4096
MAXOPTIMIZATION = -Os
include $(APPDIR)/mk/app.mk
MAXOPTIMIZATION = -Os
+1 -1
View File
@@ -1,5 +1,5 @@
# #
# Platform-specific definitions for the PX4FMU # Board-specific definitions for the PX4FMU
# #
# #
+1 -1
View File
@@ -1,5 +1,5 @@
# #
# Platform-specific definitions for the PX4IO # Board-specific definitions for the PX4IO
# #
# #
+21 -7
View File
@@ -5,7 +5,26 @@
# #
# Use the configuration's ROMFS. # Use the configuration's ROMFS.
# #
ROMFS_ROOT = $(PX4_BASE)/ROMFS/$(CONFIG) ROMFS_ROOT = $(PX4_BASE)/ROMFS/px4fmu_common
#
# Board support modules
#
MODULES += drivers/px4fmu
MODULES += drivers/boards/px4fmu
MODULES += drivers/l3gd20
MODULES += drivers/ardrone_interface
MODULES += systemcmds/eeprom
#
# General system control
#
MODULES += modules/commander
#
# Estimation modules (EKF / other filters)
#
#MODULES += modules/attitude_estimator_ekf
# #
# Transitional support - add commands from the NuttX export archive. # Transitional support - add commands from the NuttX export archive.
@@ -22,25 +41,19 @@ endef
# command priority stack entrypoint # command priority stack entrypoint
BUILTIN_COMMANDS := \ BUILTIN_COMMANDS := \
$(call _B, adc, , 2048, adc_main ) \ $(call _B, adc, , 2048, adc_main ) \
$(call _B, ardrone_interface, SCHED_PRIORITY_MAX-15, 2048, ardrone_interface_main ) \
$(call _B, attitude_estimator_ekf, , 2048, attitude_estimator_ekf_main) \
$(call _B, bl_update, , 4096, bl_update_main ) \ $(call _B, bl_update, , 4096, bl_update_main ) \
$(call _B, blinkm, , 2048, blinkm_main ) \ $(call _B, blinkm, , 2048, blinkm_main ) \
$(call _B, bma180, , 2048, bma180_main ) \ $(call _B, bma180, , 2048, bma180_main ) \
$(call _B, boardinfo, , 2048, boardinfo_main ) \ $(call _B, boardinfo, , 2048, boardinfo_main ) \
$(call _B, commander, SCHED_PRIORITY_MAX-30, 2048, commander_main ) \
$(call _B, control_demo, , 2048, control_demo_main ) \ $(call _B, control_demo, , 2048, control_demo_main ) \
$(call _B, delay_test, , 2048, delay_test_main ) \ $(call _B, delay_test, , 2048, delay_test_main ) \
$(call _B, eeprom, , 4096, eeprom_main ) \
$(call _B, fixedwing_att_control, SCHED_PRIORITY_MAX-30, 2048, fixedwing_att_control_main ) \ $(call _B, fixedwing_att_control, SCHED_PRIORITY_MAX-30, 2048, fixedwing_att_control_main ) \
$(call _B, fixedwing_pos_control, SCHED_PRIORITY_MAX-30, 2048, fixedwing_pos_control_main ) \ $(call _B, fixedwing_pos_control, SCHED_PRIORITY_MAX-30, 2048, fixedwing_pos_control_main ) \
$(call _B, fmu, , 2048, fmu_main ) \
$(call _B, gps, , 2048, gps_main ) \ $(call _B, gps, , 2048, gps_main ) \
$(call _B, hil, , 2048, hil_main ) \ $(call _B, hil, , 2048, hil_main ) \
$(call _B, hmc5883, , 4096, hmc5883_main ) \ $(call _B, hmc5883, , 4096, hmc5883_main ) \
$(call _B, hott_telemetry, , 2048, hott_telemetry_main ) \ $(call _B, hott_telemetry, , 2048, hott_telemetry_main ) \
$(call _B, kalman_demo, SCHED_PRIORITY_MAX-30, 2048, kalman_demo_main ) \ $(call _B, kalman_demo, SCHED_PRIORITY_MAX-30, 2048, kalman_demo_main ) \
$(call _B, l3gd20, , 2048, l3gd20_main ) \
$(call _B, math_demo, , 8192, math_demo_main ) \ $(call _B, math_demo, , 8192, math_demo_main ) \
$(call _B, mavlink, , 2048, mavlink_main ) \ $(call _B, mavlink, , 2048, mavlink_main ) \
$(call _B, mavlink_onboard, , 2048, mavlink_onboard_main ) \ $(call _B, mavlink_onboard, , 2048, mavlink_onboard_main ) \
@@ -62,4 +75,5 @@ BUILTIN_COMMANDS := \
$(call _B, tests, , 12000, tests_main ) \ $(call _B, tests, , 12000, tests_main ) \
$(call _B, tone_alarm, , 2048, tone_alarm_main ) \ $(call _B, tone_alarm, , 2048, tone_alarm_main ) \
$(call _B, top, SCHED_PRIORITY_DEFAULT-10, 3000, top_main ) \ $(call _B, top, SCHED_PRIORITY_DEFAULT-10, 3000, top_main ) \
$(call _B, param, SCHED_PRIORITY_DEFAULT-10, 2048, param_main ) \
$(call _B, uorb, , 4096, uorb_main ) $(call _B, uorb, , 4096, uorb_main )
+41 -22
View File
@@ -64,7 +64,16 @@
# path to this file. # path to this file.
# #
# CONFIG: # CONFIG:
# Used to set the output filename; defaults to 'firmware'. # Used when searching for the configuration file, and available
# to module Makefiles to select optional features.
# If not set, CONFIG_FILE must be set and CONFIG will be derived
# automatically from it.
#
# CONFIG_FILE:
# If set, overrides the configuration file search logic. Sets
# CONFIG to the name of the configuration file, strips any
# leading config_ prefix and any suffix. e.g. config_board_foo.mk
# results in CONFIG being set to 'board_foo'.
# #
# WORK_DIR: # WORK_DIR:
# Sets the directory in which the firmware will be built. Defaults # Sets the directory in which the firmware will be built. Defaults
@@ -97,6 +106,9 @@ ifeq ($(PX4_BASE),)
export PX4_BASE := $(abspath $(MK_DIR)/..) export PX4_BASE := $(abspath $(MK_DIR)/..)
endif endif
$(info % PX4_BASE = $(PX4_BASE)) $(info % PX4_BASE = $(PX4_BASE))
ifneq ($(words $(PX4_BASE)),1)
$(error Cannot build when the PX4_BASE path contains one or more space characters.)
endif
# #
# Set a default target so that included makefiles or errors here don't # Set a default target so that included makefiles or errors here don't
@@ -115,13 +127,14 @@ include $(MK_DIR)/setup.mk
# #
# Locate the configuration file # Locate the configuration file
# #
ifneq ($(CONFIG_FILE),)
CONFIG := $(subst config_,,$(basename $(notdir $(CONFIG_FILE))))
else
CONFIG_FILE := $(wildcard $(PX4_MK_DIR)/config_$(CONFIG).mk)
endif
ifeq ($(CONFIG),) ifeq ($(CONFIG),)
$(error Missing configuration name or file (specify with CONFIG=<config>)) $(error Missing configuration name or file (specify with CONFIG=<config>))
endif endif
CONFIG_FILE := $(firstword $(wildcard $(CONFIG)) $(wildcard $(PX4_MK_DIR)/config_$(CONFIG).mk))
ifeq ($(CONFIG_FILE),)
$(error Can't find a config file called $(CONFIG) or $(PX4_MK_DIR)/config_$(CONFIG).mk)
endif
export CONFIG export CONFIG
include $(CONFIG_FILE) include $(CONFIG_FILE)
$(info % CONFIG = $(CONFIG)) $(info % CONFIG = $(CONFIG))
@@ -211,10 +224,7 @@ MODULE_OBJS := $(foreach path,$(dir $(MODULE_MKFILES)),$(WORK_DIR)$(path)module
$(MODULE_OBJS): relpath = $(patsubst $(WORK_DIR)%,%,$@) $(MODULE_OBJS): relpath = $(patsubst $(WORK_DIR)%,%,$@)
$(MODULE_OBJS): mkfile = $(patsubst %module.pre.o,%module.mk,$(relpath)) $(MODULE_OBJS): mkfile = $(patsubst %module.pre.o,%module.mk,$(relpath))
$(MODULE_OBJS): $(GLOBAL_DEPS) $(NUTTX_CONFIG_HEADER) $(MODULE_OBJS): $(GLOBAL_DEPS) $(NUTTX_CONFIG_HEADER)
@$(ECHO) %% $(Q) $(MAKE) -r -f $(PX4_MK_DIR)module.mk \
@$(ECHO) %% Building module using $(mkfile)
@$(ECHO) %%
$(Q) $(MAKE) -f $(PX4_MK_DIR)module.mk \
MODULE_WORK_DIR=$(dir $@) \ MODULE_WORK_DIR=$(dir $@) \
MODULE_OBJ=$@ \ MODULE_OBJ=$@ \
MODULE_MK=$(mkfile) \ MODULE_MK=$(mkfile) \
@@ -230,7 +240,7 @@ $(MODULE_CLEANS): relpath = $(patsubst $(WORK_DIR)%,%,$@)
$(MODULE_CLEANS): mkfile = $(patsubst %clean,%module.mk,$(relpath)) $(MODULE_CLEANS): mkfile = $(patsubst %clean,%module.mk,$(relpath))
$(MODULE_CLEANS): $(MODULE_CLEANS):
@$(ECHO) %% cleaning using $(mkfile) @$(ECHO) %% cleaning using $(mkfile)
$(Q) $(MAKE) -f $(PX4_MK_DIR)module.mk \ $(Q) $(MAKE) -r -f $(PX4_MK_DIR)module.mk \
MODULE_WORK_DIR=$(dir $@) \ MODULE_WORK_DIR=$(dir $@) \
MODULE_MK=$(mkfile) \ MODULE_MK=$(mkfile) \
clean clean
@@ -246,6 +256,9 @@ include $(PX4_MK_DIR)/nuttx.mk
################################################################################ ################################################################################
ifneq ($(ROMFS_ROOT),) ifneq ($(ROMFS_ROOT),)
ifeq ($(wildcard $(ROMFS_ROOT)),)
$(error ROMFS_ROOT specifies a directory that does not exist)
endif
# #
# Note that there is no support for more than one root directory or constructing # Note that there is no support for more than one root directory or constructing
@@ -272,7 +285,7 @@ $(ROMFS_OBJ): $(ROMFS_IMG) $(GLOBAL_DEPS)
# Generate the ROMFS image from the root # Generate the ROMFS image from the root
$(ROMFS_IMG): $(ROMFS_DEPS) $(GLOBAL_DEPS) $(ROMFS_IMG): $(ROMFS_DEPS) $(GLOBAL_DEPS)
@$(ECHO) %% generating $@ @$(ECHO) "ROMFS: $@"
$(Q) $(GENROMFS) -f $@ -d $(ROMFS_ROOT) -V "NSHInitVol" $(Q) $(GENROMFS) -f $@ -d $(ROMFS_ROOT) -V "NSHInitVol"
EXTRA_CLEANS += $(ROMGS_OBJ) $(ROMFS_IMG) EXTRA_CLEANS += $(ROMGS_OBJ) $(ROMFS_IMG)
@@ -298,10 +311,12 @@ endif
# #
BUILTIN_CSRC = $(WORK_DIR)builtin_commands.c BUILTIN_CSRC = $(WORK_DIR)builtin_commands.c
# add command definitions from modules # command definitions from modules (may be empty at Makefile parsing time...)
BUILTIN_COMMAND_FILES := $(wildcard $(WORK_DIR)builtin_commands/COMMAND.*) MODULE_COMMANDS = $(subst COMMAND.,,$(notdir $(wildcard $(WORK_DIR)builtin_commands/COMMAND.*)))
BUILTIN_COMMANDS += $(subst COMMAND.,,$(notdir $(BUILTIN_COMMAND_FILES)))
# We must have at least one pre-defined builtin command in order to generate
# any of this.
#
ifneq ($(BUILTIN_COMMANDS),) ifneq ($(BUILTIN_COMMANDS),)
# (BUILTIN_PROTO,<cmdspec>,<outputfile>) # (BUILTIN_PROTO,<cmdspec>,<outputfile>)
@@ -315,17 +330,19 @@ define BUILTIN_DEF
endef endef
# Don't generate until modules have updated their command files # Don't generate until modules have updated their command files
$(BUILTIN_CSRC): $(GLOBAL_DEPS) $(BUILTIN_COMMAND_FILES) $(BUILTIN_CSRC): $(GLOBAL_DEPS) $(MODULE_OBJS) $(BUILTIN_COMMAND_FILES)
@$(ECHO) %% generating $@ @$(ECHO) "CMDS: $@"
$(Q) $(ECHO) '/* builtin command list - automatically generated, do not edit */' > $@ $(Q) $(ECHO) '/* builtin command list - automatically generated, do not edit */' > $@
$(Q) $(ECHO) '#include <nuttx/config.h>' >> $@ $(Q) $(ECHO) '#include <nuttx/config.h>' >> $@
$(Q) $(ECHO) '#include <nuttx/binfmt/builtin.h>' >> $@ $(Q) $(ECHO) '#include <nuttx/binfmt/builtin.h>' >> $@
$(Q) $(foreach spec,$(BUILTIN_COMMANDS),$(call BUILTIN_PROTO,$(subst ., ,$(spec)),$@)) $(Q) $(foreach spec,$(BUILTIN_COMMANDS),$(call BUILTIN_PROTO,$(subst ., ,$(spec)),$@))
$(Q) $(foreach spec,$(MODULE_COMMANDS),$(call BUILTIN_PROTO,$(subst ., ,$(spec)),$@))
$(Q) $(ECHO) 'const struct builtin_s g_builtins[] = {' >> $@ $(Q) $(ECHO) 'const struct builtin_s g_builtins[] = {' >> $@
$(Q) $(foreach spec,$(BUILTIN_COMMANDS),$(call BUILTIN_DEF,$(subst ., ,$(spec)),$@)) $(Q) $(foreach spec,$(BUILTIN_COMMANDS),$(call BUILTIN_DEF,$(subst ., ,$(spec)),$@))
$(Q) $(foreach spec,$(MODULE_COMMANDS),$(call BUILTIN_DEF,$(subst ., ,$(spec)),$@))
$(Q) $(ECHO) ' {NULL, 0, 0, NULL}' >> $@ $(Q) $(ECHO) ' {NULL, 0, 0, NULL}' >> $@
$(Q) $(ECHO) '};' >> $@ $(Q) $(ECHO) '};' >> $@
$(Q) $(ECHO) 'const int g_builtin_count = $(words $(BUILTIN_COMMANDS));' >> $@ $(Q) $(ECHO) 'const int g_builtin_count = $(words $(BUILTIN_COMMANDS) $(MODULE_COMMANDS));' >> $@
SRCS += $(BUILTIN_CSRC) SRCS += $(BUILTIN_CSRC)
@@ -358,7 +375,7 @@ endif
# #
PRODUCT_BUNDLE = $(WORK_DIR)firmware.px4 PRODUCT_BUNDLE = $(WORK_DIR)firmware.px4
PRODUCT_BIN = $(WORK_DIR)firmware.bin PRODUCT_BIN = $(WORK_DIR)firmware.bin
PRODUCT_SYM = $(WORK_DIR)firmware.sym PRODUCT_ELF = $(WORK_DIR)firmware.elf
.PHONY: firmware .PHONY: firmware
firmware: $(PRODUCT_BUNDLE) firmware: $(PRODUCT_BUNDLE)
@@ -393,10 +410,10 @@ $(PRODUCT_BUNDLE): $(PRODUCT_BIN)
--git_identity $(PX4_BASE) \ --git_identity $(PX4_BASE) \
--image $< > $@ --image $< > $@
$(PRODUCT_BIN): $(PRODUCT_SYM) $(PRODUCT_BIN): $(PRODUCT_ELF)
$(call SYM_TO_BIN,$<,$@) $(call SYM_TO_BIN,$<,$@)
$(PRODUCT_SYM): $(OBJS) $(MODULE_OBJS) $(GLOBAL_DEPS) $(LINK_DEPS) $(MODULE_MKFILES) $(PRODUCT_ELF): $(OBJS) $(MODULE_OBJS) $(GLOBAL_DEPS) $(LINK_DEPS) $(MODULE_MKFILES)
$(call LINK,$@,$(OBJS) $(MODULE_OBJS)) $(call LINK,$@,$(OBJS) $(MODULE_OBJS))
# #
@@ -407,17 +424,19 @@ $(PRODUCT_SYM): $(OBJS) $(MODULE_OBJS) $(GLOBAL_DEPS) $(LINK_DEPS) $(MODULE_MKF
upload: $(PRODUCT_BUNDLE) $(PRODUCT_BIN) upload: $(PRODUCT_BUNDLE) $(PRODUCT_BIN)
$(Q) $(MAKE) -f $(PX4_MK_DIR)/upload.mk \ $(Q) $(MAKE) -f $(PX4_MK_DIR)/upload.mk \
METHOD=serial \ METHOD=serial \
PRODUCT=$(PRODUCT) \ CONFIG=$(CONFIG) \
BOARD=$(BOARD) \
BUNDLE=$(PRODUCT_BUNDLE) \ BUNDLE=$(PRODUCT_BUNDLE) \
BIN=$(PRODUCT_BIN) BIN=$(PRODUCT_BIN)
.PHONY: clean .PHONY: clean
clean: $(MODULE_CLEANS) clean: $(MODULE_CLEANS)
@$(ECHO) %% cleaning @$(ECHO) %% cleaning
$(Q) $(REMOVE) $(PRODUCT_BUNDLE) $(PRODUCT_BIN) $(PRODUCT_SYM) $(Q) $(REMOVE) $(PRODUCT_BUNDLE) $(PRODUCT_BIN) $(PRODUCT_ELF)
$(Q) $(REMOVE) $(OBJS) $(DEP_INCLUDES) $(EXTRA_CLEANS) $(Q) $(REMOVE) $(OBJS) $(DEP_INCLUDES) $(EXTRA_CLEANS)
$(Q) $(RMDIR) $(NUTTX_EXPORT_DIR) $(Q) $(RMDIR) $(NUTTX_EXPORT_DIR)
# #
# DEP_INCLUDES is defined by the toolchain include in terms of $(OBJS) # DEP_INCLUDES is defined by the toolchain include in terms of $(OBJS)
# #
+27 -7
View File
@@ -75,6 +75,18 @@
# the list should be formatted as: # the list should be formatted as:
# <command>.<priority>.<stacksize>.<entrypoint> # <command>.<priority>.<stacksize>.<entrypoint>
# #
# INCLUDE_DIRS (optional, must be appended)
#
# The list of directories searched for include files. If non-standard
# includes (e.g. those from another module) are required, paths to search
# can be added here.
#
# DEFAULT_VISIBILITY (optional)
#
# If not set, global symbols defined in a module will not be visible
# outside the module. Symbols that should be globally visible must be
# marked __EXPORT.
# If set, global symbols defined in a module will be globally visible.
# #
# #
@@ -96,12 +108,7 @@
ifeq ($(MODULE_MK),) ifeq ($(MODULE_MK),)
$(error No module makefile specified) $(error No module makefile specified)
endif endif
$(info % MODULE_MK = $(MODULE_MK)) $(info %% MODULE_MK = $(MODULE_MK))
#
# Get path and tool config
#
include $(PX4_BASE)/makefiles/setup.mk
# #
# Get the board/toolchain config # Get the board/toolchain config
@@ -144,12 +151,25 @@ MODULE_COMMAND_FILES := $(addprefix $(WORK_DIR)/builtin_commands/COMMAND.,$(MODU
$(MODULE_COMMAND_FILES): command = $(word 2,$(subst ., ,$(notdir $(@)))) $(MODULE_COMMAND_FILES): command = $(word 2,$(subst ., ,$(notdir $(@))))
$(MODULE_COMMAND_FILES): exclude = $(dir $@)COMMAND.$(command).* $(MODULE_COMMAND_FILES): exclude = $(dir $@)COMMAND.$(command).*
$(MODULE_COMMAND_FILES): $(GLOBAL_DEPS) $(MODULE_COMMAND_FILES): $(GLOBAL_DEPS)
@$(ECHO) COMMAND: $(command)
@$(REMOVE) -f $(exclude) @$(REMOVE) -f $(exclude)
@$(MKDIR) -p $(dir $@) @$(MKDIR) -p $(dir $@)
@echo "CMD: $(command)"
$(Q) $(TOUCH) $@ $(Q) $(TOUCH) $@
endif endif
################################################################################
# Adjust compilation flags to implement EXPORT
################################################################################
ifeq ($(DEFAULT_VISIBILITY),)
DEFAULT_VISIBILITY = hidden
else
DEFAULT_VISIBILITY = default
endif
CFLAGS += -fvisibility=$(DEFAULT_VISIBILITY) -include $(PX4_INCLUDE_DIR)visibility.h
CXXFLAGS += -fvisibility=$(DEFAULT_VISIBILITY) -include $(PX4_INCLUDE_DIR)visibility.h
################################################################################ ################################################################################
# Build rules # Build rules
################################################################################ ################################################################################
+5 -2
View File
@@ -63,7 +63,10 @@ LDSCRIPT += $(NUTTX_EXPORT_DIR)build/ld.script
# #
# Add directories from the NuttX export to the relevant search paths # Add directories from the NuttX export to the relevant search paths
# #
INCLUDE_DIRS += $(NUTTX_EXPORT_DIR)include INCLUDE_DIRS += $(NUTTX_EXPORT_DIR)include \
$(NUTTX_EXPORT_DIR)arch/chip \
$(NUTTX_EXPORT_DIR)arch/common
LIB_DIRS += $(NUTTX_EXPORT_DIR)libs LIB_DIRS += $(NUTTX_EXPORT_DIR)libs
LIBS += -lapps -lnuttx LIBS += -lapps -lnuttx
LINK_DEPS += $(NUTTX_EXPORT_DIR)libs/libapps.a \ LINK_DEPS += $(NUTTX_EXPORT_DIR)libs/libapps.a \
@@ -71,5 +74,5 @@ LINK_DEPS += $(NUTTX_EXPORT_DIR)libs/libapps.a \
$(NUTTX_CONFIG_HEADER): $(NUTTX_ARCHIVE) $(NUTTX_CONFIG_HEADER): $(NUTTX_ARCHIVE)
@$(ECHO) %% Unpacking $(NUTTX_ARCHIVE) @$(ECHO) %% Unpacking $(NUTTX_ARCHIVE)
$(Q) $(UNZIP) -q -o -d $(WORK_DIR) $(NUTTX_ARCHIVE) $(Q) $(UNZIP_CMD) -q -o -d $(WORK_DIR) $(NUTTX_ARCHIVE)
$(Q) $(TOUCH) $@ $(Q) $(TOUCH) $@
+22 -12
View File
@@ -41,7 +41,8 @@
# the number of duplicate slashes we have lying around in paths, # the number of duplicate slashes we have lying around in paths,
# and is consistent with joining the results of $(dir) and $(notdir). # and is consistent with joining the results of $(dir) and $(notdir).
# #
export PX4_MODULE_SRC = $(abspath $(PX4_BASE)/src/modules)/ export PX4_INCLUDE_DIR = $(abspath $(PX4_BASE)/src/include)/
export PX4_MODULE_SRC = $(abspath $(PX4_BASE)/src)/
export PX4_MK_DIR = $(abspath $(PX4_BASE)/makefiles)/ export PX4_MK_DIR = $(abspath $(PX4_BASE)/makefiles)/
export NUTTX_SRC = $(abspath $(PX4_BASE)/nuttx)/ export NUTTX_SRC = $(abspath $(PX4_BASE)/nuttx)/
export NUTTX_APP_SRC = $(abspath $(PX4_BASE)/apps)/ export NUTTX_APP_SRC = $(abspath $(PX4_BASE)/apps)/
@@ -51,24 +52,33 @@ export IMAGE_DIR = $(abspath $(PX4_BASE)/Images)/
export BUILD_DIR = $(abspath $(PX4_BASE)/Build)/ export BUILD_DIR = $(abspath $(PX4_BASE)/Build)/
export ARCHIVE_DIR = $(abspath $(PX4_BASE)/Archives)/ export ARCHIVE_DIR = $(abspath $(PX4_BASE)/Archives)/
#
# Default include paths
#
export INCLUDE_DIRS := $(PX4_MODULE_SRC) \
$(PX4_INCLUDE_DIR)
# Include from legacy app/library path
export INCLUDE_DIRS += $(NUTTX_APP_SRC)
# #
# Tools # Tools
# #
MKFW = $(PX4_BASE)/Tools/px_mkfw.py export MKFW = $(PX4_BASE)/Tools/px_mkfw.py
UPLOADER = $(PX4_BASE)/Tools/px_uploader.py export UPLOADER = $(PX4_BASE)/Tools/px_uploader.py
COPY = cp export COPY = cp
REMOVE = rm -f export REMOVE = rm -f
RMDIR = rm -rf export RMDIR = rm -rf
GENROMFS = genromfs export GENROMFS = genromfs
TOUCH = touch export TOUCH = touch
MKDIR = mkdir export MKDIR = mkdir
ECHO = echo export ECHO = echo
UNZIP = unzip export UNZIP_CMD = unzip
# #
# Host-specific paths, hacks and fixups # Host-specific paths, hacks and fixups
# #
SYSTYPE := $(shell uname -s) export SYSTYPE := $(shell uname -s)
ifeq ($(SYSTYPE),Darwin) ifeq ($(SYSTYPE),Darwin)
# Eclipse may not have the toolchain on its path. # Eclipse may not have the toolchain on its path.
+1
View File
@@ -157,6 +157,7 @@ CXXFLAGS = $(ARCHCXXFLAGS) \
$(INSTRUMENTATIONDEFINES) \ $(INSTRUMENTATIONDEFINES) \
$(ARCHDEFINES) \ $(ARCHDEFINES) \
$(EXTRADEFINES) \ $(EXTRADEFINES) \
-DCONFIG_WCHAR_BUILTIN \
$(addprefix -I,$(INCLUDE_DIRS)) $(addprefix -I,$(INCLUDE_DIRS))
# Flags we pass to the assembler # Flags we pass to the assembler
+3 -3
View File
@@ -21,11 +21,11 @@ ifeq ($(SERIAL_PORTS),)
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" 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"
endif endif
.PHONY: all upload-$(METHOD)-$(PRODUCT) .PHONY: all upload-$(METHOD)-$(BOARD)
all: upload-$(METHOD)-$(PRODUCT) all: upload-$(METHOD)-$(BOARD)
upload-serial-px4fmu: $(BUNDLE) $(UPLOADER) upload-serial-px4fmu: $(BUNDLE) $(UPLOADER)
@python -u $(UPLOADER) --port $(SERIAL_PORTS) $(PRODUCT_BUNDLE) @python -u $(UPLOADER) --port $(SERIAL_PORTS) $(BUNDLE)
# #
# JTAG firmware uploading with OpenOCD # JTAG firmware uploading with OpenOCD
+6
View File
@@ -308,6 +308,10 @@
#define GPIO_SPI1_MOSI GPIO_SPI1_MOSI_1 #define GPIO_SPI1_MOSI GPIO_SPI1_MOSI_1
#define GPIO_SPI1_SCK GPIO_SPI1_SCK_1 #define GPIO_SPI1_SCK GPIO_SPI1_SCK_1
#define GPIO_SPI2_MISO GPIO_SPI2_MISO_2
#define GPIO_SPI2_MOSI GPIO_SPI2_MOSI_2
#define GPIO_SPI2_SCK GPIO_SPI2_SCK_2
#define GPIO_SPI3_MISO GPIO_SPI3_MISO_2 #define GPIO_SPI3_MISO GPIO_SPI3_MISO_2
#define GPIO_SPI3_MOSI GPIO_SPI3_MOSI_1 #define GPIO_SPI3_MOSI GPIO_SPI3_MOSI_1
#define GPIO_SPI3_SCK GPIO_SPI3_SCK_2 #define GPIO_SPI3_SCK GPIO_SPI3_SCK_2
@@ -321,6 +325,8 @@
#define PX4_SPIDEV_ACCEL 2 #define PX4_SPIDEV_ACCEL 2
#define PX4_SPIDEV_MPU 3 #define PX4_SPIDEV_MPU 3
#define PX4_SPIDEV_ACCEL_MAG 2 // external for anti vibration test
/* /*
* Tone alarm output * Tone alarm output
*/ */
+2 -5
View File
@@ -65,7 +65,6 @@ CONFIGURED_APPS += systemcmds/perf
CONFIGURED_APPS += systemcmds/top CONFIGURED_APPS += systemcmds/top
CONFIGURED_APPS += systemcmds/boardinfo CONFIGURED_APPS += systemcmds/boardinfo
CONFIGURED_APPS += systemcmds/mixer CONFIGURED_APPS += systemcmds/mixer
CONFIGURED_APPS += systemcmds/eeprom
CONFIGURED_APPS += systemcmds/param CONFIGURED_APPS += systemcmds/param
CONFIGURED_APPS += systemcmds/pwm CONFIGURED_APPS += systemcmds/pwm
CONFIGURED_APPS += systemcmds/bl_update CONFIGURED_APPS += systemcmds/bl_update
@@ -110,20 +109,18 @@ endif
CONFIGURED_APPS += systemcmds/i2c CONFIGURED_APPS += systemcmds/i2c
# Communication and Drivers # Communication and Drivers
CONFIGURED_APPS += drivers/boards/px4fmu #CONFIGURED_APPS += drivers/boards/px4fmu
CONFIGURED_APPS += drivers/device CONFIGURED_APPS += drivers/device
CONFIGURED_APPS += drivers/ms5611 CONFIGURED_APPS += drivers/ms5611
CONFIGURED_APPS += drivers/hmc5883 CONFIGURED_APPS += drivers/hmc5883
CONFIGURED_APPS += drivers/mpu6000 CONFIGURED_APPS += drivers/mpu6000
CONFIGURED_APPS += drivers/bma180 CONFIGURED_APPS += drivers/bma180
CONFIGURED_APPS += drivers/l3gd20
CONFIGURED_APPS += drivers/px4io CONFIGURED_APPS += drivers/px4io
CONFIGURED_APPS += drivers/stm32 CONFIGURED_APPS += drivers/stm32
CONFIGURED_APPS += drivers/led #CONFIGURED_APPS += drivers/led
CONFIGURED_APPS += drivers/blinkm CONFIGURED_APPS += drivers/blinkm
CONFIGURED_APPS += drivers/stm32/tone_alarm CONFIGURED_APPS += drivers/stm32/tone_alarm
CONFIGURED_APPS += drivers/stm32/adc CONFIGURED_APPS += drivers/stm32/adc
CONFIGURED_APPS += drivers/px4fmu
CONFIGURED_APPS += drivers/hil CONFIGURED_APPS += drivers/hil
CONFIGURED_APPS += drivers/gps CONFIGURED_APPS += drivers/gps
CONFIGURED_APPS += drivers/mb12xx CONFIGURED_APPS += drivers/mb12xx
+1 -1
View File
@@ -85,7 +85,7 @@ CONFIG_ARCH_FPU=y
CONFIG_ARCH_INTERRUPTSTACK=n CONFIG_ARCH_INTERRUPTSTACK=n
CONFIG_ARCH_STACKDUMP=y CONFIG_ARCH_STACKDUMP=y
CONFIG_ARCH_BOOTLOADER=n CONFIG_ARCH_BOOTLOADER=n
CONFIG_ARCH_LEDS=y CONFIG_ARCH_LEDS=n
CONFIG_ARCH_BUTTONS=n CONFIG_ARCH_BUTTONS=n
CONFIG_ARCH_CALIBRATION=n CONFIG_ARCH_CALIBRATION=n
CONFIG_ARCH_DMA=y CONFIG_ARCH_DMA=y
@@ -1,6 +1,6 @@
############################################################################ ############################################################################
# #
# Copyright (C) 2012 PX4 Development Team. All rights reserved. # Copyright (C) 2012-2013 PX4 Development Team. All rights reserved.
# #
# Redistribution and use in source and binary forms, with or without # Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions # modification, are permitted provided that the following conditions
@@ -32,11 +32,9 @@
############################################################################ ############################################################################
# #
# Makefile to build the L3GD20 driver. # AR.Drone motor driver
# #
APPNAME = l3gd20 MODULE_COMMAND = ardrone_interface
PRIORITY = SCHED_PRIORITY_DEFAULT SRCS = ardrone_interface.c \
STACKSIZE = 2048 ardrone_motor_control.c
include $(APPDIR)/mk/app.mk

Some files were not shown because too many files have changed in this diff Show More