The use of std::map and static initialization was an issue.
The code was refactored to not use static initialization.
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
Reworking toolchain and main.cpp for QuRT to a final link can be
done and the apps.h file is autogenerated.
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
The posix layer implementations should work on QuRT.
QuRT needs to provide a way for getting the current time.
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
ld.gold does not support the -Ur flags and it seems some people have
ld as a link to ld.gold.
Made LD = ld.bfd to avoid confusion.
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
GCC was more picky about prototypes for inlines being required.
The generate_listener.py script used incorrect printf formats and
was casting %f params to float, but printf casts all %f params to
double per the spec.
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
The build fails when modules override this flag with a larger value,
and this lower value is still checked. The new flag seems to be in
addition to the old flag, not a replacement.
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
There were some missed calls to open and ioctl that need to be
px4_open and px4_ioctl.
QuRT also does not provide usleep() so px4_time.h has to be included
in files calling usleep.
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
The variable MAVLINK_SRC was defined and then redefined.
Commented out the first definition and moved beside that overriding
definition for visibility.
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
The changes to the simulator added an include of
mavlink/include/v1.0/... to simulator.h which was not in the included paths.
The included header file also causes clang to issue a -Wpacked warning that
had to be silenced.
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
Added simulated tone_alarm class and enabled led class for posix build.
The simulator implements the led_init, led_on, led_off, led_toggle calls.
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
Removed obsolete porting cruft from px4_XXX.h files and merged the
POSIX changes in PreflightCheck_posix.cpp back to PreflightCheck.cpp
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
This patch is required for QuRT. comlpex.h defines "I" and it replaces "I" in the
enum definition without this patch creating an error.
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
DSPAL for QuRT is still missing the pthreads exports and there is no
exported sleep function. These functions are stubbed out for the time being.
This is based on the 6.4.05 version of the Hexagon tools.
The Hexagon tools and DSPAL are needed to build the qurt target.
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
Changed "linux" target to "posix". Most of the changes are shared with
QuRT and with OSX. The Linux specific parts are in for i2c which uses
<linux/i2c.h> and <linux/i2c-dev.h>.
There is also a check for __PX4_LINUX in mavlink for a tty ioctl that is
not supported.
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
The commander module now compiles for Linux.
state_machine_helper_linux.cpp iterates over the virtual devices vs
all devices under /dev as per NuttX when disabling publishing.
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
The name of the app was adc but should have been adcsim.
Added a barometer simulator.
This will allow ms56711_linux to depend on real devices and not
simulation.
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
This is a bug and is unsafe. I am not going to change the code but
it needs to be changed to a cast to int or a <= as it is unsafe to
check for equality with 0.0F.
Disabled warning for GCC 4.9 for now.
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
The getopt command uses global variables and is not thread safe.
Created a minimal px4_getopt version that supports options with
or without an arg, and random placement of options on the command line.
This version modifies the order of the args in argv as does the
POSIX version of getopt.
This assumes that argv[0] is the program name. Nuttx may not support
that properly in task_spawn.
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
The simulator satisfies the dependencies for an accelerometer
being present.
The accel code compiles but is not fully functional.
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
The build will now fail if clang is not found. To force the use
of GCC, use:
make USE_GCC=1
The toolchain makefile was modified so it no longer checks for
various versions of clang if USE_GCC=1 is passed.
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
Disabled gcc warnings that are tripped by Eigen.
Removed signal code that is not needed in Linux port and was
causing gcc warnings.
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
PX4 uses NuttX data structures throughout so those data structures
were preserved and used to implement high and low priority queues.
A unit test for the work queues was added.
The polling rate of the queues are set in px4_config.h in
CONFIG_SCHED_WORKPERIOD. The units are milliseconds.
Signed-off-by: Mark Charlebois <charlebm@gmail.com>