ardupilot/libraries/AP_HAL_ChibiOS
Andrew Tridgell d565549fad HAL_ChibiOS: reduce the impact of UART DMA contention
this changes the heuristics for UART TX DMA allocation to greatly
reduce the chances of DMA contention causing long delays on other
devices

This fixes issues with FETTec driver output and gimbal status messages
as reported by Amilcar and OlliW. The problem is particularly bad when
no GPS is connected to GPS1 on fmuv3 and derived boards (such as
CubeBlack)

key changes:

 - remember the contention_counter across begin() calls, as the GPS
   calls begin with new baudrates regularly

 - added a is_shared() API to Shared_DMA, allowing the UART driver to
   avoid TX DMA on shared streams when at low baudrates.
2021-09-10 14:07:37 +09:00
..
hwdef HAL_ChibiOS: reduce the impact of UART DMA contention 2021-09-10 14:07:37 +09:00
AnalogIn.cpp HAL_ChibiOS: fixed G4 analog input build 2021-04-14 13:11:58 +10:00
AnalogIn.h AP_HAL_ChibiOS: add semaphore to AnalogIn::channel to make it thread safe 2021-03-30 10:44:43 +11:00
AP_HAL_ChibiOS_Namespace.h AP_HAL_ChibiOS: create UAVCAN agnostic CANIface driver 2020-08-19 17:31:09 +10:00
AP_HAL_ChibiOS_Private.h AP_HAL_ChibiOS: hardware M4-Cortex and M7-Cortex (and H7) implementation of HAL FFT abstraction 2020-02-22 11:15:37 +11:00
AP_HAL_ChibiOS.h
bxcan.hpp AP_HAL_ChibiOS: create UAVCAN agnostic CANIface driver 2020-08-19 17:31:09 +10:00
CANFDIface.cpp AP_HAL_ChibiOS: Use HAL_CANMANAGER_ENABLED instead of HAL_ENABLE_LIBUAVCAN_DRIVERS 2021-06-24 09:02:42 +10:00
CANFDIface.h AP_HAL_ChibiOS: disable EventSource only when CH_CFG_USE_EVENTS is false 2021-06-09 18:36:18 +10:00
CanIface.cpp AP_HAL_ChibiOS: Use HAL_CANMANAGER_ENABLED instead of HAL_ENABLE_LIBUAVCAN_DRIVERS 2021-06-24 09:02:42 +10:00
CANIface.h AP_HAL_ChibiOS: disable EventSource only when CH_CFG_USE_EVENTS is false 2021-06-09 18:36:18 +10:00
Device.cpp HAL_ChibiOS: shorted thread names 2020-04-29 07:36:55 +10:00
Device.h HAL_ChibiOS: added checking on bouncebuffer allocation 2020-01-18 07:13:11 +11:00
DSP.cpp AP_HAL_ChibiOS: add harmonics to DSP 2020-05-24 07:43:34 +10:00
DSP.h AP_HAL_ChibiOS: add harmonics to DSP 2020-05-24 07:43:34 +10:00
EventSource.cpp AP_HAL_ChibiOS: disable EventSource only when CH_CFG_USE_EVENTS is false 2021-06-09 18:36:18 +10:00
EventSource.h AP_HAL_ChibiOS: disable EventSource only when CH_CFG_USE_EVENTS is false 2021-06-09 18:36:18 +10:00
Flash.h HAL_ChibiOS: removed unusued AP_Common/Semaphore.h 2019-05-15 15:33:48 +10:00
GPIO.cpp HAL_ChibiOS: added support for STM32G474 MCU 2021-03-23 12:01:20 +11:00
GPIO.h HAL_ChibiOS: fixed remapping of ioline_t with BRD_ALT_CONFIG 2020-10-28 19:51:45 +11:00
HAL_ChibiOS_Class.cpp AP_HAL_ChibiOS: Fix typo (NFC) 2021-05-21 09:43:10 +10:00
HAL_ChibiOS_Class.h AP_HAL_ChibiOS: create UAVCAN agnostic CANIface driver 2020-08-19 17:31:09 +10:00
I2CDevice.cpp HAL_ChibiOS: allow adjustment of F7 I2C timing 2021-05-09 06:44:19 +10:00
I2CDevice.h AP_HAL_ChibiOS: remove unnecessary tabs and whitespaces 2019-10-21 08:01:56 +11:00
RCInput.cpp AP_HAL_ChibiOS: use GCS_SEND_TEXT() 2020-04-29 07:36:55 +10:00
RCInput.h HAL_ChibiOS: implement pulse_input_enable() 2020-01-31 11:09:07 +11:00
RCOutput_bdshot.cpp AP_HAL_ChibiOS: set inbound bitrate correctly for bi-directional dshot1200 2021-05-14 07:23:59 +10:00
RCOutput_serial.cpp AP_HAL_ChibiOS: add 1Hz update_channel_masks() 2021-06-22 09:55:27 +10:00
RCOutput.cpp AP_HAL_ChibiOS: output initializing from PWM banner when not available 2021-08-14 10:44:08 +09:00
RCOutput.h AP_HAL_ChibiOS: add 1Hz update_channel_masks() 2021-06-22 09:55:27 +10:00
Scheduler.cpp HAL_ChibiOS: switch to minimum scheduling delta of 10us 2021-08-28 14:41:27 +09:00
Scheduler.h AP_HAL_ChibiOS: split out a calculate_thread_priority method 2021-03-30 10:49:06 +11:00
sdcard.cpp HAL_ChibiOS: go via AP_Filesystem for mount/unmount operations 2020-10-27 10:45:03 +11:00
sdcard.h AP_HAL_ChibiOS: remove unnecessary tabs and whitespaces 2019-10-21 08:01:56 +11:00
Semaphores.cpp AP_HAL_ChibiOS: make all semaphores recursive 2020-01-19 20:19:30 +11:00
Semaphores.h AP_HAL_ChibiOS: make all semaphores recursive 2020-01-19 20:19:30 +11:00
shared_dma.cpp HAL_ChibiOS: reduce the impact of UART DMA contention 2021-09-10 14:07:37 +09:00
shared_dma.h HAL_ChibiOS: reduce the impact of UART DMA contention 2021-09-10 14:07:37 +09:00
SoftSigReader.cpp HAL_ChibiOS: added disable() API for pulse input 2020-01-31 11:09:07 +11:00
SoftSigReader.h HAL_ChibiOS: fixed warning on gcc9 2020-09-22 08:07:23 +10:00
SoftSigReaderInt.cpp HAL_ChibiOS: added disable() API for pulse input 2020-01-31 11:09:07 +11:00
SoftSigReaderInt.h HAL_ChibiOS: added disable() API for pulse input 2020-01-31 11:09:07 +11:00
SPIDevice.cpp AP_HAL_ChibiOS: fix infinite loop for large SPI transfers 2021-06-14 09:13:49 +10:00
SPIDevice.h AP_HAL_ChibiOS: add support for bank selection call outside SPI driver 2020-08-06 12:41:35 +10:00
stdio.cpp HAL_ChibiOS: modify hal can drivers for use by AP_Periph 2020-09-24 12:32:19 +10:00
Storage.cpp HAL_ChibiOS: go via AP_Filesystem for mount/unmount operations 2020-10-27 10:45:03 +11:00
Storage.h HAL_ChibiOS: fixed race condition in storage write 2020-05-04 17:22:41 +10:00
system.cpp AP_HAL_ChibiOS: base use of InternalError on build type not HAL_LOGGING_ENABLED 2021-05-19 17:38:47 +10:00
UARTDriver.cpp HAL_ChibiOS: reduce the impact of UART DMA contention 2021-09-10 14:07:37 +09:00
UARTDriver.h HAL_ChibiOS: implement uart_info per-uart 2021-06-05 18:52:33 +10:00
Util.cpp AP_HAL_ChibiOS: Use HAL_CANMANAGER_ENABLED instead of HAL_ENABLE_LIBUAVCAN_DRIVERS 2021-06-24 09:02:42 +10:00
Util.h AP_HAL_ChibiOS: ensure ToneAlarm is not disabled when UAVCAN is available 2021-05-31 07:34:02 +10:00