In most cases, really only 1 element is needed. The dynamic allocation
handles cases where more are necessary. This is all done within a locked
state, so no races can occur.
Frees roughly 2.3KB RAM.
Also, a fix for number of args passed for accelsim.
Updated to newest version of DriverFramework.
DF drvices show up now in list_devices
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
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>
The orb_advertise and/or orb_publish calls were failing because
there were not enough devmap entries allocated for all the orb
topics advertised.
The number of entries was increased from 50 to 100.
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
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>
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>
QuRT does not have a filesystem, so creating a virtual filesystem
that could be implemented as an in-memory file or a remote file
over fastRPC.
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
The following should not have been defined:
PX4_DIOC_GETPRIV
PX4_DEVIOCSPUBBLOCK
PX4_DEVIOCGPUBBLOCK
PX4_DEVIOCGDEVICEID
The actual defines are in drv_device.h and are:
DEVIOCSPUBBLOCK
DEVIOCGPUBBLOCK
DEVIOCGDEVICEID
DIOC_GETPRIV is defined by Nuttx, so mapped to SIOCDEVPRIVATE for POSIX
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
list_devices will list virtual devices starting with "/dev/".
list_topics will list topics ("/obj/")
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 list_tasks and list_devices commands will show
lists of running px4 threads and created virtual device nodes.
The list_builtins command was removes and the list of commands
will be shown if return is pressed.
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
To avoid confusion when a real device and a virtual device is
being used, changed CDev to VDev for Linux.
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
Added PX4_ISFINITE(x) to px4_defines.h to handle the differences on
NuttX and Linux.
This change also picked up some file renaming for virtual character devices
Signed-off-by: Mark Charlebois <charlebm@gmail.com>