Commit Graph
59 Commits
Author SHA1 Message Date
Lorenz Meier eb6553d923 Fix POSIX backtrace compile 2015-10-19 09:48:27 +02:00
Mark Charlebois 8e82ced5a4 Added backtrace function
Added PX4_BACKTRACE() to display stack trace for debugging

Added backtrace for HRT reschedule with 0 timeout

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-10-19 09:41:49 +02:00
James Goppert 2a60ffd554 Added stdc_format_macros for all inttypes.h includes. 2015-09-24 17:44:27 -04:00
Lorenz Meier d32f9f043b HRT: Better debugging 2015-09-20 16:43:34 +02:00
Lorenz Meier 8509c5f220 Fix clock generation on Mac OS X 2015-09-20 12:53:33 +02:00
Lorenz Meier 604644d823 POSIX: Improvements on semaphore abstraction 2015-09-20 00:26:56 +02:00
Lorenz Meier 50061a95a4 POSIX: Add sem_getvalue() abstraction 2015-09-19 18:24:14 +02:00
Lorenz Meier ef48715051 POSIX: Add pthread mutex based semaphores 2015-09-19 18:22:00 +02:00
Lorenz Meier c89f51b8ef POSIX: Fix HRT semaphores for Mac OS 2015-09-16 18:13:10 +02:00
Lorenz Meier 63f9a1e609 POSIX: 1) Really exit on CTRL-C, 2) Clean up boot log, 3) add eye-candy! 2015-09-12 15:45:19 +02:00
Lorenz Meier 0f98a7c141 OS X: Add missing time calls 2015-09-11 21:48:06 +02:00
James Goppert 1d6b31d196 Switch to cmake build system. 2015-09-07 20:37:45 -04:00
Lorenz Meier 54209af679 POSIX: Improve shell so it does not spam the user, enable CTRL-C to actually quit the application. Twiddle the app boot delay to avoid a race with the commander app. Needs a proper fix on the startup sequencing. 2015-09-06 15:37:35 +02:00
Mark Charlebois d94aa84657 Add daemon mode to posix build
In order to use upstart to run PX4 it needs to run in daemon mode.
Added ability to test if a task is running in order to gracefully
shut down muorb.

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-08-28 16:06:36 -07:00
Mark Charlebois 3a47434749 Fixes for qurt HIL build
Workaround required Eigen downgrade to 3.2. Hexagon toolchain does
not support C++11 features of newest version of Eigen.

Running make qurt_fixup will downgrade and patch Eigen for qurt.
Running make restore will revert the patch and do a git submodule update
to restore the expected Eigen version.

Added a "restore" target to undo qurt_fixup

Before doing a qurt build run:

    make qurt_fixup

That will downgrade Eigen to 3.2 and apply the require patch.
To build another target after downgrading:

    make restore

Them make the desired target (other than qurt).

Fixed type used in orb_priority to be consistent with the code
(int* was used in declaration but int32_t* used in code)

Removed unused class member variable in sensors.cpp

Added cmake fix for unit tests. The location of px4_log.c changed.

Fixed the qurt drv_hrt.c implementation to use us instead of ms for time resolution

Added px4_led.c to nuttx platform layer
Use the posix version of px4_led.c for nuttx so we don't end up with
duplicate files. It was moved out of common because it is not used by qurt.

Changed PX4_DEBUG to PX4_WARN when checking for the error condition for store_poll_waiter in vdev.cpp

Updated the px4_log.h file to make calls to the qurt_log functions.
The qurt_log function is defined in the platforms/qurt layer.

Added an option to control starting the commander module in HIL mode.

Moved the flight specific drivers to the configuration file instead of adding them
to the common tool chain file because HIL mode does not need them.

Added the uorb Subscriber and Publisher classes

Call PX4_ISFINITE macro instead of isfinite().

Added px4_led.c to nuttx platform layer
Use the posix version of px4_led.c for nuttx so we don't end up with duplicate files.
It was moved out of common because it is not used by qurt.

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-08-25 21:59:01 -07:00
Mark Charlebois 009f528266 Fixes for posix-arm and qurt builds
Ifdefed out deadcode in position_estimator_inav_main.c as the
deadcode does not compile for qurt.

