Commit Graph

526 Commits

Author SHA1 Message Date
Mark Charlebois 2abfb7a5be Linux: added queue files for dataman support
The dataman module now works under linux using /tmp/dataman as the
file path. Two files from NuttX were added to the Linux impl for
single linked queue handling.

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-04-20 11:00:18 -07:00
Mark Charlebois 7b0783a070 Added MuORB based on virtual CDev implementation
uORB module now compiles and runs for Linux using the
virtual CDev implementation.

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-04-20 11:00:18 -07:00
Mark Charlebois f3596e555b Added
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-04-20 11:00:16 -07:00
Mark Charlebois a25ae71f99 Linux: support ld.gold
The -Ur option is not supported in gold

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-04-20 11:00:16 -07:00
Mark Charlebois aeb65702a2 Fixed support for clang 3.5
"clang-3.5 -dumpversion" returns 4.2.1 as the GCC version.

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-04-20 11:00:16 -07:00
Mark Charlebois a68f025ff9 Added support for other clang on Ubuntu 12.04
A Ubuntu 12.04 compatible version of clang-3.4.1 can be downloaded from
http://llvm.org/releases/3.4.1/clang+llvm-3.4.1-x86_64-unknown-ubuntu12.04.tar.xz

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-04-20 11:00:16 -07:00
Mark Charlebois 672ba1a43b Linux: support gcc-4.6 and c++0x
GCC 4.6 is too old for -std=c++11 but it supports -std=c++0x

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-04-20 11:00:16 -07:00
Mark Charlebois 35e00f0ba1 Added missing _PX4_IOC substitutions
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-04-20 11:00:16 -07:00
Mark Charlebois 5084a61f0e Abstractions to compile systemlib for Linux and Nuttx
Modified uint32_t casts of pointers to unsigned long for portability.
It otherwise breaks on x86_64.

Added _PX4_IOC to handle the conflice between _IOC on Linux and NuttX.

Removed use of px4::ok() because it cannot be used in a thread based
implementation. Changed to use px4::AppMgr which uses ok() on ROS.

Removed up_cxxinitialize.c from Linux build.

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-04-20 11:00:16 -07:00
Mark Charlebois 89e1b454af Linux: added support for gcc 4.6
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-04-20 10:57:01 -07:00
Mark Charlebois 566c3ed3c3 Linux: Autodetect clang-3.5 toolchain
Use clang-3.5 if found, otherwise gcc

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-04-20 10:57:01 -07:00
Mark Charlebois 62f8bd6679 Linux build support for some libs
The following libs can now be built under Linux:

   lib/mathlib
   lib/geo
   lib/geo_lookup

The constants used for ROS are now shared with Linux in
px4_defines.h

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-04-20 10:57:01 -07:00
Mark Charlebois 51a71d54c6 checksubmodules target needed for Linux build
Moved checksubmodules target back to Makefile.
NuttX download still done for Linux as it would require
too much surgery to remove it.

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-04-20 10:46:44 -07:00
Mark Charlebois 520459062d 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>
2015-04-20 10:46:43 -07:00
Mark Charlebois 838e9fc769 Refactoring for multiplatform support
Moved the NuttX specific board files to makefiles/nuttx and added
a makfiles/linux directory with sample config and board files.

Created a makefiles/toolchain_native.mk file for building for Linux
with the native system compiler. GCC or clang can be used by setting
a flag in the file.

The Linux build creates an archive file and will build the tasks as
threads. Other code changes are required to support both task based
and thread based builds.

