Commit Graph

381 Commits

Author SHA1 Message Date
tumbili 24ac4c9891 remove usleep in gyrosim 2015-06-24 09:19:59 +02:00
Mark Charlebois 7734195242 gpssim: cleaned up gpssim code
The gpssim code was named gps_sim vs being consistent with other
simulators (gpssim). It also used warnx and errx and had lots of
commeted out code.

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-06-18 09:02:30 +02:00
Mark Charlebois ed58e83460 gyrosim: removed dead code from gyrosim
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-06-15 18:08:22 -07:00
Mark Charlebois 729653ba71 SITL: changed posix_default to posix_sitl
The SITL build is now the default posix build.

The linker script for posix was moved to makefiles/posix.
The rc.S file was moved to posix-configs/SITL/init/
The POSIXTEST board definition is now SITL

To run the SITL test run:

make sitlrun

This replaces the make posixrun target.

The build directory is now Build/posix_sitl.build/

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-06-15 09:51:07 -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
Mark Charlebois 872a26e6da Fixed passed ot open() for O_CREAT
In nuttx the mode parameter to open is not required but in Linux,
and per the POSIX spec, mode is required if the O_CREAT flag is
passed.

The mode flags are different for NuttX and Linux so a new set of
PX4 defines was added:

PX4_O_MODE_777 - read, write, execute for user, group and other
PX4_O_MODE_666 - read, and write for user, group and other
PX4_O_MODE_600 - read, and write for user

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-06-14 11:26:40 +02: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
Lorenz Meier 2fc069bd63 Merge pull request #2350 from PX4/master_versioning_fix
Back Port of Git Versioning - without side effects
2015-06-13 00:07:19 +02:00
Lorenz Meier 3b0d766fd8 Merge pull request #2353 from andre-nguyen/offb_NaN_fix
fix NaN yaw breaking attitude setpoints when going back into posctl from offboard
2015-06-13 00:01:24 +02:00
David Sidrane 5acc4ee43b Back Port of Git Versioning - without side effects Part 2 2015-06-12 06:54:04 -10:00
Mark Charlebois 4d1ae6269b POSIX: Added PX4_ROOTFSDIR to file paths
Set a default path relative to current dir for the posix target.

Running make posixrun will create the required directoroes and then run
mainapp from its build location.

PX4_ROOTFSDIR is set to nothing for nuttx.

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-06-11 21:36:13 -07: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 9ef7db6a36 QuRT: Added missing hrt workqueue files
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-06-11 18:16:29 -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
Elikos default 9605df75da fix NaN yaw breaking attitude setpoints when going back into posctl from offboard 2015-06-11 20:28:47 -04:00
Mark Charlebois 83bcb95999 POSIX: Added sleep command
The baro was not fully initialized when the sensors module tried to
open it. Added a sleep command and a sleep 2 to rc.S so the baro
is initialized by the time the sensors module tried to read it.

Fixed other noisy errors

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-06-11 17:28:46 -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 cb231e89f6 QuRT: Changes to enable qurt target to build
QuRT doesn't support unlink and does not provide getpid().
The DSPAL layer provides access to usleep so an implementation is
no longer needed.

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-06-08 22:22:00 -07:00
tumbili 5694e37854 fix reading baro values from simulator 2015-06-08 22:21:59 -07:00
Mark Charlebois 82b90281e9 Cleanup of copyright headers
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-06-08 22:21:59 -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
tumbili 4aa4038e27 increase number of arguments passable to apps 2015-06-08 22:21:59 -07:00
tumbili 9a4bee834d added gpssim driver 2015-06-08 22:21:58 -07:00
tumbili aef3f37ae0 enable reading sensor data from simulator module for SITL 2015-06-08 22:21:58 -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
Lorenz Meier fe82b412f6 Merge pull request #2269 from mcharleb/uorb-posix-fix
Created px4_access to handle check of virtual files
2015-06-04 08:39:56 +02:00
Mark Charlebois f985a48fbc Created px4_access to handle check of virtual files
uORBManager_posix.cpp did a stat to see if a file exists but the
file is actually a virtual file. Using stat was incorrect because
it required a stat buffer that was never used. The POSIX access
function is a better choice so I created a px4_access version to
handle virtual files.

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-06-03 16:22:14 -07:00
Mark Charlebois f763c4cc0e POSIX: fixed type used in USEC2TICKS
The macro was using a constant defined as a long instead on an
unsigned long. Made corresponsing changes to barosim.

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-06-03 11:49:28 -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
Lorenz Meier 9882b78383 Merge pull request #2248 from mcharleb/gyrosim-fix
Gyrosim: Fixed constant looping
2015-06-02 01:40:49 -07:00
Lorenz Meier 00fc4b5f13 Merge pull request #2256 from mcharleb/fixes-for-gcc
Fixes for gcc 4.8
2015-06-02 01:35:20 -07:00
Roman 6bc0d4d03b add definition of MAX_RAND 2015-06-01 11:14:45 +02: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 2d85578599 Gyrosim: Fixed constant looping
Gyrosim would call measure continuously because the write_checked_reg
was failing. There is no need to check faked reg writes in the
simulator so that code was removed.

The delay that was added to the simulator to pace the gyrosim reads
was also removed now that the source of the problem was determined.

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-05-28 11:20:30 -07:00
Lorenz Meier be3551136a Airspeed sim: Use proper constant names 2015-05-27 21:16:59 +02:00
Mark Charlebois 1ca05aaa64 orb_advert_t changed to void * and checks changed to nullptr
The existing orb_advert_t use thoughout the code sometimes tries
to treat it as a file descriptor and there are checks for < 0
and ::close calls on orb_advert_t types which is an invalid use
of an object pointer, which is what orb_advert_t really is.

Initially I had changed the -1 initializations to 0 but it was
suggested that this should be nullptr. That was a good recommendation
but the definition of orb_advert_t had to change to void * because
you cannot initialize a uintptr_t as nullptr.

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-05-27 14:42:49 -07:00
Mark Charlebois 180c8b0cb0 Missed another < 0 check
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-05-27 14:41:33 -07:00
Mark Charlebois a734fc96d1 extensive orb_advert_t fixes
The calls to orb_advertise were being mishandled throughout the code.
There were ::close() calls on memory pointers, there were checks
against < 0 when it is a pointer to a object and values larger than
0x7ffffffff are valid. Some places orb_advert_t variables were
being initialized as 0 other places as -1.

The orb_advert_t type was changed to uintptr_t so the pointer value
would not be wrapped as a negative number. This was causing a failure
on ARM.

Tests for < 0 were changed to == 0 since a null pointer is the valid
representation for error, or uninitialized.

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-05-27 14:41:33 -07:00