Commit Graph

15 Commits

Author SHA1 Message Date
Andrew Tridgell eca8cf3414 HAL_ChibiOS: save flash on boards that are critically low
move to single OSD font on some boards

this saves about 12k on these boards. They were also extremely close
to overflowing flash, under 2k on some

Now that we support having an OSD font on the microSD card (where
available) we can reduce built in fonts without a large functionality
impact

This also disables some less used features on these boards:

 - generator support
 - object avoidance path planning
 - precision landing

This will give us some breathing room on these boards
2021-04-13 09:58:59 +10: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
Andy Piper 401e5c2073 AP_HAL_ChibiOS: add support for bidir DShot support in RCOutput
add support for sampling GPIO pins using timer
don't restart pwm group when not doing bi-dir
fix hwdef generation preproc for TIM DMA
decode telemetry at the start of the dshot cycle
calculate dshot pulse separation correctly and ensure we output rapidly enough
calculate dshot min periods and timeouts correctly
refactor dshot_send() into dshot_send_groups()
use bi-dir dshot channel mask
selectively enable bi-dir RC Channels
process bi-dir mask correctly when allocating DMA channels
allow UP and CH DMA channel sharing
optionally enable bidir vars in hwdef.

enable bi-dir dshot in KakuteF7Mini
enable bi-dir dshot in OmnibusF4Pro
enable bi-dir dshot in OmnibusNanoV6
enable bi-dir dshot in MatekF405
enable bi-dir dshot in fmuv5
enable bi-dir dshot in fmuv3
enable bi-dir dshot in OmnibusF7V2
enable bi-dir dshot in OmnibusNanoV6
enable bi-dir dshot in CubeOrange
enable bi-dir dshot in Pixracer
enable bi-dir dshot in mRoPixracerPro

Co-authored-by: bugobliterator <siddharthbharatpurohit@gmail.com>
2020-12-30 19:14:16 +11:00
chobits f4320c935c AP_HAL_ChibiOS: fix kakutef7/mini motor glitch when using dshot 2020-09-08 18:57:30 +10:00
Andy Piper baf92a17f9 AP_HAL_ChibiOS: disable AP_Mount on "mini" boards 2020-08-04 09:18:14 +10:00
Peter Barker cadb1012df AP_HAL_ChibiOS: reenable full features on KakuteF7Mini 2020-07-02 18:38:46 +10:00
Andrew Tridgell 32cdfddf12 HAL_ChibiOS: convert all hwdef from UART_ORDER to SERIAL_ORDER
much easier to understand
2020-04-28 10:32:23 +10:00
Andrew Tridgell a9df9fe0c0 HAL_ChibiOS: removed clock tree settings in most hwdef.dat
these are better set automatically in the headers. This simplifies the
task of doing a new port
2020-04-28 10:32:23 +10:00
Andrew Tridgell e8b2b52bae HAL_ChibiOS: removed STM32_VDD from hwdef.dat
use default
2020-04-28 10:32:23 +10:00
Andy Piper 3d0cf7e12a AP_HAL_ChibiOS: hardware M4-Cortex and M7-Cortex (and H7) implementation of HAL FFT abstraction
implements an FFT engine based on the betaflight feature using ARM hardware accelerated CMSIS library
make the FFT feature optional
add dynamic gyro windows
add quinns and candans estimators and record in DSP state
disable DSP for boards with limited flash
calculate power spectrum rather than amplitude
start/analyse version of analysis to support threading
allocate memory in a specific region
constrain window size by CPU class
control inclusion of DSP based on board size
2020-02-22 11:15:37 +11:00
Andrew Tridgell 8b2629bfc1 HAL_ChibiOS: save 7k flash for boards close to flash limit 2020-02-01 06:58:43 +11:00
Andrew Tridgell 7ce771734c HAL_ChibiOS: fixed fw build size for several boards 2020-01-19 07:24:57 +11:00
Andrew Tridgell 0d31e614ed HAL_ChibiOS: added ALT(1) configs for more boards
this allows more boards to use the FPort protocol
2020-01-03 17:32:23 +11:00
Andy Piper 6f979d5f7f AP_HAL_ChibiOS: define OSD_ENABLED as 1 rather than ENABLED 2019-12-30 13:02:04 +11:00
Andy Piper 28b866cc8f AP_HAL_ChibiOS: hardware definitions for Kakute F7 Mini 2019-10-12 21:53:55 +11:00