The NuttX source should not be required for the Linux build. The
target OS (NuttX or Linux) is selected by commenting out the desired
line in setup.mk

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-04-20 10:46:43 -07:00
Johan Jansen a6c57afabd Make: Remove deprecated preflight check 2015-04-20 09:14:13 +02:00
Johan Jansen ba25f7a290 Make: Disable build of preflight check (pending removal) 2015-04-20 09:14:13 +02:00
Lorenz Meier f8cf495494 Revert "Added ability for board specific meta data generation"
This reverts commit 9ac350a7d1.
2015-04-18 11:38:23 +02:00
Don Gagne 9ac350a7d1 Added ability for board specific meta data generation
Use new @board meta data attribute for board specific ifdef support
2015-04-18 11:14:12 +02:00
Daniel Agar 207b57869d only define GIT_VERSION where it's used
-when the git revision is passed to every file as a define it causes
unnecessary ccache cache misses
2015-04-18 01:25:54 -04:00
Lorenz Meier 3ee9b441c6 Add STM32F4 discovery config. 2015-04-16 22:51:08 +02:00
Lorenz Meier 49834b11cb Merge pull request #1938 from Grawp/master
Fix generating $3_len in BIN_TO_OBJ makefile function
2015-03-21 08:10:32 +01:00
Michal Ulianko 631e518c45 BIN_TO_OBJ: Change NM radix back to hex so multiple leading zeros in NM output won't generate octal constant in C. 2015-03-21 00:31:52 +01:00
Michal Ulianko 354809bff4 BIN_TO_OBJ: Switch egrep and cut to $(GREP). Use posix format and decimal radix with $(NM). 2015-03-20 23:22:42 +01:00
Lorenz Meier 6b494ee0f0 Remove boardinfo ccommand 2015-03-20 09:43:45 +01:00
Michal Ulianko c5ae02deda Fix generating $3_len in BIN_TO_OBJ makefile function 2015-03-19 19:50:05 +01:00
Lorenz Meier 6aba6a4f88 FMUv1: Disabled RAM-hogging apps 2015-03-07 14:16:46 +01:00
Anton Matosov 72274062c1 Renamed servo_gimbal to simply 'gimbal' as HW is behind the scene and doesn't really matter here 2015-03-06 18:57:37 -08:00
Lorenz Meier 8a6698b6e6 drivers/servo_gimbal: Added servo gimbal 2015-03-06 18:57:37 -08:00
Randy Mackay 9a3ea61569 build: add oreoled to px4fmu-v2_default 2015-02-25 15:10:11 +01:00
Lorenz Meier e59aaa771c Rover: Add simple steering controller. 2015-02-19 21:51:53 +01:00
James Goppert d736311982 Added flow position estimator to default apps. 2015-02-11 21:11:23 -05:00
Lorenz Meier 769df2ff47 Toolchain: Add more compiler options, add note about -Wfloat-conversion warning (available with GCC 4.9). Needs work. 2015-02-08 12:17:35 +01:00
Lorenz Meier d441d38677 Merged master into ros 2015-02-02 21:21:51 +01:00
Lorenz Meier 344e969428 FMUv2 test: Enable sensors module 2015-02-01 13:11:24 +01:00
Lorenz Meier a3f577e642 FMUv2: Re-enable missing sensors 2015-02-01 13:11:05 +01:00
Lorenz Meier f51dd7556e FMUv1: Re-enable missing sensors 2015-02-01 13:10:45 +01:00
Thomas Gubler 0dc511a76b remove unintended/leftover changes in fmu2 default makefile 2015-02-01 12:20:54 +01:00
Thomas Gubler 68e35ef0fd remove unintended/leftover changes in test makefile 2015-02-01 12:19:42 +01:00
Thomas Gubler 84ff3c671d Merge remote-tracking branch 'upstream/master' into ros_messagelayer_merge2_attctrl_posctrl
Conflicts:
	src/drivers/px4fmu/fmu.cpp
