Andrew Tridgell
c9b9a6a616
HAL_ChibiOS: run storage writes at 1kHz not 100Hz
...
The 100Hz update rate means there is a significant chance of an arming
failure after mission upload if you try to arm shortly after the
update.
Each mission item is 15 bytes, so with a 1200 item mission we need to
write 18000 bytes to storage. At 100Hz, with 8 bytes per storage line,
that takes over 22 seconds.
2021-07-23 10:19:46 +09:00
Peter Barker
7d8c5757d6
AP_HAL_ChibiOS: move from HAL_NO_LOGGING to HAL_LOGGING_ENABLED
2021-05-19 17:38:47 +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
e1d71486e4
AP_HAL_ChibiOS: build fixes for ChibiOS 20.3.x
2021-03-23 12:01:20 +11:00
Andrew Tridgell
14791c335b
HAL_ChibiOS: fixed build of f3 boards without PWM out
2021-02-24 18:25:02 +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
b8e82a56f3
HAL_ChibiOS: don't start rout ticks till after full system init
...
this prevents an occasional boot hang on systems with DShot
enabled. We shouldn't be starting DShot output till after setup() is
complete as the outputs are still being configured
2021-02-05 07:17:57 +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
b4201436dd
HAL_ChibiOS: fixed flash space on 16k bl boards
...
this avoids the stm32_flash_recent_erase() function which added around
800 bytes to the bootloader. It is not needed
2020-12-17 12:51:25 +11:00
Andrew Tridgell
0c440d5675
HAL_ChibiOS: cope with flash erase in expected delay
...
when there has been a flash erase when we are definately in an
expected delay
2020-12-08 13:22:36 +11:00
Andrew Tridgell
ba69cd72c9
HAL_ChibiOS: improved stack checking and stack display
...
display both ISR stack and thread stacks. Show total stack sizes as
well as amount of stack remaining
2020-12-01 11:14:50 +11:00
Andrew Tridgell
84eac7642b
HAL_ChibiOS: improved stack checking
2020-12-01 11:14:50 +11:00
Andrew Tridgell
52a90e7a33
HAL_ChibiOS: fixed monitor thread with no logging
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
Andrew Tridgell
8f682c0782
HAL_ChibiOS: check all memory at 10Hz
2020-11-18 17:14:43 +11:00
Andrew Tridgell
ee50eaf3c9
HAL_ChibiOS: go via AP_Filesystem for mount/unmount operations
...
this fixes a deadlock where a mount/unmount could access FATFS without
holding the AP_Filesystem semaphore
2020-10-27 10:45:03 +11:00
Andrew Tridgell
e471b23f58
HAL_ChibiOS: add a max quota of GPIO interrupts
...
This implements a max quota of GPIO interrupts per 100ms period to
prevent high interrupt counts from consuming all CPU and causing a
lockup. The limit is set as 10k interrupts per 0.1s period. That limit
should be high enough for all reasonable uses of GPIO interrupt
handlers while being below the level that causes significant CPU loads
and flight issues
This addresses issue #15384
2020-10-02 09:38:24 +10:00
Siddharth Purohit
cdf8e369f1
AP_HAL_ChibiOS: create UAVCAN agnostic CANIface driver
...
HAL_ChibiOS
2020-08-19 17:31:09 +10:00
Andrew Tridgell
2200dfefdb
HAL_ChibiOS: during setup() we expect delays
...
this may fix occasional internal errors on SPI during startup
2020-05-10 15:12:43 +10:00
Peter Barker
48da4e523c
AP_HAL_ChibiOS: create and use INTERNAL_ERROR macro so we get line numbers
2020-04-30 13:21:36 +10:00
Andrew Tridgell
0ef66659ce
HAL_ChibiOS: log WDOG message once a second
...
this copes with delayed mounting of the microSD, making it much more
likely we log the critical data
2020-04-29 07:36:55 +10:00
Andrew Tridgell
09477b2dfe
HAL_ChibiOS: shorted thread names
...
changes names so threads can be distinguished by first 4 bytes
2020-04-29 07:36:55 +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
Stephen Dade
e1e7c6ea8a
AP_HAL: Ensure scheduler does not log if there is no logger
2019-11-20 11:46:34 +11:00
Andrew Tridgell
6b841e781c
HAL_ChibiOS: pat watchdog immediately in expect_delay_ms()
...
this fixes a watchdog issue on AP_Periph if we don't have a timer
thread
2019-10-21 19:12:01 +11:00
Mirko Denecke
b84dcd483d
AP_HAL_ChibiOS: remove unnecessary tabs and whitespaces
2019-10-21 08:01:56 +11:00
Andrew Tridgell
06b272705e
HAL_ChibiOS: run RCIN thread at 1kHz
...
this gives fast enough response for SBUS parsing on a UART
2019-09-06 08:51:45 +10:00
Andrew Tridgell
16bdaaa1af
HAL_ChibiOS: added support for STM31F10x for AP_Periph
2019-08-27 10:29:56 +10:00
Andrew Tridgell
5e40921b42
HAL_ChibiOS: fixed reboot hold in bootloader
...
thanks to Tom for noticing this
2019-08-12 22:21:13 -07:00
Andrew Tridgell
898150e460
HAL_ChibiOS: cope with calling delay_microseconds_boost() multiple times
...
needed for updated IMU wait code
2019-07-07 19:03:01 +10:00
Andrew Tridgell
59678840a8
HAL_ChibiOS: log SPI and I2C counters
2019-05-17 08:56:06 +10:00
Andrew Tridgell
0708b65c2d
AP_HAL_ChibiOS: added const for PersistentData
2019-05-15 15:33:48 +10:00
Andrew Tridgell
a7eb85e1c5
HAL_ChibiOS: cope with nesting of expected_delay_ms()
2019-05-15 15:33:48 +10:00
Andrew Tridgell
8d0bca6ba9
HAL_ChibiOS: log mavlink IDs and semaphore lines for watchdog
...
this gives a better chance of tracking down a hang
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
ce9e9d8670
HAL_ChibiOS: end scheduler boost on expected delay
...
we want timer thread to be higher priority than main thread while in a
long operation
2019-05-11 05:56:34 +10:00
Andrew Tridgell
19526b5826
HAL_ChibiOS: implement scheduler->expect_delay_ms()
2019-04-22 16:53:35 +10:00
Tom Pittenger
91b0650765
AP_HAL_ChibiOS: rename dataflash to logger
2019-03-28 16:40:58 +11:00
Andrew Tridgell
64681cb05c
HAL_ChibiOS: allocate threads from any heap
...
this fixes a failure on MatekF405-Wing where it fails to allocate the
SPI thread for the IMU
2019-02-27 11:54:28 +11:00
Andrew Tridgell
57c573552c
HAL_ChibiOS: check for logger instance before use
2019-02-26 16:18:26 +11:00
Peter Barker
6fc76a32af
GLOBAL: use AP::logger() and strip redundant Log_ from methods
2019-01-18 18:08:20 +11:00
Peter Barker
b47733142f
GLOBAL: rename DataFlash_Class to AP_Logger
2019-01-18 18:08:20 +11:00
Andrew Tridgell
ed3194d095
HAL_ChibiOS: fixed timer reset
2018-12-31 08:00:14 +11:00
Andrew Tridgell
960d4c0a80
HAL_ChibiOS: allow mount of microSD after boot
...
when disarmed, try to mount sd card every 3s
2018-12-31 08:00:14 +11:00
Andrew Tridgell
6c761fa864
HAL_ChibiOS: shutdown IOMCU on reboot
2018-10-30 13:00:48 +11:00
Andrew Tridgell
af4340d1d1
HAL_ChibiOS: enable analog input on IOMCU
2018-10-30 13:00:48 +11:00
Andrew Tridgell
15141a6a5a
HAL_ChibiOS: allow for no RCIN or TIMER thread
...
saves memory on iomcu
2018-10-17 15:11:28 +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