Added fixes to get a successful build for posix-arm and qurt targets.
Removed CLOCK_REALTIME def from px4_time.h for qurt and removed unused
variables in att_est_q and mc_att_control.

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-08-05 18:34:46 -07:00
Mark Charlebois a96db1580f Platform cleanup - remove duplicate files
The POSIX and QURT platforms contain several duplicate files.
These files have been factored out into platforms/posix/work_queue.
The config files have been updated to include the
platforms/posix/work_queue module.

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-07-28 20:08:50 -07:00
devbharat 68e3c477ed Tested mc_att_control_m and mc_pos_control_m in jmavsim.OK. 2015-07-16 18:00:22 +02:00
Lorenz Meier abfb0bbd38 POSIX: Silence HRT red herring 2015-07-08 23:30:39 +02:00
Lorenz Meier f689321ded POSIX: HRT: Be more verbose on error 2015-07-05 13:46:49 +02:00
Lorenz Meier 7b8f7f7ac4 Posix tasks: Mark task creation 2015-07-05 13:45:42 +02:00
Lorenz Meier f0f28d5420 POSIX SIM: Reset the HRT on system boot 2015-07-04 08:35:11 -07:00
Lorenz Meier 9c60154a28 POSIX HRT Driver: Count from 0, not UNIX epoch 2015-07-02 17:27:28 +02:00
Lorenz Meier f411b7ed21 Merge branch 'getopt-cleanup-v2' 2015-07-02 00:26:57 +02:00
Mark Charlebois da2ac877f8 POSIX: Changed px4_poll to use hrt_work queue
QuRT's pthread_cancel implementation is lacking, and causes px4_poll to
always wait for the maximumn timeout. A cleaner implementation is provided
that uses the HRT work queue for posix targets.

In the future the posix code should be rtefactiored so that qurt (and other)
implementations that are duplicated, use the posix implementation.

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-06-29 19:08:06 -07:00
Mark Charlebois f7fe6a037d Converted getopt use to px4_getopt
In the posix and qurt builds, getopt is not thread safe so px4_getopt
should be used instead.

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-06-19 11:39:08 -07:00
Mark Charlebois d66b6ea701 POSIX: px4_getpid() fix
Since the PX4 code uses both px4_task and pthread APIs,
px4_getpid() must be save to call from either context.

On posix, this means we have to always return the pthread ID.

Reverted simulator change of pthread to px4_task

There may have been side effects if this was build for a target that
has process/task scoped file descriptors. It is now safe to call
px4_getpid() from this pthread context with this change for the
posix build for px4_getpid().

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-06-15 08:25:57 -07:00
Lorenz Meier 849bd4c3f7 POSIX HRT: Use correct define, formatting fixes 2015-06-13 11:43:31 +02:00
Lorenz Meier b06a533555 OS X porting: Make unit tests compile on OS X 2015-06-13 11:07:17 +02:00
Mark Charlebois fb402bc096 POSIX: Fixed remaining broke gtests
The addition of the hrt workqueue required adding some additional files to
unittests/CMakeLists.txt

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-06-11 20:22:49 -07:00
Mark Charlebois ea7d5070c5 POSIX: Fixed some of the failing gtests
The orb_advert_t change from int to void * required some fixups
for the gtests.

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-06-11 19:42:54 -07:00
Mark Charlebois 527b97e8b4 POSIX: added tone_alarm simulator
The tone_alarm simulator was added to rc.S and the warning output for a
hrt_timer with a 0 expiry times was disabled.

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-06-11 19:00:49 -07:00
Mark Charlebois e4a8f32f1b QuRT: Added HRT workqueues as per POSIX
A high rate workqueue is required that acts like an interrupt handler
for a HW timer.

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-06-11 18:13:36 -07:00
Mark Charlebois 18304a2a0d POSIX: Fixed px4_getpid() calls from shell context
When px4_getpid() was called from the shell, there was no opaque
thread ID to return. Added a special thread ID for the shell
context. This ID only works for px4_getpid() and cannot be used
for other px4_task_*() calls.

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-06-11 11:36:58 -07:00
Mark Charlebois 7bb70313da POSIX: use px4_getpid()
The posix build only has one process so calling getpid() will not
provide the expected result.

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-06-08 22:22:00 -07:00
Mark Charlebois 6cb26de74c Multi-uORB support changes - part 1
This adds support for a dynamic build for QuRT and initial
Multi-uORB changes to enable communication between the DSP and
the application processor.