2015-02-01 11:06:47 +01:00
Lorenz Meier 1cc4c808a8 Upgrade UAVCAN to multi pub/sub A API 2015-01-29 16:33:53 +01:00
Lorenz Meier cc7a00b96e Disable UAVCAN build until sensors use all new-style API and UAVCAN sensors base class can be reworked to use it consistently 2015-01-29 16:33:53 +01:00
Lorenz Meier 7932e2eda2 Add top to test build 2015-01-29 16:33:52 +01:00
David Sidrane 6606b56364 Updated NuttX submodule with memcpy fix, disabled run time stack checking and added modules back in 2015-01-29 04:49:39 -10:00
Thomas Gubler 1915537281 initial port of multiplatform version of mc_pos_control 2015-01-28 16:32:20 +01:00
Thomas Gubler 856b10cc1a Revert "temporarily re-enable stack checking, disable some modules to make firmware fit"
This reverts commit 27b2701340.
2015-01-28 16:29:25 +01:00
Thomas Gubler 2728889f78 Merge remote-tracking branch 'upstream/master' into ros_messagelayer_merge_attctlposctl 2015-01-28 16:29:14 +01:00
Thomas Gubler 27b2701340 temporarily re-enable stack checking, disable some modules to make firmware fit 2015-01-28 10:21:42 +01:00
Thomas Gubler ee6395c502 enable mc att multiplatform in makefile 2015-01-25 13:38:47 +01:00
Simon Wilks f5a1680fd6 Add landing detector for V1 boards as well. 2015-01-24 14:18:28 +01:00
Thomas Gubler 1ad6e00234 re-enable warnings/errors 2015-01-23 07:16:07 +01:00
Thomas Gubler 8c4fce3654 multiplatform: better publisher base class 2015-01-22 09:30:43 +01:00
Thomas Gubler 52a2a23cc7 Merge remote-tracking branch 'upstream/ros' into ros_messagelayer_merge 2015-01-21 15:50:54 +01:00
Thomas Gubler 1628999361 Revert "Fixes to make GCC 4.9 link"
This reverts commit 85b6907e1d.
2015-01-21 15:44:15 +01:00
David Sidrane 517e1e8d48 Fixed permissions 2015-01-21 14:54:25 +01:00
David Sidrane 4b8feb03cf Match the OS build's CONFIG_ARMV7M_STACKCHECK setting by using actual setting in the exported nuttx config.h file to control each board build setting of ENABLE_STACK_CHECKS in toolchain_gnu-arm-eabi.mk 2015-01-21 14:54:24 +01:00
Pavel Kirienko f6786d0be9 Removing -ffixed-r10 when stack checks aren't enabled 2015-01-21 14:54:24 +01:00
Pavel Kirienko 2ebd7099de Globally configurable stack checks, R10 is always fixed 2015-01-21 14:54:24 +01:00
Pavel Kirienko 4b1782174c INSTRUMENTATIONDEFINES assignment made non-optional 2015-01-21 14:54:24 +01:00
Pavel Kirienko 1d13edcf92 Stack checks made optional: ENABLE_STACK_CHECKS 2015-01-21 14:54:24 +01:00
Pavel Kirienko c2bc298409 Disable instrumentation for the uavcan module 2015-01-21 14:54:24 +01:00
Pavel Kirienko 569c3b7d37 Using -g3 flag instead of -g 2015-01-21 14:54:23 +01:00
Pavel Kirienko d87bb4dfcb Revert "Intrusive changes made for UAVCAN profiling. Will be reverted in the next commit (this one is needed to keep the changes in history)"
This reverts commit 4c301d9dcf180e39186fa6753c7a3d3215b3cfa7.
2015-01-21 14:54:23 +01:00
Pavel Kirienko 6bbacc4271 Intrusive changes made for UAVCAN profiling. Will be reverted in the next commit (this one is needed to keep the changes in history) 2015-01-21 14:54:23 +01:00
Thomas Gubler dcdde8ea88 Merge remote-tracking branch 'upstream/master' into ros_messagelayer_merge
Conflicts:
	src/modules/attitude_estimator_ekf/attitude_estimator_ekf_main.cpp
	src/modules/uORB/topics/vehicle_attitude.h
