Commit Graph

964 Commits

Author SHA1 Message Date
Mark Charlebois 791d780bb8 BAROSIM: Fixed error in transfer function
The transfer function would previously return error if the receive
buffer length was 0. This appears to be a valid condition for
requesting a measurmement be taken but no data returned.

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-05-18 13:29:20 -07:00
Mark Charlebois 9f391b1867 NuttX: fixes for NuttX build
In the upstream tree ringbuffer.h includes the method implementations
in the header file which causes multiple definitions in the link for
other targets. Changed so ringbuffer.cpp is build separately for other
platforms and is included by ringbuffer.h on NuttX.

uORB changes do not link without uORBTest_UnitTest.cpp enabled for
the NuttX build.

px4_getopt was not exported and wasn't visible in NuttX build.

The makefiles were restored to be as close as possible to upstream
so the NuttX build builtin's work again. The code will have to be
refactored after the merge.

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-05-15 12:56:18 -07:00
Mark Charlebois a3a0d0612c QuRT: enabled more modules
rgbled is now enabled.

Saving parameters causes a crash so those commands are not enabled.

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-05-14 09:45:03 -07:00
Mark Charlebois 8e346a06fb QuRT: enable uORB, and simulator
uORB, the simulator and simulated devices now run

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-05-13 18:03:08 -07:00
Mark Charlebois 884f62878d QuRT: pthread API now working
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>
2015-05-13 16:21:52 -07:00
Mark Charlebois 3db5f3bb3b QuRT: toolchain changes
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>
2015-05-12 11:37:28 -07:00
Mark Charlebois 14cbd240ff QuRT: added qurt_log
Implement as a printf for now

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-05-11 19:38:03 -07:00
Mark Charlebois 2f434eb395 POSIX: fixups for px4_log.h change
After merge from qurt branch, fixups for posix build

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-05-11 16:14:06 -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
Mark Charlebois 0ba5305e94 QuRT: satisfy missing deps
There is no ioctl or write. Added stubs.

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-05-07 23:21:24 -07:00
Mark Charlebois 84ca66dcf7 QuRT: updated task support based on posix fixes
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>
2015-05-07 22:58:51 -07:00
Mark Charlebois 3225edfabb QuRT: Really reverted to non-posix APIs
Using non-posix APIs for now.

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-05-07 21:51:02 -07:00
Mark Charlebois ad1865ef9f QuRT: Move to POSIX API for threads
Use the pthread APIs to implement task support

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-05-07 14:55:28 -07:00
Mark Charlebois 8dfb09418b QuRT: added #include<px4_time.h> to posix unit tests
QuRT does not define usleep and sleep, so they are stubbed out
for now.

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-05-07 14:40:31 -07:00
Mark Charlebois fd3715912e QuRT: stub out missing functions
Stub out the missing functions to enable running in the simulator

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-05-07 12:54:39 -07:00
Mark Charlebois 6db77dc8bb Experimental virtual file support
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>
2015-05-06 22:12:45 -07:00
Mark Charlebois 948b47bd33 Removed px4_killall
killall and px4_killall are not used in the codebase so it was removed.

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-05-06 16:04:20 -07:00
Mark Charlebois c5237f7f6f Removed extra abstracton layer in systemlib
The calls to task_spawn_cmd, kill_all, and systemreset  were wrappers
around the px4_{task_spawn_cmd|kill_all|systemreset} implementations.

Removed the wrappers and changed all calls to the px4_ equivalents.

NuttX specific code was moved into px4_tasks.h

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-05-06 14:43:11 -07:00
Mark Charlebois 872e1ebda0 GCC fixes for warnings
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>
2015-05-06 11:45:23 -07:00
Mark Charlebois 5299f76706 POSIX: initialize before running script
The initialization functions were called after the script
commands were run causing a deadlock waiting for an
uninitialized semaphore.

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-05-06 09:51:31 -07:00
Mark Charlebois e28049a387 POSIX: changed SIGCONT to SIGALRM
QuRT doesn't seemto support SIGCONT

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-05-05 16:43:54 -07:00
Mark Charlebois 0cea93a55c POSIX and QuRT: fixed calls needing px4_ prefix
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>
2015-05-05 12:13:39 -07:00
Mark Charlebois e24405d374 POSIX: fixed hrt call and workqueue implementation
The HRT call processing normally happens via HW timer interrupt
handler. Since the POSIX port has no ISR handling, the HP work
queue is used.

Instead of irq_save() and irq_restore() calls to disable/enable
interrupts, a mutex is used to protect each queue.

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-05-05 00:27:14 -07:00
Mark Charlebois 12a25e4b63 Merge remote-tracking branch 'upstream/master' into linux
Signed-off-by: Mark Charlebois <charlebm@gmail.com>

Conflicts:
	makefiles/firmware.mk
	src/modules/commander/module.mk
	src/modules/mavlink/mavlink_ftp.h
	src/modules/mavlink/mavlink_tests/module.mk
