Initial Linux support including execution shell

Uncomment the following line in setup.mk and comment out the line above
to enable the Linux build.

   export PX4_TARGET_OS	 = linux

The build uses the clang compiler by default. The final bundled executable
is mainapp located in:

   Build/linux_default.build/mainapp

When you run mainapp it will provide a list of the built-in apps. You can
type in the commands to run such as:

   hello_main start

Because the Linux build is threaded and does not support tasks or processes,
it cannot call errx, exit() _exit(), etc. It also requires unique scoped
variables to test if a thread is running or if an application should exit.
The px4::AppMgr class was added in px4_app.h for this purpose. The
hello sample app demonstrates how this is used.

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
This commit is contained in:
Mark Charlebois
2015-04-20 10:46:43 -07:00
parent 838e9fc769
commit 520459062d
22 changed files with 1229 additions and 24 deletions
+15 -20
View File
@@ -5,18 +5,13 @@
#
# Use the configuration's ROMFS.
#
ROMFS_ROOT = $(PX4_BASE)/ROMFS/px4fmu_common
#ROMFS_ROOT = $(PX4_BASE)/ROMFS/px4fmu_common
#
# Board support modules
#
#MODULES += drivers/dxl
#MODULES += drivers/i2c_pwm
#MODULES += drivers/lemonrx
#MODULES += drivers/mpu9x50
#MODULES += drivers/um7
MODULES += drivers/device
MODULES += modules/sensors
#MODULES += drivers/device
#MODULES += modules/sensors
#
# System commands
@@ -27,38 +22,38 @@ MODULES += modules/sensors
# General system control
#
#MODULES += modules/mavlink
MODULES += modules/mavlink
#MODULES += modules/mavlink
#
# Estimation modules (EKF/ SO3 / other filters)
#
MODULES += modules/attitude_estimator_ekf
#MODULES += modules/attitude_estimator_ekf
#
# Vehicle Control
#
MODULES += modules/mc_att_control
#MODULES += modules/mc_att_control
#
# Library modules
#
MODULES += modules/systemlib
MODULES += modules/systemlib/mixer
MODULES += modules/uORB
MODULES += modules/dataman
#MODULES += modules/systemlib
#MODULES += modules/systemlib/mixer
#MODULES += modules/uORB
#MODULES += modules/dataman
#
# Libraries
#
MODULES += lib/mathlib
MODULES += lib/geo
MODULES += lib/geo_lookup
MODULES += lib/conversion
#MODULES += lib/mathlib
#MODULES += lib/geo
#MODULES += lib/geo_lookup
#MODULES += lib/conversion
#MODULES += lib/utils
#
# Linux port
#
MODULES += platforms/linux/px4_layer
MODULES += platforms/linux/publisher
MODULES += platforms/linux/hello