Commit Graph

32 Commits

Author SHA1 Message Date
Mark Charlebois 47beddc88f Linux: Fixed hil crash with no args passed
The hil module did not check for argc < 2.

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-04-20 11:37:51 -07:00
Mark Charlebois e9c2e08770 Added initial QuRT support
Added the basic files to start building for QuRT

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-04-20 11:37:51 -07:00
Mark Charlebois cf71db74d7 Support to specify build time OS target
Now run:

make PX4_TARGET_OS=nuttx

or

make PX4_TARGET_OS=linux

To test the linux build and make sure that the required directories
exist, run:

make linuxrun

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-04-20 11:16:26 -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 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 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
Thomas Gubler 2728889f78 Merge remote-tracking branch 'upstream/master' into ros_messagelayer_merge_attctlposctl 2015-01-28 16:29:14 +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
Thomas Gubler c2e2b3d52f make param wrapper macros compatible for px4 and ros, needs cleanup 2014-12-03 17:04:15 +01:00
Pavel Kirienko 56649bd10a Merge branch 'master' into uavcan 2014-07-08 19:51:19 +04:00
Lorenz Meier 4c2cc65ca6 Cleaning up sub modules 2014-07-07 17:18:54 +02:00
Pavel Kirienko 7813566e66 Initial UAVCAN integration. The library compiles successfully, CAN driver appears to be working properly. There is one hardcoded path in the module makefile that needs to be fixed; plus the compilation will likely fail unless arch/math.h contains log2l() 2014-05-06 19:30:45 +04:00
Lorenz Meier 686d150800 Merge branch 'fmuv2_bringup' of github.com:cvg/Firmware_Private into multirotor
ge aborts
2013-08-23 09:28:43 +02:00
px4dev f70a4b3b70 Add support for adding extra files to the ROMFS from the config.
If there is an IO firmware image already built when we build the corresponding FMU ROMFS, copy it into the ROMFS. Note - due to there being no fixed build ordering, to be certain that you have the most current IO firmware, you must build the IO firmware explicitly first.
2013-08-22 23:47:55 -07:00
Lorenz Meier fab110d21f Moved math library to library dir, improved sensor-level HIL, cleaned up geo / conversion libs 2013-08-21 18:13:01 +02:00
px4dev b911d37975 Merge a path definition from the mainline. 2013-08-04 19:37:08 -07:00
px4dev 9d6ec6b365 Restructure things so that the PX4 configs move out of the NuttX tree, and most of the PX4-specific board configuration data moves out of the config and into the board driver.
Rename some directories that got left behind in the great board renaming.
2013-08-02 22:34:55 -07:00
px4dev b4029dd824 Pull v2 pieces up to build with the merge 2013-07-07 17:53:55 -07:00
Lorenz Meier 5375bb5b86 Cleanup, WIP, needs a NuttX checkout to Firmware/NuttX now 2013-06-01 01:04:32 +02:00
px4dev edf96fc808 Remove some naked command invocations. 2013-04-28 12:47:34 -07:00
Lorenz Meier 6479ebcc73 General app cleanup for FMU 2013-04-28 14:54:06 +02:00
Lorenz Meier 13fc670386 Moved last libs, drivers and headers, cleaned up IO build 2013-04-28 09:54:11 +02:00
px4dev 01e427b17c Merge working changes into export-build branch. 2013-04-26 16:14:32 -07:00
px4dev b6218794c6 Stick copyrights on the major moving parts of the build system 2013-02-23 22:01:00 -08:00
px4dev ddc405935e Cosmetic tweaks to variable output.
Comment on the need to retain the double-slash at the WORK_DIR boundary.
More toolchain documentation.
2013-02-23 22:01:00 -08:00
px4dev 6b215be739 Use indirect calls for all commands (echo, make, etc.)
Replace our dependency on xxd with a toolchain call, and implement the backend using objcopy evil for the default toolchain.
2013-02-23 22:01:00 -08:00
px4dev d24599931a APP -> MODULE
remove as many duplicate slashes, etc. as seems practical
2013-02-23 22:01:00 -08:00
px4dev 8d7621079a Checkpoint: application framework makefile done 2013-02-23 22:00:59 -08:00
px4dev 50739c1843 platform -> board 2013-02-23 22:00:59 -08:00
px4dev abe48bd714 Auto-generate builtin command prototypes.
Tidy up path configuration, etc.
2013-02-23 22:00:59 -08:00