Commit Graph
100 Commits
Author SHA1 Message Date
Pavel Kirienko 5788701cc7 Replaced warn() with PX4_WARN() 2017-04-06 12:05:57 +02:00
Pavel Kirienko 02a9ccc4f2 Removed dependency on <algorithm> 2017-04-06 12:05:57 +02:00
Pavel Kirienko 098b57534d UAVCAN GNSS bridge: proper handling of various time bases 2017-04-06 12:05:57 +02:00
Pavel Kirienko 8e61ed9b77 Republishing GNSS Fix2 if no GNSS publishers are available on the bus 2017-04-06 12:05:57 +02:00
Pavel Kirienko 14249d3318 UAVCAN GNSS bridge status output shows whether support for the old Fix message is active 2017-04-06 12:05:57 +02:00
Pavel Kirienko 75c45b62d7 UAVCAN GNSS Fix2 handling 2017-04-06 12:05:57 +02:00
Pavel Kirienko 32ac1288ba Libuavcan update 2017-04-06 12:05:57 +02:00
Pavel Kirienko 2b2c307eac Performance audit (intentionally duplicates #6829) (#6847)
* UAVCAN ESC output: removing ESC output channels from published message that are always zero. This allows the UAVCAN stack to always transfer only the minimum number of output values, avoiding redundant zeroes and the associated increase in bus load and CPU time

* Added a separate mixer file for CAN quadrotor

* Sampling profiler improvements

* PMSP: Output more endpoints

* Matrix update

* libc usage workaround

* Removed UAVCAN perfcounters

* Matrix submodule update
2017-03-18 04:16:20 -10:00
Pavel Kirienko 21e04c9f7a UAVCAN performance audit (#6829)
* UAVCAN ESC output: removing ESC output channels from published message that are always zero. This allows the UAVCAN stack to always transfer only the minimum number of output values, avoiding redundant zeroes and the associated increase in bus load and CPU time

* Added a separate mixer file for CAN quadrotor

* Sampling profiler improvements

* PMSP: Output more endpoints

* Matrix update

* libc usage workaround

* Removed UAVCAN perfcounters
2017-03-18 03:47:09 -10:00
Pavel Kirienko 3a332bb11a Printing all online nodes within UAVCAN status output. This feature increased memory footprint by about 150 bytes. 2016-10-23 15:26:10 +02:00
Pavel Kirienko 9b0ab83f9b Fixed misuse of the preprocessor 2016-10-23 15:26:10 +02:00
Pavel Kirienko eff6a7b5d0 get_next_active_node_id() - starting from 0 2016-10-23 15:26:10 +02:00
Pavel Kirienko 24e90e3c90 UAVCAN servers: fixed member initialization; removed dead stuff 2016-08-18 17:14:53 +02:00
Pavel Kirienko d12be196a2 Fixed #5153 2016-08-18 17:14:53 +02:00
Pavel Kirienko 2784c3c5f0 Improved uavcan activity indication 2016-08-18 17:14:53 +02:00
Pavel Kirienko 64d7946cdc Fixed beep duration 2016-08-18 17:14:53 +02:00
Pavel Kirienko 36efc8c83e Fixed beeping 2016-08-18 17:14:53 +02:00
Pavel Kirienko 61ffc6c432 Fixed implementation of the ESC auto-enumeration feature 2016-08-18 17:14:53 +02:00
Pavel Kirienko 2fad9a6397 ESC status: printing temperature in Celsius 2016-08-18 17:14:53 +02:00
Pavel Kirienko 42031ab572 Better beeping during ESC enumeration 2016-08-18 17:14:53 +02:00
Pavel Kirienko e27d3f4e13 Added new configuration parameter UAVCAN_ESC_IDLT.
This parameter, when enabled, enforces that the UAVCAN ESC driver never outputs zero throttle
while the system is armed. This feature is disabled by default, so the change will not break
the experience of current users.
2016-08-18 17:14:53 +02:00
Pavel Kirienko ef343dc452 STM32 CAN driver moved from .data to heap; partially resolves #4677 (#4681) 2016-05-29 13:54:45 +02:00
Pavel Kirienko c08eec0a23 Fixed stack overflow in UAVCAN process (#4643)
* Increased uavcan stack size; the old value of 1800 was insufficient

* Removed a misleading warning message from uavcan servers initialization
2016-05-26 20:00:10 +02:00
Pavel Kirienko a268845f1d Cleaned up UAVCAN ioctl codes 2016-05-17 08:56:02 +02:00
Pavel Kirienko 11a31d5ecb ESC command transfer priority assigned a high value. This change is not directly related to the current PR, but this change seems minor enough to be pulled in with it. 2016-03-14 09:07:46 +01:00
Pavel Kirienko 1a64b5fa01 Assigned a low transfer priority value for hardpoint commands 2016-03-14 09:07:46 +01:00
Pavel Kirienko 8fd05e81b7 Fixed string literals after autoformatting (astyle is stupid) 2016-03-14 09:07:46 +01:00
Pavel Kirienko 6c3af77937 Fixed hardpoint controller initialization 2016-03-14 09:07:46 +01:00
Pavel Kirienko 1b75da8103 UAVCAN better usage help 2016-03-14 09:07:46 +01:00
Pavel Kirienko 1ac88ec034 Improved hardpoint command handling 2016-03-14 09:07:46 +01:00
Pavel Kirienko 7b83e828b8 UAVCAN hardpoint driver: fixed mutex lock/unlock 2016-03-14 09:07:46 +01:00
Pavel Kirienko 1454e2acba Libuavcan update: Reduces STM32 CAN IRQ overhead with new error handling logic 2016-02-01 08:16:11 +01:00
Pavel Kirienko 82b3ea2501 Removed an excessive template disambiguator in the virtual CAN driver class (fixes 3190) 2015-11-17 02:00:42 +03:00
Pavel Kirienko b95609834c Merge branch 'master' into uavcan_footprint_reduction 2015-11-12 14:49:02 +03:00
Pavel Kirienko 96a12a6027 UAVCAN extended status reporting 2015-10-26 10:19:56 +01:00
Pavel Kirienko e06c46da03 uavcan status output extended with CAN error reporting 2015-10-26 10:19:56 +01:00
Pavel Kirienko 635bfb6a7b CAN driver RX queue reduced to 21 frames per interface; poll() timeout set to 3 ms 2015-10-26 10:19:56 +01:00
Pavel Kirienko 72e651beda UAVCAN virtual iface: removed a useless class field 2015-10-26 10:19:56 +01:00
Pavel Kirienko 53ed0425da Libuavcan set to master 2015-10-26 10:19:56 +01:00
Pavel Kirienko 5b9fc2d9fa Proper termination of UAVACN server thread 2015-10-26 10:19:56 +01:00
Pavel Kirienko 9d86dbb6a1 Fixed memory leaks in the primary UAVCAN thread 2015-10-26 10:19:56 +01:00
Pavel Kirienko 6c4f09c0e4 Fixed memory leak in UAVCAN baro driver 2015-10-26 10:19:56 +01:00
Pavel Kirienko 109bee855b Node on leaked memory in UAVCAN driver 2015-10-26 10:19:56 +01:00
Pavel Kirienko ca4e55fec3 UAVCAN allocator as a dedicated type; reporting a warning if memory leak is deetcted upon destruction 2015-10-26 10:19:56 +01:00
Pavel Kirienko edfb19d9af Libuavcan update 2015-10-26 10:19:56 +01:00
Pavel Kirienko 1ace017cb8 Deallocating memory used by UAVCAN virtual iface on destruction 2015-10-26 10:19:56 +01:00
Pavel Kirienko a570d1de7d UAVCAN memory usage status and shrink 2015-10-26 10:19:56 +01:00
Pavel Kirienko e6182b8d2b Libuavcan update 2015-10-26 10:19:56 +01:00
Pavel Kirienko 407191d4ab UAVCAN driver transformed to use global memory pool 2015-10-26 10:19:56 +01:00
Pavel Kirienko 7373d99d72 UAVCAN CMakeLists - removed useless definitions 2015-10-26 10:19:56 +01:00
Pavel Kirienko e227f139a5 Libuavcan switched to footprint_reduction 2015-10-26 10:19:56 +01:00
Pavel Kirienko c62b9491ca Reverted 0e10638c7e 2015-10-03 13:50:07 +03:00
Pavel Kirienko e2b801a323 Fixes 2911 2015-09-27 12:25:15 +02:00
Pavel Kirienko 8d67483d18 UAVCAN: using only primary interface for servers 2015-08-23 21:28:47 +03:00
Pavel Kirienko f371ece43b UAVCAN_ENABLE defaults to 0 2015-08-22 13:54:57 +02:00
Pavel Kirienko 08fde4f505 UAVCAN startup delay fix 2015-08-22 13:54:57 +02:00
Pavel Kirienko 59fd94da3e Libuavcan synced with the version that has DSDL v1.0.0rc1 - no logical changes 2015-08-22 13:54:57 +02:00
Pavel Kirienko 281cf49586 Libuavcan update - fixed file IO loops 2015-08-22 13:54:57 +02:00
Pavel Kirienko 0e10638c7e Temporary fix to UAVCAN sensor prioritization issue, see #2081, #2715 2015-08-22 13:54:57 +02:00
Pavel Kirienko e1f33871ef UAVCAN enabled by default 2015-08-22 13:54:57 +02:00
Pavel Kirienko 6864779fa6 Multiple stages for UAVCAN_ENABLE 2015-08-22 13:54:56 +02:00
Pavel Kirienko 4296dac884 Libuavcan update 2015-08-22 13:54:56 +02:00
Pavel Kirienko 9b32a55b40 Libuavcan update 2015-08-22 13:54:56 +02:00
Pavel Kirienko 3860dbdc8c UAVCAN Barometer driver fix - reporting temperature in Celsius degrees, not in Kelvin 2015-08-22 13:54:56 +02:00
Pavel Kirienko 473d321af8 UAVCAN Magnetometer driver update - no logical changes 2015-08-22 13:54:56 +02:00
Pavel Kirienko 4ec16efe68 Libuavcan update 2015-08-22 13:54:56 +02:00
Pavel Kirienko 36f91d30eb Fixes pure virtual call exception in VirtualCanDriver<>::handleRxFrame()
Stack trace:
Thread [1] (Suspended: Breakpoint hit.)
        12 __cxa_pure_virtual() libxx_cxapurevirtual.cxx:66 0x0808ca42
        11 notifyRxFrameListener() uc_dispatcher.cpp:216 0x080787ce
        10 uavcan::Dispatcher::spinOnce() uc_dispatcher.cpp:276 0x080787ce
        9 uavcan::Scheduler::spinOnce() uc_scheduler.cpp:196 0x0807b4e0
        8 spinOnce() abstract_node.hpp:88 0x080659fc
        7 spinOnce() node.hpp:132 0x080659fc
        6 UavcanNode::node_spin_once() uavcan_main.cpp:428 0x080659fc
        5 UavcanNode::run() uavcan_main.cpp:542 0x08065e74
        4 operator() uavcan_main.cpp:343 0x0806626a
        3 UavcanNode::__lambda0::_FUN() uavcan_main.cpp:343 0x0806626a
        2 task_start() task_start.c:138 0x08087720
        1 <symbol is not available> 0x00000000
2015-08-15 09:53:13 +03:00
Pavel Kirienko aa412aaced UAVCAN servers: proper handling of startup failure, more verbose error reporting 2015-08-15 09:42:16 +03:00
Pavel Kirienko e278419e84 Libuavcan update 2015-08-14 05:12:46 +03:00
Pavel Kirienko 9fa87d1444 LIbuavcan update 2015-08-14 04:45:32 +03:00
Pavel Kirienko 05b6a48d1b Merge branch 'beta' into beta_uavacan 2015-08-13 22:06:26 +03:00
Pavel Kirienko e94bc7960c libuavcan submodule updated 2015-06-11 17:04:22 +02:00
Pavel Kirienko 67c1b230ca libuavcan submodule updated 2015-06-10 21:20:57 +03:00
Pavel Kirienko 2c61ec6819 UAVCAN update, fixes compilation warning on GCC 4.7 (see #2294) 2015-06-07 00:10:53 +03:00
Pavel Kirienko 3f961bf3c6 UAVCAN driver silently ignores repeated start commands without error. This allows to avoid error messages when UAVCAN driver is started from extras script before default initialization sequence is executed. 2015-04-23 22:02:34 +03:00
Pavel Kirienko 2f7a9eaf65 Fix for a compilation failure 2015-01-29 16:33:53 +01:00
Pavel Kirienko ae0e2d7209 Removing extra UAVCAN perfcounters 2015-01-21 14:54:24 +01:00
Pavel Kirienko f6dc2af398 UAVCAN update 2015-01-21 14:54:24 +01:00
Pavel Kirienko 4baf4a032f Fixed: Passing this->_armed_sub to close, which cannot accept a negative number. 2015-01-21 14:54:24 +01:00
Pavel Kirienko 91362223ea Fixed uninitialized fields of UavcanNode 2015-01-21 14:54:24 +01:00
Pavel Kirienko f6786d0be9 Removing -ffixed-r10 when stack checks aren't enabled 2015-01-21 14:54:24 +01:00
Pavel Kirienko 2ebd7099de Globally configurable stack checks, R10 is always fixed 2015-01-21 14:54:24 +01:00
Pavel Kirienko c9eae96cf6 Frame size fix fix per Lorenz's suggestion 2015-01-21 14:54:24 +01:00
Pavel Kirienko ed27e583e0 UAVCAN update 2015-01-21 14:54:24 +01:00
Pavel Kirienko 4b1782174c INSTRUMENTATIONDEFINES assignment made non-optional 2015-01-21 14:54:24 +01:00
Pavel Kirienko 1d13edcf92 Stack checks made optional: ENABLE_STACK_CHECKS 2015-01-21 14:54:24 +01:00
Pavel Kirienko f49f183f74 UAVCAN module: -O3 instead of -Os; fixed instrumentation defines 2015-01-21 14:54:24 +01:00
Pavel Kirienko c2bc298409 Disable instrumentation for the uavcan module 2015-01-21 14:54:24 +01:00
Pavel Kirienko 885077a1c3 Profiler: folder fix - more special cases for operator<< and operator>> 2015-01-21 14:54:24 +01:00
Pavel Kirienko 569c3b7d37 Using -g3 flag instead of -g 2015-01-21 14:54:23 +01:00
Pavel Kirienko d87bb4dfcb Revert "Intrusive changes made for UAVCAN profiling. Will be reverted in the next commit (this one is needed to keep the changes in history)"
This reverts commit 4c301d9dcf180e39186fa6753c7a3d3215b3cfa7.
2015-01-21 14:54:23 +01:00
Pavel Kirienko 6bbacc4271 Intrusive changes made for UAVCAN profiling. Will be reverted in the next commit (this one is needed to keep the changes in history) 2015-01-21 14:54:23 +01:00
Pavel Kirienko 543cb23128 Profiler: computing stack top distribution 2015-01-21 14:54:23 +01:00
Pavel Kirienko 647163d6fa Profiler - header comment fix 2015-01-21 14:54:23 +01:00
Pavel Kirienko f158c8270b Rich man's profiler - handling quotes 2015-01-21 14:54:23 +01:00
Pavel Kirienko d1abf9c133 Poor man's profiler - proper stack folder that handles generic C++ types 2015-01-21 14:54:23 +01:00
Pavel Kirienko 1898b51c74 Profiler: reporting function position in flame graphs 2015-01-21 14:54:23 +01:00
Pavel Kirienko ff7c33a4b0 Profiler: xdg-open work-around 2015-01-21 14:54:23 +01:00
Pavel Kirienko c0d71529bc Profiler fixes 2015-01-21 14:54:23 +01:00
Pavel Kirienko c0937ec8ca Profiler fixes 2015-01-21 14:54:23 +01:00