Commit Graph

69 Commits

Author SHA1 Message Date
Andrew Tridgell
5287fb2e1b 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:50:09 +10:00
Andrew Tridgell
c9d5b8056e HAL_ChibiOS: resync for 4.0 update 2020-05-11 18:15:42 +10:00
Andrew Tridgell
ab9330f04f HAL_ChibiOS: implement in_expected_delay() 2020-05-11 18:15:40 +10:00
Andrew Tridgell
fd239825be 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
2020-02-05 10:43:36 +11:00
Mirko Denecke
a603a1577c AP_HAL_ChibiOS: remove unnecessary tabs and whitespaces 2020-02-05 10:43:36 +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
Michael du Breuil
f6cb196d53 AP_HAL_ChibiOS: Remove unimplemented force_safety_no_wait()
ChibiOS doesn't implement the method, so there is nothing to be gained
by calling the function.
2018-09-04 10:23:18 +10:00
Francisco Ferreira
7278af05e0
AP_HAL_ChibiOS: remove CAN thread management 2018-08-12 13:35:01 +01:00
Siddharth Purohit
395c48933c HAL_ChibiOS: move tto using updated time conversion API 2018-08-03 13:44:59 +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
a489c93001 HAL_ChibiOS: removed restriction on delay in threads
threads other than the main thread should be able to sleep, but not
call the delay callback
2018-07-09 19:41:18 +10:00
Andrew Tridgell
df3ce87e02 HAL_ChibiOS: implement thread_create() 2018-07-09 19:41:18 +10:00
Andrew Tridgell
2b7b499c63 HAL_ChibiOS: added support for RTC sig for fast boot 2018-06-28 11:35:13 +10:00
Andrew Tridgell
a0b4553a26 HAL_ChibiOS: fixed bootloader build issue 2018-06-25 21:22:31 +10:00
Alexander Malishev
95f3eb5ab6 HAL_ChibiOS: stop logging before reboot 2018-06-25 17:46:20 +10:00
Andrew Tridgell
e11b3f2f0e HAL_ChibiOS: run CAN thread at 3KHz
at 10KHz we were causing occasional CRC errors on the UART to IOMCU
2018-06-22 08:40:12 +10:00
Eugene Shamaev
2055f264e5 AP_HAL_ChibiOS: helper func 2018-06-09 22:46:48 -07: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
Andrew Tridgell
f390e35c99 HAL_ChibiOS: use port_disable in reboot
this provides a more reliable way to stop all interrupts
2018-06-06 07:15:41 +10:00
Andrew Tridgell
ea37cede28 HAL_ChibiOS: stop sdcard interface on reboot 2018-05-27 19:10:24 +10:00
Andrew Tridgell
dbe0f3c575 HAL_ChibiOS: fixed assert in reboot
with asserts enabled we can't sleep with interrupts off
2018-05-26 17:23:46 +10:00
Andrew Tridgell
79ca1e76c0 HAL_ChibiOS: improve reliability of reboot 2018-05-26 15:53:25 +10:00
Andrew Tridgell
afb36ec168 HAL_ChibiOS: run can loop much more often
this allows for much higher ESC and servo rates, as it gives more
changes for frames to get out
2018-05-25 13:53:17 +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
Andrew Tridgell
e4ce2f532b HAL_ChibiOS: make smaller builds possible
this allows for much smaller builds when you disable a lot of
options. This is part of an effort to create a bootloader of less than
16k using ChibiOS
2018-04-12 11:50:44 +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