This part of the changes do not affect the POSIX build. This is
enablement for the QuRT build using Multi-uORB. The second part
of the changes will be added in a new module under src/modules.

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-06-08 22:21:59 -07:00
Mark Charlebois e7abd78051 POSIX: Fixed output for list_topics, list_devices, etc
Removed extra carriage returns in output strings

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-06-08 22:20:17 -07:00
Mark Charlebois db5530e1b5 POSIX: Fixes for HRT implementation of simulated HW clock polling
There is a race condition for the accel and mag polling rates.
Whichever one gets set first, the other will be uninitialized.

Set the mag polling rate to 1ms if uninitilized.

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-06-08 22:18:57 -07:00
Mark Charlebois acfd1ea519 POSIX: added hrt_queue for handling fast periodic events
The workqueues measure time in ticks  which is typically 10ms.
Some interrupt events in Nuttx occur at about 1ms so a more
granular workqueue is needed for POSIX.

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-06-08 22:15:55 -07:00
Mark Charlebois 122c52c731 POSIX: Fixes for ARMv7 build
uint64_t needs to use PRIu64 in printf.
Clang-3.5 found an error is variable types for a compare.

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-06-02 16:55:39 +00:00
Mark Charlebois 325e063f18 POSIX: fixes for gcc
GCC complains about strict prototypes.

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-06-02 16:55:39 +00:00
Mark Charlebois af45954690 POSIX: hrt_work_lock.h to hrt_work.h
The header file now contains all hrt workqueue related prototypes.

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-06-02 16:55:38 +00:00
Mark Charlebois 6fd612a218 POSIX: fixed function prototype
Function was changed to be void but prototype was not updated

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-06-02 16:55:38 +00:00
Mark Charlebois b4152f3daa POSIX: Fixed output for list_topics, list_devices, etc
Removed extra carriage returns in output strings

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-06-02 16:55:37 +00:00
Mark Charlebois 5e95b83eff POSIX: Fixes for HRT implementation of simulated HW clock polling
There is a race condition for the accel and mag polling rates.
Whichever one gets set first, the other will be uninitialized.

Set the mag polling rate to 1ms if uninitilized.

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-06-02 16:55:34 +00:00
Mark Charlebois cced8ed69e POSIX: added hrt_queue for handling fast periodic events
The workqueues measure time in ticks  which is typically 10ms.
Some interrupt events in Nuttx occur at about 1ms so a more
granular workqueue is needed for POSIX.

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-06-02 16:55:33 +00:00
Mark Charlebois ca88251124 Fixes for gcc 4.8
The use of a non-static function without a declaration generates a
warning for gcc 4.8.

Clang-3.4 does not work when compiling for gprof. The executable always
generates a segv.

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-05-29 12:38:51 -07:00
Mark Charlebois f1f562a94d POSIX: Fixed orb_advertise failure
There were an insufficient number of devmap entries allocated and
when they ran out, new orb_advertise requests would fail.

Also added a new logging macro for the Linux build to show the
calling pthread if enabled.

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-05-21 15:35:11 -07:00
Mark Charlebois ffdc9d629c POSIX: Improved logging
The warnx and warn calls map to PX4_WARN.
Calls to errx or err genrtate a compile error.

The px4_log.h file implements a new log format:

For DEBUG and INFO:
<level> <msg>

For ERROR and WARN:
<level> <msg> (file filepath line linenum)

The verbosity can be changed by setting the macro to use
either linux_log or linux_log_verbose in px4_log.h

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-05-19 09:19:24 -07:00
Mark Charlebois a99f916bdf POSIX: Changed px4_debug.h to px4_log.h
Also changed use of printf to PX4_WARN or PX4_INFO in posix and
qurt tests.

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-05-11 16:04:39 -07:00