Commit Graph

65821 Commits

Author SHA1 Message Date
Andrew Tridgell 322b7520de AP_CANManager: fixed critical race in log_text()
the AP_CANManager::log_text() gets called from debug logging in
AP_DroneCAN. It is a method on a common AP_CANManager object which is
shared by multiple AP_DroneCAN threads.

if two threads call the debug log messages at the same time then we
can end up with _log_pos greater than LOG_BUFFER_SIZE (1024) and
overwrite past the end of the buffer

in the crash_dump we have for this case the next piece of memory was
hal.can[0], and the overwrite of the buffer had corrupted the
MessageRam_ structurre in the ChibiOS CAN interface code. That led to
a hardfault on receive of a CAN message

Note that this issue only happens if CAN_LOGLEVEL is set to greater
than zero, and the default is zero. So users can avoid the bug by
checking they have not changed CAN_LOGLEVEL.

Also, this is likely an issue that only happens on startup, as once
the two AP_DroneCAN threads are fully running they have the same
thread priority so can't pre-empt each other. During startup some
messages are sent from the main thread which has a different priority
to the AP_DroneCAN threads, and can thus trigger this issue
2024-12-14 15:41:38 +11:00
Peter Barker eedb8ae617 hwdef: remove 'HAL_WATCHDOG_ENABLED_DEFAULT true' from periphs
this is the default for peripherals
2024-12-14 10:36:06 +11:00
Peter Barker 9835fe80d6 AP_TECS: correct comment explaining roll-induced-drag scaling
Co-authored-by: George Zogopoulos <tailwhipx4@gmail.com>
2024-12-14 10:11:09 +11:00
Peter Barker 1ab0dcd45d AP_TECS: remove unneccessary sqrtf in Phi calculations
we take the square of this in the only use of it
2024-12-14 10:11:09 +11:00
Peter Barker b5ba09664e Tools: remove superfluous linefeed from panic strings
panic adds this within the HAL layer.
2024-12-14 10:06:13 +11:00
Peter Barker fea17e6f59 SITL: remove superfluous linefeed from panic strings
panic adds this within the HAL layer.
2024-12-14 10:06:13 +11:00
Peter Barker 6fb3e27b8d AP_RCProtocol: remove superfluous linefeed from panic strings
panic adds this within the HAL layer.
2024-12-14 10:06:13 +11:00
Peter Barker d540a31f2e AP_Radio: remove superfluous linefeed from panic strings
panic adds this within the HAL layer.
2024-12-14 10:06:13 +11:00
Peter Barker 70e9a90ac5 AP_Param: remove superfluous linefeed from panic strings
panic adds this within the HAL layer.
2024-12-14 10:06:13 +11:00
Peter Barker 074798fb88 AP_Logger: remove superfluous linefeed from panic strings
panic adds this within the HAL layer.
2024-12-14 10:06:13 +11:00
Peter Barker 7fe183ba0f AP_InternalError: remove superfluous linefeed from panic strings
panic adds this within the HAL layer.
2024-12-14 10:06:13 +11:00
Peter Barker 5becd59265 AP_InertialSensor: remove superfluous linefeed from panic strings
panic adds this within the HAL layer.
2024-12-14 10:06:13 +11:00
Peter Barker 57ac1e5911 AP_HAL_SITL: remove superfluous linefeed from panic strings
panic adds this within the HAL layer.
2024-12-14 10:06:13 +11:00
Peter Barker dc2a5e02b6 AP_HAL_Linux: remove superfluous linefeed from panic strings
panic adds this within the HAL layer.
2024-12-14 10:06:13 +11:00
Peter Barker e6796c1e96 AP_HAL_ChibiOS: remove superfluous linefeed from panic strings
panic adds this within the HAL layer.
2024-12-14 10:06:13 +11:00
Peter Barker 14b29cf7de AP_FlashStorage: remove superfluous linefeed from panic strings
panic adds this within the HAL layer.
2024-12-14 10:06:13 +11:00
Peter Barker f59efb8a19 AP_DDS: remove superfluous linefeed from panic strings
panic adds this within the HAL layer.
2024-12-14 10:06:13 +11:00
Peter Barker d68b95e60e AP_AHRS: remove superfluous linefeed from panic strings
panic adds this within the HAL layer.
2024-12-14 10:06:13 +11:00
Andy Piper 684d95a826 AP_Camera: remove lf from panic
correct camera info message and defend against -1
2024-12-13 11:07:09 +00:00
Andy Piper 631c4944ff scripts: correct runcam build option description 2024-12-13 11:07:09 +00:00
Andy Piper 399f9f6f98 AP_Camera: RunCam camera backend
RunCam parameter conversion
add RunCam camera settings and control
2024-12-13 11:07:09 +00:00
Andy Piper 90fc426fd5 AP_HAL_ChibiOS: ensure RunCam backend gets included in minimal 2024-12-13 11:07:09 +00:00
Andy Piper 7a08f2bf3d AP_Param: add group idx calculator 2024-12-13 11:07:09 +00:00
Andy Piper ee56d90f95 AP_Arming: HAL_RUNCAM_ENABLED -> AP_CAMERA_RUNCAM_ENABLED 2024-12-13 11:07:09 +00:00
Andy Piper 00c9d013dd scripts: HAL_RUNCAM_ENABLED -> AP_CAMERA_RUNCAM_ENABLED 2024-12-13 11:07:09 +00:00
Andy Piper 9308a6ef69 RC_Channel: HAL_RUNCAM_ENABLED -> AP_CAMERA_RUNCAM_ENABLED 2024-12-13 11:07:09 +00:00
Andy Piper be49a06f04 AP_Vehicle: remove runcam singleton 2024-12-13 11:07:09 +00:00
Peter Barker 72f56ee8fc AP_HAL_ChibiOS: print linefeed after panic message
this makes the output much nicer and avoids including the linefeed in the caller
2024-12-13 19:37:54 +11:00
Peter Barker dc6c799dad AP_HAL_ChibiOS: factor panic code to remove duplication
the code inside and above the loop are the same, it's just the delay which changes
2024-12-13 19:37:54 +11:00
Rhys Mainwaring d1cbf30286 AP_HAL_ESP32: add targets to measure static memory sizes
Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com>
2024-12-12 23:16:48 -06:00
Rhys Mainwaring eecac5eead AP_HAL_ESP32: reduce sdcard mount config max_files
Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com>
2024-12-12 22:54:18 -06:00
Iampete1 a9ecb4428b Tools: autotest: defualt_params: quadplane: fix yaw rate tune typo. 2024-12-12 21:52:02 +00:00
Eric Katzfey 3501bb7fc3 AP_RCProtocol: Remove extraneous zero initializers to clean up Qurt compiler warnings 2024-12-12 16:41:24 +00:00
Randy Mackay b5c108c223 Plane: 4.6.0-beta2 release notes 2024-12-12 15:15:44 +11:00
Randy Mackay 2df8559298 Copter: 4.6.0-beta2 release notes 2024-12-12 15:15:41 +11:00
Randy Mackay 69718ae3ea Rover: 4.6.0-beta2 release notes 2024-12-12 15:15:39 +11:00
Randy Mackay 3932e2a7f0 Tracker: 4.6.0-beta2 release notes 2024-12-12 15:15:35 +11:00
Andy Piper a52c375643 AP_ESC_Telem: ensure that EDTv2 only gets logged when telemetry is available 2024-12-11 18:14:34 +00:00
Henry Wurzburg 6e263532c8 RC_Channel:add QuickTune metadat 2024-12-11 14:04:00 +00:00
Andrew Tridgell 6173356b13 autotest: fixed race condition in Copter.MinAltFenceAvoid 2024-12-11 18:58:00 +11:00
Andrew Tridgell c9e9b13404 autotest: fixed race in MinAltFenceAvoid copter test 2024-12-11 18:58:00 +11:00
Andrew Tridgell 9dc6e1cbea autotest: update plane switch fence test
the FENCE_AUTOENABLE option should be honoured even with a fence
switch in the disable position
2024-12-11 18:58:00 +11:00
Andrew Tridgell 076782f6f1 AC_Fence: remember manual disable of fence for min-alt
the automatic min-alt fence should not auto-enable based on altitude
if the fence has been manually disabled. This is needed to allow for a
manual landing by disabling the fence before descending
2024-12-11 18:58:00 +11:00
Andrew Tridgell 75655a787c AC_Fence: removed _auto_enable_mask
the _auto_enable_mask was try to make AUX function overrides disable
the FENCE_AUTOENABLE functionality. This isn't the right bevaviour,
both the aux function and the auto-enable should be edge triggered,
with last function taking effect
2024-12-11 18:58:00 +11:00
Andrew Tridgell e96a5aa547 AC_Fence: removed _curr_alt from class
this is only ever set/checked within a function
2024-12-11 18:58:00 +11:00
Andrew Tridgell 4c40d66d7d autotest: fixed test suite for FENCE_AUTOENABLE=2 2024-12-11 18:58:00 +11:00
Andrew Tridgell 9084b48308 AC_Fence: fixed pre-arm check for polygon fences
for polygon fences we need to check if the vehicle has a position and
is inside the polygon
2024-12-11 18:58:00 +11:00
Andrew Tridgell f6726e66f8 AC_Fence: prevent a fetch R/C switch from disabling FENCE_AUTOENABLE=3
we should only add fence types to the no auto-enable mask if the
enable actually changed that type of fence. This fixes the case where
the user has both FENCE_AUTOENABLE=3 and RCn_OPTION=11. The disable
triggered by the init of the aux function was preventing the fence
from auto-enabling
2024-12-11 18:58:00 +11:00
Andrew Tridgell 42ad2a7911 autotest: added non-compass takeoff test 2024-12-11 08:44:15 +11:00
Andrew Tridgell c15fa7b943 Plane: fixed takeoff direction with no yaw source
in TAKEOFF mode with either very poor yaw source or no yaw source we
need to use ground vector and wait for sufficient ground speed
2024-12-11 08:44:15 +11:00