Commit Graph

589 Commits

Author SHA1 Message Date
Julian Oes 0c926106f1 param_shmem.c: comment out locking on Snappy
The param locking doesn't seem to be working on Snapdragon, so let's
just comment it out again.
2017-03-08 15:44:31 +01:00
Lorenz Meier 5c524e15f8 Battery params: Enforce system reboot 2017-02-27 16:37:08 +01:00
Lorenz Meier 029c6de4a9 Battery estimator: Warn on dangerously low levels.
We need to differentiate between a level where the user should act and where we are about to fall out of the sky (emergency). This helps performing more suitable failsafe actions.
2017-02-27 09:03:20 +01:00
Beat Küng cfa84954ea param_get: add null-pointer check
If param_find() returned PARAM_INVALID, and this was directly passed to
param_get(), param_get_value_ptr() returned null and we read garbage data
(or segfaulted on systems with virtual memory).
On px4fmu-v2, this happened for the param ATT_VIBE_THRESH in sensors.
Because of the recently added parameter scoping, this param got pruned, as
it's defined in attitude_estimator_q.

credits for finding this go to Jeyong Shin (jeyong).
2017-02-25 11:02:15 +01:00
Beat Küng a4050db766 param: comment what the lock is needed for 2017-02-17 11:27:08 +01:00
Beat Küng df8f0da70c param & param_shmem: enable locking
We need to protect access to the param_values array. This is dynamically
allocated and resized (utarray_reserve() calls realloc). If some thread
was iterating the array while another was resizing the array, the first one
would iterate on a freed array, thus accessing invalid memory.

On NuttX this could lead to hardfaults in rare conditions.

