Lorenz Meier
c6718a5bca
Posix: Add initial stub for atomic HRT
...
The actual implementation is not atomic, as the value on the application layer would be limited.
6 years ago
Daniel Agar
320d2e9383
create PX4 platform layer initialization helper ( #11269 )
...
- starts requirements for PX4 modules (hrt, param, etc)
6 years ago
Beat Küng
4bc59092f4
lockstep_scheduler cmake: spaces -> tabs
6 years ago
Beat Küng
2a47715385
refactor lockstep_scheduler: fix class member naming convention
6 years ago
Beat Küng
828e31d3a9
lockstep_scheduler: optimize performance
...
- use a linked-list instead of std::vector. Insertion and removal are now
O(1)
- avoid malloc and use a thread_local instance of TimedWait.
It gets destroyed when the thread exits, so we have to add protection
in case a thread exits too quickly. This in turn requires a fix to the
unit-tests.
6 years ago
Beat Küng
ecbe2a3e0b
drv_hrt posix: improve performance for hrt_absolute_time()
...
Previously hrt_absolute_time() was at around 5% of the total CPU usage, now
it's around 0.35%.
6 years ago
Beat Küng
ccefc640ac
drv_hrt posix: remove unused code and remove locking from hrt_absolute_time
6 years ago
Beat Küng
5f0e6d70c5
lockstep_scheduler: use a static lock in usleep_until
...
less function calls
6 years ago
Beat Küng
e8cbc49f7a
lockstep_scheduler: remove timed_waits_iterator_invalidated_
...
Not required, since the lock is held during the whole loop iteration.
6 years ago
Beat Küng
8cdb65eed9
lockstep_scheduler: simplify LockstepScheduler::cond_timedwait & reduce locking
...
- the loop is not needed
- we optimize for the fast case and lock only if really needed
6 years ago
Beat Küng
318499f56e
lockstep_scheduler: inline get_absolute_time()
...
This is a small method that is used a lot.
6 years ago
Daniel Agar
195dbf4ab6
NuttX platform remove system (toolchain) stdc++ include path
6 years ago
karliss
6a33b797ac
drv_hrt restore dsp_offset and remove unused qurt code ( #11139 )
...
- Fixes #11134
6 years ago
Julian Oes
032e64aaf2
px4_sem: set errno, return -1 on any error
...
- Don't duplicate the ret variable to err.
- Return -1 on any error, 0 otherwise.
- Set errno to return value of pthread_cond_timedwait.
6 years ago
Julian Oes
23653f9f39
lockstep_scheduler: fix return value, remove errno
...
The API of cond_timedwait was wrong. It used return -1 and set errno
instead of returning the error as specified for pthread_cond_timedwait
which it tries to mock.
6 years ago
Lorenz Meier
0d0a556847
Fix usage of errno in POSIX semaphore error handling
...
Previous commit 98ae0186e9
changed the err variable to errno, which is not the return value we are looking for.
6 years ago
PX4 Build Bot
0636aff5d5
Update submodule nuttx to latest Sun Dec 23 21:16:39 UTC 2018
...
- nuttx in PX4/Firmware (faf082fa1876b3f96ff9c07fc91ab8211d274c60): c225d4a691
- nuttx current upstream: c225d4a691
- Changes: c225d4a691...c225d4a691
6 years ago
David Sidrane
d676325ea5
Update Nuttx with env out of memory fix
6 years ago
Julian Oes
8486b2b917
tests: properly disable shutdown test for Cygwin
6 years ago
Julian
0601214806
tests: disable shutdown and hysteresis for Cygwin
...
It seems that the hysteresis test fails every now and then, presumably
due to timing issues. The tests needs some improvements, e.g. isolating
it from the system time.
6 years ago
Julian Oes
ffb73f6496
platforms: fix redefinition for QURT
6 years ago
Julian Oes
14e5ebbbbc
platforms: fix clock build for macOS (yet again)
6 years ago
Julian Oes
06c5037025
platforms: use CLOCK_MONOTONIC
...
For the non-lockstep case we want to use CLOCK_MONOTONIC if possible.
6 years ago
Julian Oes
547dd8511b
platforms: use define for lockstep scheduler
...
Instead of using the define __PX4_POSIX_SITL it makes more sense to have
a define just to determine if the lockstep scheduler should be used.
6 years ago
Julian Oes
5280a4aba1
platforms: prevent wrap-arounds in px4_sleep
...
@bkueng found that the old implementation was likely to wrap-around
given seconds is only a uint32_t. We now cast it directly to uint64_t
and therefore should fix this problem.
6 years ago
Julian Oes
4efe4b0d15
platforms: reorg after rebase on new board config
...
The new board config changed everything, so I needed to move the
lockstep_scheduler repo.
6 years ago
Julian Oes
6d273f3bd8
px4_layer: modernize warnings
6 years ago
Julian Oes
c24f6ef943
platforms: lockstep_scheduler ain't no submodule
6 years ago
Julian Oes
357870377a
platforms: try to get submodule checked out
6 years ago
Julian Oes
e41518a08b
platforms: clean up various build/linking issues
...
This makes sure lockstep is only built for SITL builds and fixes the
existing builds.
6 years ago
Julian Oes
d75389b2e4
platforms: consolidate latency_buckets
...
These symbols were duplicated all over the place.
6 years ago
Julian Oes
843033d530
platforms: remove unused function
6 years ago
Julian Oes
98ae0186e9
px4_sem: use px4_sem on all POSIX system
...
This uses the "fake" px4_sem based on mutex and condition_variable on
all POSIX system, not just macOS and Cygwin. This means that we can
change px4_sem_timedwait under the hood and inject the simulated time.
6 years ago
Julian Oes
3e6e1f5c2b
POSIX: use lockstep_scheduler to fake time
...
This integrates the lockstep_scheduler, so that the system time is set
by the mavlink HIL_SENSOR message.
This means that the speed factor is removed and the speed is entirely
given by the simulator.
6 years ago
Julian Oes
f0ce300744
platforms: move latency_buckets to perf.c
6 years ago
Julian Oes
fa8ac612ab
POSIX: use C++ for drv_hrt (file was renamed)
6 years ago
Julian Oes
5df333fa96
POSIX: include lockstep_scheduler in build
6 years ago
Julian Oes
fa31d95fd8
Renamed drv_hrt.c to drv_hrt.cpp
6 years ago
Julian Oes
db6de38b19
Work in progress to support a speed factor in SITL
...
These contains some rough changes trying to get SITL to speed up by a
SPEED_FACTOR.
This platform time code probably requires some more thought and refactor
but this gets a demo at 4x working.
6 years ago
Julian Oes
5b9dea5604
Replacing usleep with px4_usleep
...
This is a step towards isolating time from the system.
6 years ago
TSC21
870c513aad
readd CMAKE_RUNTIME_OUTPUT_DIRECTORY install for the posix build
6 years ago
TSC21
a6121e1655
Cmake build: do not change CMAKE_RUNTIME_OUTPUT_DIRECTORY if building with catkin
6 years ago
James Goppert
c7eb21be86
Fix catkin/ROS build paths.
6 years ago
Kārlis Seņko
c1d50d35d3
Move common shmem parameter declarations to shmem.h.
6 years ago
Kārlis Seņko
859b242cb8
Fix some dynamic linking errors.
...
_Stof, bsearch, param_find_changed
6 years ago
Daniel Agar
fd8fe29ef3
vscode update targets and gdb debugging
6 years ago
PX4 Build Bot
a922d4e70e
Update submodule nuttx to latest Wed Dec 5 00:37:51 UTC 2018
...
- nuttx in PX4/Firmware (eddfa7421c4ca2eb0969498093e09fa834e920bd): 166d898c70
- nuttx current upstream: d07a1d459e
- Changes: 166d898c70...d07a1d459e
d07a1d4 2018-12-04 Beat Küng - [REJECTED] arm/include/math.h: remove _PARAMS macro (#42 )
6 years ago
Daniel Agar
1f8c0e79e8
cmake toolchains force cache cpu flags and don't append
...
- these flags were accumlating on top of each other anytime cmake had to reconfigure
6 years ago
Daniel Agar
dbee6380ee
cmake move custom upload helpers to boards/
6 years ago
Daniel Agar
1efad64f0c
bebop move flow driver to board directory
6 years ago