Commit Graph

47 Commits

Author SHA1 Message Date
Andy Piper f3f3056dba AP_HAL_ChibiOS: add support for dshot commands to rcout
add support for dshot beepcodes through tonealarm
add support for dshot reversal and command queue
add support for dshot commands to all channels
correctly manage channel enablement in PWM groups
Correctly send dshot commands when using bi-dir dshot
allow reversible settings to be changed
ChibiOS: allow more than one type of ESC for dshot commands
Only execute reverse/reversible commands on BLHeli
add support for checking active ESCS
mark ESCs active when bdshot telemetry is returned
allow dshot alarm to be disabled
allow priroitized dshot commands
2021-05-05 17:41:24 +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 2cdc202d19 AP_HAL_ChibiOS: use non-cachable SRAM3 for DMA on H743
Adjust SRAM1+SRAM2 to 256k as describe in the H743 reference manual
Provide access to mem_info() information

Co-authored-by: Andrew Tridgell <andrew@tridgell.net>
2021-02-03 23:35:44 +11:00
Andrew Tridgell 155de6d2bc HAL_ChibiOS: fixed build of AP_Periph on H7 2021-01-27 18:24:03 +11:00
Andrew Tridgell 5ed19c764e HAL_ChibiOS: expose load_persistent_params for @SYS 2021-01-21 13:09:21 +11:00
Andrew Tridgell 5c823debc0 HAL_ChibiOS: support saving persistent parameters to bootloader sector
when we flash the bootloader we can save key peristent parameters to
the end of the bootloader sector, allowing them to persistent across
changes of firmware type