Unfortunately we need to initialize the semaphore on startup, by calling
sem_init(). This adds a param_init() method called by every board/config
that uses the params (at least I think I've found all of them)
2017-02-17 11:27:08 +01:00
Beat Küng fa3a6b890c param & flashparam param_export: use value directly instead of calling param_get
This call is not needed, and will avoid deadlocks when locking is enabled.
2017-02-17 11:27:08 +01:00
Beat Küng 42967df63f param command: use param_* calls even if flash-based params are enabled
This will ensure proper locking.
2017-02-17 11:27:08 +01:00
Beat Küng 68bee1b847 flashparams: remove the locking stubs
locking will be done in the params module
2017-02-17 11:27:08 +01:00
Kabir Mohammed 569251dc2e mavlink_receiver : Add external estimator interface 2017-02-15 21:47:51 +01:00
Paul Riseborough 22c8c59829 Thermal Calibration - add parameter required to control max starting temperature 2017-02-12 09:21:37 +01:00
Paul Riseborough 93a70c2d0b systemlib: Fix parameter name error 2017-02-12 09:21:37 +01:00
Paul Riseborough c901c4b39e Thermal Calibration - add parameter required to control minimum starting temperature 2017-02-12 09:21:37 +01:00
Paul Riseborough 693cc4a533 Update SYS_CAL_TEMP parameter name and description
We will be adding another parameter to set min starting temp, so this name needs to be made less generic.
Fixes typographical errors in the description
2017-02-12 09:21:37 +01:00
Daniel Agar 317595cff3 SYS_COMPANION add 115200 normal telem 2017-02-08 08:35:29 +01:00
David Sidrane 3668047e6c board_serial uses simpler common bord indentity api 2017-02-04 22:27:04 +01:00
Beat Küng ffacc6f64a param SYS_STCK_EN: enable stack checking by default 2017-02-04 12:15:59 +01:00
Beat Küng 32ed939ea4 param_shmem: readd dropped static to function definition 2017-02-03 13:57:48 +01:00
Beat Küng a802caca87 param: add param_notify_changes() method
Can be used for example after several calls to
param_set_no_notification() to avoid unnecessary system notifications,
as it is an expensive change.
2017-02-03 13:57:48 +01:00
Paul Riseborough 4ff5e7c5ab systemlib 2017-02-02 23:54:06 +01:00
Paul Riseborough 8aa91512e9 systemlib: Add parameters to control thermal calibration startup behaviour 2017-02-02 23:54:06 +01:00
Daniel Agar 96e51f7c59 clang-tidy remove redundant 2017-02-01 22:15:50 -05:00
Daniel Agar e927f3e040 clang-tidy modernize-use-nullptr 2017-02-01 22:15:50 -05:00
Daniel Agar 0bc3c8dfc4 astyle src/modules/systemlib 2017-01-29 01:18:32 +01:00
David Sidrane 242f563d44 Adds a board common API for retriving the SoC' Silicon revision data/errata
This abstraction will support mcu's other than the stm32 family.
    It moves the systemlib/mcu_version.c functionality to
    common/stm32/board_mcu_version.c
2017-01-26 08:39:12 +01:00
David Sidrane 5a5cfdbbe3 mcu_version remove mcu_unique_id
Using board cvommon UUID api thefore Removed mcu_unique_id
2017-01-25 07:43:11 +01:00
David Sidrane 24f5461402 systemlib/board_serial uses common board api for UUID 2017-01-25 07:43:11 +01:00
David Sidrane 1abd629461 Move common macros to systemlib/px4_macros.h 2017-01-24 21:18:28 +01:00
David Sidrane 9665db3efc Use px4_config.h not board_config.h 2017-01-21 11:45:36 +01:00
Lorenz Meier 084e714f62 Mixer: Fix yaw throttle adjustment
When a motor hits a limit we only want to lower the collective throttle as much as the total limit, not per motor hitting the limit.
2017-01-21 08:33:51 +01:00
Lorenz Meier fc2970b309 Helicopter mixer: Fix out of bounds checks 2017-01-14 07:47:03 -08:00
Stephan Brown 67a484ac34 Make parameter generation also depend on the scripts that run. Address some review comments. 2017-01-06 09:58:58 +01:00
Stephan Brown 92b2395ff6 param: Fix another off by 1 error and a formatting issue. 2017-01-06 09:58:58 +01:00
Stephan Brown bf57e86dc2 param: Fix an off by 1 issue and some style fixes. 2017-01-06 09:58:58 +01:00
Stephan Brown 99228bdeb1 param: Use utarray_find when looking for changed parameters and use a binary search for finding param handles by name. 2017-01-06 09:58:58 +01:00
Lorenz Meier b3ce3cbaff Simple mixer: Remove incorrect pre-parser and replace with fixed central implementation 2017-01-03 20:32:33 -05:00
Lorenz Meier dd05ff5156 Multirotor mixer: Remove incorrect pre-parser and replace with fixed central implementation 2017-01-03 20:32:33 -05:00
Lorenz Meier ff18140cf4 Mixer: add string wconditioning check.
This introduces a correctly designed pre-check for the input parsers. This fixes the mixer unit test and should fix all issues occuring on real hardware.
;
2017-01-03 20:32:33 -05:00
Lorenz Meier 2cfcf3402e Systemlib: Header cleanup 2016-12-27 21:00:51 +01:00
Lorenz Meier 5b70522541 Mixer: Make reset operation more robust
This change makes the operation more robust as it flags the whole group invalid in the first step. This should not be confused with being thread-safe - to be thread-safe, all accesses to _first and the following linked list need to be guarded by a mutex. This should be done outside of the mixer in the driver though, as the method depends on the board architecture.
2016-12-26 13:41:36 +01:00
Beat Küng 41dc34204c version cleanup: move all version information into version.c and use a common API
The provided versioning information is the same, except for some additions,
like OS version (which still need to be implemented on NuttX).
2016-12-21 11:35:10 +01:00
Mark Whitehorn 8962eaa944 add new asymmetric airframe for Spedix S250AQ 2016-12-21 11:00:29 +01:00
David Sidrane 3eee469fbc Display the irq stack usage on the for the init thread (pid = 0) 2016-12-21 08:34:22 +01:00
David Sidrane 1781801151 Scope irq_state to function using it 2016-12-21 08:34:22 +01:00
David Sidrane 056bd5527d New NuttX debug API 2016-12-21 08:34:21 +01:00
David Sidrane 5661370944 Changed to Upstream NuttX Instrumentation changes 2016-12-21 08:34:21 +01:00
David Sidrane dc8c6ea5e5 White space fixes 2016-12-21 08:34:21 +01:00
David Sidrane d09cd77777 Adding hardfault logging application 2016-12-21 08:34:20 +01:00
David Sidrane 0177e250f4 STM32 Serial Number location is defined in NuttX 2016-12-21 08:34:20 +01:00
Lorenz Meier 83b177c5ad DC mixer: Fix geometry for Iris 2016-12-19 20:39:48 +01:00