Andy Piper
cf20a70c58
AP_HAL_ChibiOS: move LED processing to a separate thread
...
LED processing on a separate thread allows much longer LED lengths to be handled without
compromising dshot timing or timeouts. The thread is also run at a lower priority to
reflect its lack of flight criticality
2023-04-19 16:45:21 +01:00
Andrew Tridgell
055ee6ba82
HAL_ChibiOS: increase monitor thread stack by 512
...
this is needed to ensure that the log writes of MON and WDOG don't
overflow monitor thread stack
2022-04-05 17:46:52 +10:00
Peter Barker
cfacb5d34d
AP_HAL_ChibiOS: split out a calculate_thread_priority method
2021-03-30 10:49:06 +11:00
Andy Piper
4e61ba2dc8
AP_HAL_ChibiOS: reduce stack sizes for rcout, uart_rx and storage.
2021-02-20 14:37:11 +11:00
Andy Piper
f9c5f9be00
AP_HAL_ChibiOS: make dshot DMA unlock event driven in order to allow unlocking from rcout thread
...
refactor rcout into separate thread and process all dshot requests there
move uart DMA completion to event model
process dshot locks in strick reverse order when unlocking
convert Shared_DMA to use mutexes
move UART transmit to a thread-per-uart
do blocking UART DMA transactions
do blocking dshot DMA transactions
trim stack sizes
cancel dma transactions on dshot when timeout occurs
support contention stats on blocking locking
move thread supression into chibios_hwdef.py
invalidate DMA bounce buffer correctly
separate UART initialisation into two halves
cleanup UART transaction timeouts
add @SYS/uarts.txt
move half-duplex handling to TX thread
correct thread statistics after use of ExpandingString
set unbuffered TX thread priority owner + 1
correctly unlock serial_led_send()
don't share IMU RX on KakuteF7Mini
observe dshot pulse time more accurately.
set TRBUFF bit for UART DMA transfers
deal with UART DMA timeouts correctly
don't deadlock on reverse ordered DMA locks
change PORT_INT_REQUIRED_STACK to 128
2021-02-20 14:37:11 +11:00
Andrew Tridgell
afbdd69165
AP_HAL_ChibiOS: adjust stack sizes
2021-01-10 08:28:55 +11:00
Andy Piper
07f199ea1a
AP_HAL_ChibiOS: rename system_initialized() and add is_system_initialized()
2020-12-30 18:16:59 +11:00
Andrew Tridgell
84eac7642b
HAL_ChibiOS: improved stack checking
2020-12-01 11:14:50 +11:00
Andrew Tridgell
408f8b3940
HAL_ChibiOS: added check for overwrite of nullptr on H7
...
the STM32H7 has 64k of ITCM memory at address zero. We allow
allocation of everything except the first 1024 bytes. This checks for
those reserved bytes being overwritte, which would indicate a write to
nullptr
2020-11-18 17:14:43 +11:00
Andy Piper
2bae080be4
AP_HAL_ChibiOS: increase RCIN stack size
2020-07-07 18:48:06 +10:00
Andrew Tridgell
7f429302ed
HAL_ChibiOS: increase monitor thread stack to 768 bytes
...
attempt to fix issue #14582
2020-06-15 17:56:34 +10:00
Andrew Tridgell
8dabd6cefc
HAL_ChibiOS: expect a long delay on flash page erase
...
this prevents the display of errors on flash page erase
2020-04-14 10:02:51 +10:00
Andrew Tridgell
65cd223023
HAL_ChibiOS: implement in_expected_delay()
2020-03-11 16:30:06 +11:00
Mirko Denecke
b84dcd483d
AP_HAL_ChibiOS: remove unnecessary tabs and whitespaces
2019-10-21 08:01:56 +11:00
Andrew Tridgell
a7eb85e1c5
HAL_ChibiOS: cope with nesting of expected_delay_ms()
2019-05-15 15:33:48 +10:00
Andrew Tridgell
d7a0eb42ee
HAL_ChibiOS: added logging of watchdog data
...
log MON msgs in the leadup to a watchdog, and log a WDOG message after
a watchdog reset
2019-05-15 15:33:48 +10:00
Andrew Tridgell
19526b5826
HAL_ChibiOS: implement scheduler->expect_delay_ms()
2019-04-22 16:53:35 +10:00
Peter Barker
17f643719a
AP_HAL_ChibiOS: add override keyword in many places
2018-11-08 11:30:12 +11:00
Michael du Breuil
11ab6c59e1
AP_HAL_ChibiOS: Handle scripting priority
2018-10-09 10:08:52 +11:00
Siddharth Purohit
b9319cae56
HAL_ChibiOS: disable segments relating to unused features
2018-09-19 12:14:15 +10:00
Francisco Ferreira
7278af05e0
AP_HAL_ChibiOS: remove CAN thread management
2018-08-12 13:35:01 +01:00
Andrew Tridgell
846418e5e9
HAL_ChibiOS: raise timer thread priority
...
needs to be above main for guaranteed DShot and oneshot output periods
2018-08-06 11:41:42 +10:00
Jonathan Challinger
f5f6220283
AP_HAL_ChibiOS: reflect changes to AP_HAL tonealarm interface
2018-07-30 14:02:12 +10:00
Andrew Tridgell
df3ce87e02
HAL_ChibiOS: implement thread_create()
2018-07-09 19:41:18 +10:00
Andrew Tridgell
e40457d98f
HAL_ChibiOS: avoid malloc in usbcfg
...
this avoids the need for malloc in the bootloader
2018-06-25 21:22:31 +10:00
Michael du Breuil
1123023a6f
AP_HAL_ChibiOS: Wrap process registration with a semaphore
2018-06-06 07:16:58 +10:00
Michael du Breuil
4a9fe1745f
AP_ChibiOS: Remove timer process suspension interface
2018-06-06 07:16:58 +10:00
Peter Barker
b2a81405ea
AP_HAL_ChibiOS: move delay callback handling to base HAL Scheduler class
2018-05-09 16:15:38 +10:00
Andrew Tridgell
dcab51801c
HAL_ChibiOS: implement boost_end
...
this fixes problems with main thread priority and SPI bus delays on
fmuv3
2018-05-05 07:45:53 +10:00
Michael du Breuil
8374c5a4f3
AP_HAL_ChibiOS: Remove unused priority level
2018-04-15 07:28:20 +10:00
Andrew Tridgell
67993d6e5c
HAL_ChibiOS: re-instate priority boost system
...
this adds back in the priority boost system for the main thread when
waiting for a IMU sample. This significantly improves scheduling
performance on very busy boards like a PH2.1
2018-04-07 09:10:29 +10:00
Andrew Tridgell
a2eec97325
HAL_ChibiOS: raised default SPI priority
...
this was causing transfer errors on the primary IMU of a PH2.1 when
fast sampling was enabled
2018-04-07 09:10:29 +10:00
Andrew Tridgell
51c40a013b
HAL_ChibiOS: added IRQ save/restore to hal.scheduler
...
these are used by RPM driver
2018-04-07 09:10:29 +10:00
Andrew Tridgell
b7c4dea9d3
HAL_ChibiOS: gain back 250usec in loop time
...
if we have already called delay_microseconds_boost() then we know
we've given up time to drivers, so we can avoid the extra delay in the
HAL
2018-02-13 17:15:05 +11:00
Mark Whitehorn
8b216cf182
AP_HAL_ChibiOS: add ToneAlarm thread
...
fmuv4 hwdef.dat: remove PWM label from buzzer output pin
add buzzer pin labeled ALARM
remove timer PWM from HAL_PWM_GROUPs
2018-02-11 14:55:23 +11:00
Andrew Tridgell
dce4c90467
HAL_ChibiOS: moved UART thread to UART driver
...
use an event model for triggering sends from tx complete DMA handler
for unbuffered uarts
2018-02-07 20:33:45 +11:00
Siddharth Purohit
f2e77ab773
AP_HAL_ChibiOS: add uavcan thread
2018-02-07 20:33:45 +11:00
Andrew Tridgell
8286486890
HAL_ChibiOS: drop default SPI priority to 179
2018-01-20 17:40:07 +11:00
bugobliterator
f7ac5aa079
HAL_ChibiOS: put rcin on a separate thread
2018-01-20 17:40:07 +11:00
Andrew Tridgell
b07c599bf2
Hal_Chibios: allow for faster INS sample times
...
we need higher priority on SPI and faster device loops
2018-01-20 17:40:07 +11:00
Andrew Tridgell
f14a847b97
HAL_ChibiOS: rename classes to remove 'Chibi'
...
it is redundent as all classes are in ChibiOS namespace, and makes the
code harder to read
2018-01-15 11:46:02 +11:00
Andrew Tridgell
8b6bab7b17
HAL_Chibios: added ChibiOS HAL
...
this is based on initial work by Sid, reset here for easier merging
2018-01-15 11:46:02 +11:00