ardupilot/libraries/AP_HAL_ChibiOS
Andrew Tridgell 52169f25da HAL_ChibiOS: replace volatile bools with mutexes
this replaces the two booleans used to mediate TX and RX buffer
protection with mutexes.

The booleans were a hangover from the very early HAL_ChibiOS code, and
can lead to a deadlock. The sequence is as follows:

 - a very high CAN bus bandwidth usage, triggered by MissionPlanner
   requesting CAN_FORWARD on a CAN serial port. That causes a
   "infinite" number of CAN_FRAME messages which saturates the bus,
   and leads to the DroneCAN thread looping with no pause

 - a serial port configured as GPS type AUTO, auto-probing for a GPS
   that isn't there. This calls begin() periodically

 - the UART TX thread assocated with that UART not making progress as
   the TX thread priority is below the DroneCAN thread priority

 - this causes the begin() in main thread waiting for _in_tx_timer to
   loop forever, which triggers a watchdog
2024-10-01 09:54:26 +10:00
..
hwdef AP_HAL_ChibiOS: add board X-MAV-AP-H743v2 2024-10-01 09:39:55 +10:00
AP_HAL_ChibiOS.h
AP_HAL_ChibiOS_Namespace.h
AP_HAL_ChibiOS_Private.h
AnalogIn.cpp AP_HAL_ChibiOS: use NEW_NOTHROW for new(std::nothrow) 2024-06-04 09:20:21 +10:00
AnalogIn.h
CANFDIface.cpp AP_HAL_ChibiOS: re-order initialiser lines so -Werror=reorder will work 2024-09-24 22:50:28 +10:00
CANFDIface.h
CANIface.h
CanIface.cpp AP_HAL_ChibiOS: re-order initialiser lines so -Werror=reorder will work 2024-09-24 22:50:28 +10:00
DSP.cpp AP_HAL_ChibiOS: use NEW_NOTHROW for new(std::nothrow) 2024-06-04 09:20:21 +10:00
DSP.h
Device.cpp AP_HAL_ChibiOS: check nullptr 'name' variable 2024-09-17 22:10:26 +10:00
Device.h
Flash.h
GPIO.cpp AP_HAL_ChibiOS: GPIO: read: support virtual read of IOMCU pins 2024-07-31 18:13:01 +10:00
GPIO.h
HAL_ChibiOS_Class.cpp
HAL_ChibiOS_Class.h
I2CDevice.cpp AP_HAL_ChibiOS: re-order initialiser lines so -Werror=reorder will work 2024-09-24 22:50:28 +10:00
I2CDevice.h
LogStructure.h
RCInput.cpp AP_HAL_ChibiOS: move handling of AP_Radio RC input down into AP_RCProtocol 2024-05-01 17:51:49 +10:00
RCInput.h AP_HAL_ChibiOS: move handling of AP_Radio RC input down into AP_RCProtocol 2024-05-01 17:51:49 +10:00
RCOutput.cpp AP_HAL_ChibiOS: Change the magic number to a defined value 2024-09-12 14:23:10 +10:00
RCOutput.h AP_HAL_ChibiOS: reset pwm peripheral on F1 when deallocating IC DMA 2024-06-02 10:54:14 +10:00
RCOutput_bdshot.cpp AP_HAL_ChibiOS: use NEW_NOTHROW for new(std::nothrow) 2024-06-04 09:20:21 +10:00
RCOutput_iofirmware.cpp AP_HAL_ChibiOS: correctly check for channel enablement on iomcu 2024-09-04 18:34:10 +10:00
RCOutput_serial.cpp AP_HAL_ChibiOS: dshot commands for reverse/3D should be sent to IOMCU 2024-09-04 18:34:10 +10:00
SPIDevice.cpp AP_HAL_ChibiOS: use NEW_NOTHROW for new(std::nothrow) 2024-06-04 09:20:21 +10:00
SPIDevice.h
Scheduler.cpp hwdef: change HAL_NO_MONITOR_THREAD out for HAL_MONITOR_THREAD_ENABLED 2024-07-30 10:52:36 +10:00
Scheduler.h
Semaphores.cpp
Semaphores.h
SoftSigReader.cpp
SoftSigReader.h
SoftSigReaderInt.cpp
SoftSigReaderInt.h
Storage.cpp
Storage.h
UARTDriver.cpp HAL_ChibiOS: replace volatile bools with mutexes 2024-10-01 09:54:26 +10:00
UARTDriver.h HAL_ChibiOS: replace volatile bools with mutexes 2024-10-01 09:54:26 +10:00
Util.cpp AP_HAL_ChibiOS: use GCS_SEND_TEXT rather than gcs().send_text 2024-08-07 18:33:16 +10:00
Util.h AP_HAL_ChibiOS: switched ENABLE_HEAP to an #if 2024-07-11 09:28:17 +10:00
WSPIDevice.cpp AP_HAL_ChibiOS: use NEW_NOTHROW for new(std::nothrow) 2024-06-04 09:20:21 +10:00
WSPIDevice.h
bxcan.hpp
sdcard.cpp
sdcard.h
shared_dma.cpp AP_HAL_ChibiOS: use NEW_NOTHROW for new(std::nothrow) 2024-06-04 09:20:21 +10:00
shared_dma.h
stdio.cpp
system.cpp