2015-05-04 16:36:59 -07:00
Mark Charlebois ed621a6a8d POSIX: Enabled hrt queued work to be run
In STM32, the ISR handler calls hrt_call_invoke(). There is no
interrupt timer inthe POSIX port so a work item is put on the
high priority work queue to expire at the next event (in ticks)
or at the next max delay interval.

Counter wrapping is likely still not handled properly in this code.

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-05-04 16:09:00 -07:00
Thomas Gubler 44153eeaa1 ros perf counter dummy: fix warning about missing return 2015-05-02 21:46:37 +02:00
Mark Charlebois 5557ecf3d7 POSIX: Added airspeed simulator
This seems to be a dependency for the system to start up.

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-04-30 13:16:03 -07:00
Mark Charlebois a209fdc8ef Added missing lock() unlock() to MuORB
The commented out lock and unlock were determined to be needed and added back.

The unit test for VDev was updated. It showed the race between the poll and a
write that only does a poll_notify().

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-04-29 17:04:30 -07:00
Mark Charlebois c622636601 Nuttx: fixed include of systemlib/err.h
The new px4_debug.h included "err.h" instead of
"systemlib/err.h" for NuttX.

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-04-28 12:49:04 -07:00
Mark Charlebois c832f4c55c Small fixes for debug macros
Fixed print format for __LINE__ to %d

Fixed if/else that breaks with the debug macro expansion. The if/else
needs to use braces to allow macro expansion.

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-04-27 22:28:39 -07:00
Mark Charlebois 09718fa324 Revamped debug macros
Created px4_debug,h to define:

PX4_DBG
PX4_INFO
PX4_WARN
PX4_ERR

These enable OS specific mappings to be made, filtering, etc.

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-04-27 21:58:54 -07:00
Mark Charlebois a284a7b6d9 POSIX: added separators between commands run from shell
Output a separator and the command called to make the ouput easier
to read.

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-04-27 14:03:23 -07:00
Mark Charlebois 58a33dd26a Added simulated tone_alarm and enabled led for POSIX
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>
2015-04-27 14:00:06 -07:00
Mark Charlebois 7fa33d0d2b posix: workqueue uses TICK scaling from px4_defines.h
px4_defines.h defines USEC2TICK(x) and TICKS_PER_USEC.

These are now used and allow tick scaling.

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-04-27 13:48:54 -07:00
Mark Charlebois 3c957e57e7 Posix: fixed time scaling for work queues
In work queues, delay is in ticks. Needed to check elapsed time
in ticks not in milliseconds.

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-04-27 13:17:28 -07:00
Mark Charlebois 7390f50b67 Posix: cleanup of bad file rename
Deleted obsolete file and fixed renaming of wqueue_start_posix.cpp

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-04-27 12:21:00 -07:00
Mark Charlebois d913ec8dc9 Changed device::px4_device_handle_t to device::file_t
This change allowed the _posix.cpp file changes to be merged
back into the original files.

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-04-24 17:49:35 -07:00
Mark Charlebois 20d35e33da Platform header file cleanup and consolidation
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>
2015-04-24 11:45:14 -07:00
Mark Charlebois a1332e699c QuRT and POSIX changes - part 5
Last part of the main QuRT related changes

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-04-24 01:39:25 -07:00
Mark Charlebois 187f13cd70 QuRT and POSIX changes - part 4
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-04-24 01:24:31 -07:00
Mark Charlebois c802beb3d7 QuRT and POSIX changes - part 3
More staged changes to support QuRT and related POSIX changes

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-04-24 01:13:08 -07:00
Mark Charlebois 8737d77947 QuRT and POSIX changes - part 2
Second staged group of changes for QuRT and related POSIX changes

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-04-24 01:01:36 -07:00
Mark Charlebois 3336fce1f4 QuRT and POSIX changes
Partial commit of the changes for QuRT and related changes for POSIX

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-04-24 00:52:44 -07:00
Mark Charlebois a4c33f5173 QuRT: removed calls to sleep
A stub for hrt_sleep was removed. Will add back when DSPAL supports
sleep.

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-04-22 11:16:58 -07:00
Mark Charlebois 6a439f7ddc QuRT: Hello world app for QuRT
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>
2015-04-22 08:48:48 -07:00
Mark Charlebois 9ec7020e02 Make a local function static
platforms/posix/main.cpp had a local function that wasn't static.

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-04-22 08:31:41 -07:00
Mark Charlebois 93dea668dc Posix: make simulated devices always pass self tests
To facilitate testing, the simulated devices always return OK for
self tests.

rc.S was also upated to set CAL_XXXY_ID to the devid so tests pass the
calibration check.

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-04-21 23:29:07 -07:00
Mark Charlebois 02aaa403f1 Posix: removed PX4_DEVIOC* definitions
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>
2015-04-21 23:20:59 -07:00
Mark Charlebois 19162ba5be Posix: Changed PreflightCheck to read Vdev
PreflightCheck was failing because it was trying to read actual
devices instad of virtual devices.

ADCSIM had a LINUXTEST ifdef that was removed.

posix_run.sh was using the wrong path

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-04-21 17:14:52 -07:00
Mark Charlebois f3b5076d70 Linux to posix conversion
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>
2015-04-21 09:53:09 -07:00