2015-01-21 14:41:03 +01:00
Thomas Gubler cadcad6ffb messagelayer prototype for nuttx 2015-01-21 14:27:01 +01:00
Thomas Gubler 7c3223b860 added a messageplayer prototype for ros 2015-01-21 14:26:22 +01:00
Lorenz Meier d1eac3510b DELETE DURING REBASE: Remove some apps to make space 2015-01-21 13:40:10 +01:00
Lorenz Meier 85b6907e1d Fixes to make GCC 4.9 link 2015-01-21 13:39:36 +01:00
Lorenz Meier f176147d2a Allow GCC 4.9.3 2015-01-21 11:06:57 +01:00
Lorenz Meier e8e4a3b5da Allow GCC 4.9.3 2015-01-21 11:04:56 +01:00
Johan Jansen 9ea086bf2d Astyle: Run astyle to fix code formatting 2015-01-15 14:37:51 +01:00
Johan Jansen 10a2dd8a34 LandDetector: Merged fixedwing and multicopter into one module handling both algorithms 2015-01-15 14:37:51 +01:00
Johan Jansen 642063c3b8 LandDetector: Added crude land detectors for multicopter and fixedwing 2015-01-15 14:37:50 +01:00
Thomas Gubler b2366aaa22 Merge remote-tracking branch 'upstream/master' into ros 2015-01-09 08:07:00 +01:00
Lorenz Meier adbe7246b7 Temporarily disable HoTT support 2015-01-09 07:09:58 +01:00
Thomas Gubler 0893f9fd96 remove uavcan from multiplatform build, problems with linking 2015-01-06 19:13:39 +01:00
Thomas Gubler 3436abdf0b add multiplatform makefile to work around flash size issues 2015-01-06 11:10:52 +01:00
Thomas Gubler 87650e49e1 Revert "turn off werror for now"
This reverts commit 1fe70a845d.
2015-01-05 16:50:14 +01:00
Thomas Gubler 683b06321c Revert "uavcan gives compile errors, disable for now"
This reverts commit 941ff05720.
2015-01-05 16:33:57 +01:00
Thomas Gubler 5876ff11ec mc att control multiplatform alongside normal mc att control 2015-01-05 16:12:22 +01:00
Thomas Gubler 941ff05720 uavcan gives compile errors, disable for now 2015-01-05 15:58:38 +01:00
Thomas Gubler 1fe70a845d turn off werror for now 2015-01-05 15:22:43 +01:00
Thomas Gubler 16b9f666e7 Merge remote-tracking branch 'upstream/master' into dev_ros
Conflicts:
	src/lib/mathlib/math/Matrix.hpp
	src/modules/mc_att_control/mc_att_control_main.cpp
	src/modules/uORB/topics/vehicle_status.h
	src/platforms/px4_includes.h
2015-01-05 10:02:07 +01:00
Andrew Tridgell c9e795156f makefiles: make it easier to use ccache for build on windows 2014-12-31 11:43:32 +01:00
Andrew Tridgell 6bc6739676 makefiles: removed stray spaces 2014-12-31 11:43:21 +01:00
Thomas Gubler f4e0dc2857 Merge remote-tracking branch 'upstream/master' into dev_ros
Conflicts:
	.gitmodules
2014-12-29 08:00:12 +01:00
Lorenz Meier e952324fbf Rework HoTT into a proper library, which fixes parallel build breakage 2014-12-26 20:25:31 +01:00
Thomas Gubler 25af4b266c Merge remote-tracking branch 'upstream/master' into dev_ros
Conflicts:
	.gitignore
	src/lib/uavcan
2014-12-25 09:48:15 +01:00
Daniel Agar d511e39ea7 turn on -Werror and fix resulting errors 2014-12-22 17:56:59 -05:00
James Goppert 97fdc69473 Added aerocore upload target. 2014-12-18 15:21:29 -05:00
Thomas Gubler 16618f1ada Merge remote-tracking branch 'upstream/master' into dev_ros
Conflicts:
	src/examples/subscriber/subscriber_params.c
	src/modules/mc_att_control/mc_att_control_main.cpp
	src/modules/uORB/topics/vehicle_attitude.h
	src/modules/uORB/topics/vehicle_attitude_setpoint.h
	src/platforms/px4_middleware.h
2014-12-18 12:11:05 +01:00
Thomas Gubler 851415e48e Merge commit 'aa40c69853be0dc7e79bc3084472b77f9667c1f1' into dev_ros_mcatt
Conflicts:
	makefiles/config_px4fmu-v2_test.mk
2014-12-16 10:23:41 +01:00
Thomas Gubler e1ff89ad61 add nuttx platform to fmuv1 makefile 2014-12-16 10:11:59 +01:00
Thomas Gubler 9520983e08 lots' of header juggling and small changes to make mc att control compile for NuttX and ROS 2014-12-16 08:24:51 +01:00
tumbili 736f57f436 Merge branch 'master' of https://github.com/PX4/Firmware into vtol_merge 2014-12-15 22:34:01 +01:00
Lorenz Meier ef450cc447 Enable examples by default to ensure they get maintained on API changes 2014-12-12 14:08:41 +01:00
Thomas Gubler 76457e63c5 add nuttx platform to default makefile 2014-12-10 12:38:54 +01:00
Thomas Gubler 52c35a8e20 solve conflict for definiton of FILE 2014-12-06 15:36:58 +01:00
Thomas Gubler c2e2b3d52f make param wrapper macros compatible for px4 and ros, needs cleanup 2014-12-03 17:04:15 +01:00