This allows for factory temperature calibration
2021-01-21 13:09:21 +11:00
Andrew Tridgell 42bc9adfb7 HAL_ChibiOS: use ExpandingString for @SYS buffers 2021-01-05 10:52:00 +11:00
Andy Piper cf2602f91d AP_HAL_ChibiOS: add support for @SYS/dma.txt for DMA contention 2020-12-02 18:17:23 +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 6bacf021c8 HAL_ChibiOS: disable thread_info in AP_Periph and bootloader 2020-04-29 07:36:55 +10:00
Andrew Tridgell f0c9f4003e HAL_ChibiOS: implement thread_info() 2020-04-29 07:36:55 +10:00
bugobliterator 89d03f0243 AP_HAL_ChibiOS: implement standard realloc method 2020-03-24 10:32:14 +11:00
Andrew Tridgell 64aae4f67e HAL_ChibiOS: removed heater control 2019-11-02 16:31:04 +11:00
Andrew Tridgell 81325ab14d HAL_ChibiOS: fixed multi-page bootloader update
and use new enum
2019-10-25 21:36:55 +11:00
Mirko Denecke b84dcd483d AP_HAL_ChibiOS: remove unnecessary tabs and whitespaces 2019-10-21 08:01:56 +11:00
Andrew Tridgell 16bdaaa1af HAL_ChibiOS: added support for STM31F10x for AP_Periph 2019-08-27 10:29:56 +10:00
Peter Barker 54b200a777 AP_HAL_ChibiOS: add missing uavcan-related override keywords 2019-08-14 16:33:29 +10:00
Andrew Tridgell d2fe47d2e0 HAL_ChibiOS: dither heater pins to prevent magnetic impact 2019-07-12 12:46:27 +10:00
Andrew Tridgell dbfe6b8019 HAL_ChibiOS: implement persistent_data for watchdog
this is a much simpler approach to persistent data
2019-05-15 15:33:48 +10:00
Andrew Tridgell 508aae8f2a HAL_ChibiOS: added save/restore of attitude in backup registers 2019-04-22 16:53:35 +10:00
Andrew Tridgell 2778a1b01e HAL_ChibiOS: save/restore home position in backup registers
# Conflicts:
#	libraries/AP_HAL_ChibiOS/hwdef/common/stm32_util.c
2019-04-22 16:53:35 +10:00
Andrew Tridgell 9ca67dc811 HAL_ChibiOS: implement was_watchdog_armed() 2019-04-22 16:53:35 +10:00
Andrew Tridgell 1acb7e977f HAL_ChibiOS: added ability to restore safety state on watchdog reset 2019-04-22 16:53:35 +10:00
Andrew Tridgell 03886f241e HAL_ChibiOS: implement was_watchdog_reset() 2019-04-22 16:53:35 +10:00
Andrew Tridgell cda1959629 HAL_ChibiOS: added support for more flexible memory regions
this allows for an arbitrary number of memory regions, with each one
flagged as DMA safe, fast or normal
2019-02-26 16:18:26 +11:00
Andrew Tridgell dde97d2b0e HAL_ChibiOS: support FMU heater pins 2019-02-22 10:27:17 +11:00
Michael du Breuil e8373e1fdf AP_HAL_ChibiOS: add scripting heap 2018-12-31 19:25:23 -07:00
Andrew Tridgell 24f6d6d647 HAL_ChibiOS: support microSD slowdown
allow use of BRD_SD_SLOWDOWN to slow down clock on microSD
2018-12-31 08:00:14 +11:00
Siddharth Purohit 3b2fdc9c70 HAL_ChibiOS: add support for unformatted board id 2018-11-29 16:36:29 +11:00
Andrew Tridgell 4416404137 HAL_ChibiOS: removed hal.util->new_semaphore()
replaced with HAL_Semaphore
2018-10-17 12:54:22 +11:00
Siddharth Purohit 1a20fb4ea9 HAL_ChibiOS: disable flash methods where there is no Flash API support 2018-09-19 12:14:15 +10:00
Andrew Tridgell dabdb969f6 HAL_ChibiOS: added support for HAL_Semaphore type 2018-08-16 12:40:10 +10:00
Andrew Tridgell c83567dcba HAL_ChibiOS: added duration to toneAlarm_set_buzzer_tone 2018-07-30 14:02:12 +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 4244daeb2d HAL_ChibiOS: support playing tunes by string 2018-07-20 14:37:16 +10:00
Andrew Tridgell e5435e02ad HAL_ChibiOS: report system ID in mavlink and logs 2018-06-29 20:27:36 +10:00
Peter Barker f07b6f3d78 AP_HAL_ChibiOS: add support for flashing bootloader 2018-06-28 11:35:13 +10:00
Andrew Tridgell 00d919018b HAL_ChibiOS: added RTC clock implementation 2018-06-15 08:01:22 +10:00
Andrew Tridgell 2493cdbcb6 HAL_ChibiOS: switch to new bouncebuffer system
this removes the dma_flush and dma_invalidate methods and uses a
common bouncebuffer system for all CPU types. This enables microSD
support on STM32F7
2018-06-06 07:15:41 +10:00
Andrew Tridgell eec4a12cc2 HAL_ChibiOS: switched to using DTCM memory for DMA
this uses SRAM1 and SRAM2 for main memory, which enables the use of the
data cache for faster operation, and using DTCM for all DMA operations.
2018-06-06 07:15:41 +10:00
Andrew Tridgell a220220758 HAL_ChibiOS: added comment on IS_DMA_SAFE() 2018-06-06 07:15:41 +10:00
Mark Whitehorn 59b2d44323 AP_HAL_ChibiOS: make ToneAlarm compilation conditional on presence of
alarm pin
2018-02-11 14:55:23 +11:00
Mark Whitehorn fb142422f6 AP_HAL_ChibiOS: pull ALARM_CHANNEL into pwmGroup
and improve formatting of HAL_PWM_ALARM in hwdef.h
2018-02-11 14:55:23 +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 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
bugobliterator 5feef04f5f HAL_ChibiOS: add support for CCM memory
this uses DMA bounce buffers for bus transfers, and falls back to CCM
ram in allocations if the type is unspecified
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