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 HAL_ChibiOS: implement BinarySemaphore 2024-01-03 07:37:05 +11:00
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 HAL_ChibiOS: fixed CANFD timings 2024-01-25 11:44:02 +11:00
CANIface.h HAL_ChibiOS: reimplement CAN with BinarySemaphore 2024-01-03 07:37:05 +11:00
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 AP_HAL_ChibiOS: move GPIO ON/off defaults from AP_HAL_ChibiOS to AP_HAL 2024-04-03 11:00:24 +11:00
HAL_ChibiOS_Class.cpp hwdef: replace defined(HAL_DISABLE_LOOP_DELAY) with HAL_SCHEDULER_LOOP_DELAY_ENABLED 2024-04-03 18:36:29 +11:00
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 HAL_ChibiOS: fixed SPI build on F1xx 2023-12-20 19:33:12 +11:00
Scheduler.cpp hwdef: change HAL_NO_MONITOR_THREAD out for HAL_MONITOR_THREAD_ENABLED 2024-07-30 10:52:36 +10:00
Scheduler.h AP_HAL_ChibiOS: added PRIORITY_NET 2024-01-03 12:14:47 +11:00
Semaphores.cpp HAL_ChibiOS: allow HAL_Semaphore in the bootloader 2024-01-21 12:30:08 +11:00
Semaphores.h HAL_ChibiOS: implement BinarySemaphore 2024-01-03 07:37:05 +11:00
SoftSigReader.cpp
SoftSigReader.h
SoftSigReaderInt.cpp
SoftSigReaderInt.h
Storage.cpp waf: remove SKETCH and SKETCHNAME from build sysmte 2024-02-26 15:42:25 +11:00
Storage.h HAL_ChibiOS: support flash storage with 8k sectors 2024-02-01 11:43:24 +11:00
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 HAL_ChibiOS: added mem_is_dma_safe() function 2024-01-05 06:52:11 -08:00
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 AP_HAL_ChibiOS: bdshot for f103 iofirmware 2023-12-18 19:02:52 +11:00
stdio.cpp
system.cpp HAL_ChibiOS: switched G4 FDCAN clock to 80MHz 2024-01-25 11:44:02 +11:00