Andrew Tridgell
98849a3998
HAL_ChibiOS: fixed build for EMPTY uarts
...
this fixes NucleoH743 build
2021-11-01 15:48:25 +11:00
bugobliterator
57e1fb1a81
HAL_ChibiOS: disable building CrashCatcher for non 2M boards
2021-10-30 19:24:57 +11:00
bugobliterator
70f606c480
AP_HAL_ChibiOS: restrict crash dump mechanisms only on boards with 2M flash
2021-10-30 19:24:57 +11:00
bugobliterator
66b8b9cf74
HAL_ChibiOS: add support for dumping crash logs to flash page
2021-10-30 19:24:57 +11:00
bugobliterator
69f53a6188
HAL_ChibiOS: add defines for CrashCatcher methods to use
2021-10-30 19:24:57 +11:00
Andrew Tridgell
0378e1a879
HAL_ChibiOS: removed need for a lot of boilerplate hwdef lines
...
bootloader and AP_Periph lines can default to right values
2021-10-26 15:56:53 +11:00
Iampete1
d7cc2cb296
AP_HAL_ChibiOS: hwdef.py: allow same GPIO pin in multiple alt configs
2021-10-26 10:05:20 +11:00
Andrew Tridgell
c8664e0b98
HAL_ChibiOS: added STM32L476 support
2021-10-17 20:30:20 +11:00
Andrew Tridgell
5a68e21435
HAL_ChibiOS: support STM32L431
2021-10-17 20:30:20 +11:00
Andrew Tridgell
71e7bb0fe3
HAL_ChibiOS: mark af_parse_cubemx.py as executable, py3
2021-10-17 20:30:20 +11:00
Andrew Tridgell
25324ae0e2
HAL_ChibiOS: support SDMMC2 for sdcard
2021-10-12 15:47:51 +11:00
bugobliterator
f298ea406e
HAL_ChibiOS: enable RNG only for H7 based boards off for the rest by default
2021-10-07 19:43:11 +11:00
Andrew Tridgell
33529c98a9
HAL_ChibiOS: check the ROMFS line for IOMCU is added
2021-10-06 06:45:43 +11:00
Andrew Tridgell
4dbff85de7
HAL_ChibiOS: check for common hwdef.dat errors
...
catches missing GPIO type, mismatched timers and UARTs or bad pin types
2021-10-05 15:46:02 +11:00
Iampete1
8ae5bc5ad0
AP_HAL_ChibiOS: hwdef: allow GPIO alt config
2021-09-29 19:55:21 +10:00
Andrew Tridgell
27e93155f4
HAL_ChibiOS: fixed build on boards with OTG2 and no CAN interfaces
2021-09-29 18:11:04 +10:00
Andrew Tridgell
0212e23cd3
HAL_ChibiOS: added support for STM32L496 MCUs
...
good MCU for AP_Periph
2021-09-24 18:08:00 +10:00
Peter Barker
1bd62362a4
AP_HAL_ChibiOS: move from HAL_NO_GCS to HAL_GCS_ENABLED
2021-09-22 21:37:00 +10:00
Andrew Tridgell
7f59366cc0
HAL_ChibiOS: process AIRSPEED lines in hwdef.dat
2021-09-21 13:51:40 +10:00
Andrew Tridgell
532396e5e6
REVERT: HAL_ChibiOS: Rename STM32F412 hw definition file
...
This reverts commit 5de6c690d8
.
That commit broke the build for the affected board as the chibios
headers rely on the name of the file matching a ifdef
2021-09-07 10:37:43 +10:00
Andrew Tridgell
b77580f934
HAL_ChibiOS: avoid an issue with DCache init on H743
...
this fixes an issue found by Andy Piper where the H743 bootloader gets
a hard fault in the DCache enable code when SRAM1 is primary memory.
This is the simplest fix I could think of, and avoids the problem by
making DTCM the first segment in the bootloader.
Note that we can't use DTCM as first segment for main firmware since
we went to double precision EKF as the static variables don't fit
2021-09-06 18:23:03 +10:00
Siddharth Purohit
81dc237a19
AP_HAL_ChibiOS: move to using Instruction RAM with External Flash setup
2021-09-01 17:10:53 +10:00
Siddharth Purohit
39bd229279
AP_HAL_ChibiOS: remove dependency on Semaphores in QSPIDevice in BL
2021-09-01 17:10:53 +10:00
Siddharth Purohit
4ba2835de1
AP_HAL_ChibiOS: add config for supporting load from external flash
2021-09-01 17:10:53 +10:00
Siddharth Purohit
faedb12493
AP_HAL_ChibiOS: fix hwdef generation for bootloader supporting ext flash
2021-09-01 17:10:53 +10:00
Siddharth Purohit
6e81fcbed1
AP_HAL_ChibiOS: add support for things required to run QSPIDriver
2021-09-01 17:10:53 +10:00
Andrew Tridgell
39f44147b8
HAL_ChibiOS: reduce the impact of UART DMA contention
...
this changes the heuristics for UART TX DMA allocation to greatly
reduce the chances of DMA contention causing long delays on other
devices
This fixes issues with FETTec driver output and gimbal status messages
as reported by Amilcar and OlliW. The problem is particularly bad when
no GPS is connected to GPS1 on fmuv3 and derived boards (such as
CubeBlack)
key changes:
- remember the contention_counter across begin() calls, as the GPS
calls begin with new baudrates regularly
- added a is_shared() API to Shared_DMA, allowing the UART driver to
avoid TX DMA on shared streams when at low baudrates.
2021-08-31 07:55:27 +10:00
Marek Łukasiewicz
5de6c690d8
HAL_ChibiOS: Rename STM32F412 hw definition file
2021-08-30 10:27:45 +10:00
bugobliterator
a32a32ab43
HAL_ChibiOS: change name for USART2_CTS pin in STM32H757xx.py
2021-08-25 10:09:23 +10:00
Andrew Tridgell
4cebcede31
HAL_ChibiOS: switched to fix allocation for BMDA streams on H7
...
this avoids issues with BDMA stream assignments due to bugs found
while testing boards with both I2C4 and SPI6
2021-08-25 07:11:31 +10:00
Andrew Tridgell
57e87b9820
HAL_ChibiOS: measure MCU temperature and ref voltage on H7
...
this uses ADC3 to measure the internal MCU temperature and the reference
voltage. This uses a currently unused BDMA channel
2021-08-25 07:11:31 +10:00
Andrew Tridgell
8df99f0d15
HAL_ChibiOS: added G431 and G441 support
2021-08-03 10:54:03 +10:00
Andrew Tridgell
4fce1ae092
HAL_ChibiOS: added G491 support
2021-07-30 10:20:52 +10:00
bugobliterator
d1b0438412
AP_HAL_ChibiOS: add support for usb passthrough with baud changes
2021-07-21 17:06:41 +10:00
Andrew Tridgell
4f32fa537a
HAL_ChibiOS: define HAL_HAVE_HARDWARE_DOUBLE on F765, F777 and H7
2021-07-10 07:20:41 +10:00
Andrew Tridgell
6c712c9001
HAL_ChibiOS: use SRAM1 as first ram segment on H7
...
this is needed to give the linker more than 128k for static variables
with double precision maths.
2021-07-10 07:20:41 +10:00
Siddharth Purohit
9b2359b34c
AP_HAL_ChibiOS: allow option to enable ChibiOS features in bootloader
2021-07-02 08:50:16 +10:00
Andrew Tridgell
b4b02b4ffc
HAL_ChibiOS: use nargs='+' for chibios_hwdef.py
2021-07-01 09:33:16 +10:00
willpiper
ce1ee6334f
AP_HAL_ChibiOS: addressed reviewed comments
2021-07-01 09:33:16 +10:00
willpiper
fb4a4e609a
AP_HAL_ChibiOS: added --extra-hwdef option
2021-07-01 09:33:16 +10:00
Siddharth Purohit
c962292bae
AP_HAL_ChibiOS: add support for H757I Evaluation board
2021-06-30 19:33:17 +10:00
Siddharth Purohit
abc26d1993
AP_HAL_ChibiOS: add QSPI Device Driver in HAL
2021-06-30 19:33:17 +10:00
Siddharth Purohit
4cb48da984
modules: update ChibiOS
2021-06-30 19:33:17 +10:00
bugobliterator
7e8f11b749
AP_HAL_ChibiOS: allow embedded bootloader to be excluded
...
Co-authored-by: Peter Barker <pb-gh@barker.dropbear.id.au>
2021-06-24 08:36:30 +10:00
Peter Barker
3ba57fed89
AP_HAL_ChibiOS: add support for AP_Logger into AP_Periph
2021-06-08 09:57:55 +10:00
Andrew Tridgell
c34d8e80e9
HAL_ChibiOS: fixed serial info indexing for EMPTY uarts
2021-06-05 18:52:33 +10:00
Andrew Tridgell
23c0f257b6
HAL_ChibiOS: default off serial protocols in AP_Periph
...
this allows for a GPS on high numbered ports
2021-06-01 09:19:51 +10:00
Andrew Tridgell
fced5271af
HAL_ChibiOS: expand pin map of G474 to cover 64 pin parts
2021-05-25 09:35:25 +10:00
Andrew Tridgell
ebe858f762
HAL_ChibiOS: auto-set HAL_LOGGING_ENABLED for AP_Periph builds
2021-05-19 17:38:47 +10:00
Andrew Tridgell
6b9e4161cb
HAL_ChibiOS: removed UDID_START from all MCU defs
...
use UID_BASE from ChibiOS headers
2021-05-09 06:44:19 +10:00
Andrew Tridgell
36d5c98e96
HAL_ChibiOS: default UDID_START to UID_BASE
2021-05-09 06:44:19 +10:00
Andrew Tridgell
03cae60471
HAL_ChibiOS: added STM32F732 support
2021-05-09 06:44:19 +10:00
Andrew Tridgell
61c829d624
HAL_ChibiOS: only use SRAM4 for DMA for now
...
we can enable others when we have an allocation interface that
specifies the peripheral type
2021-04-07 17:10:45 +10:00
Iampete1
2377d33417
AP_HAL_ChibiOS: H7 set SRAM4 to no cache and allow DMA
2021-04-07 17:10:45 +10:00
Andrew Tridgell
ffb2876f58
HAL_ChibiOS: disable unused ChibiOS features
2021-03-23 12:01:20 +11:00
Andrew Tridgell
ff31e10d9e
HAL_ChibiOS: ensure that RCIN DMA channel is not shared
...
RCIN DMA cannot be shared as it runs all the time
2021-03-23 12:01:20 +11:00
Andrew Tridgell
2842730868
HAL_ChibiOS: fixed F3 CAN build
2021-03-23 12:01:20 +11:00
Andrew Tridgell
ac9e6ba86d
HAL_ChibiOS: fix label for CCM on G4
2021-03-23 12:01:20 +11:00
Andrew Tridgell
f57b1b9c4b
HAL_ChibiOS: support logical/physical CAN bus mapping
...
allow for first CAN interface to be CAN2 or CAN3
2021-03-23 12:01:20 +11:00
Andrew Tridgell
2f7ff778be
HAL_ChibiOS: fixed bug in DMA resolver
...
idsets can be empty for a peripheral
2021-03-23 12:01:20 +11:00
Andrew Tridgell
439a944801
HAL_ChibiOS: added support for STM32G474 MCU
2021-03-23 12:01:20 +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
4fbdb59398
HAL_ChibiOS: prevent sharing the same DMA stream on TIMn_UP channels
...
this avoids an issue with DShot where we run the same DMA stream on
two timers at once
2021-03-02 11:58:38 +11:00
Andy Piper
6cb263056d
AP_HAL_ChibiOS: build fix for iomcu
2021-03-02 11:58:38 +11:00
Andy Piper
d0e4d510cf
AP_HAL_ChibiOS: order PWM timers by DMA UP stream id to prevent deadlocks in dshot
2021-03-02 11:58:38 +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
9de1519928
HAL_ChibiOS: prevent hw flow control from hogging a DMA channel
...
When hw flow control is enabled check the CTS pin before we grab the
DMA channel to prevent a long timeout trying to send to a blocked port
from holding a DMA channel against another device
this fixes issue #16587
2021-02-15 07:23:56 +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
Andy Piper
06a1500f98
AP_HAL_ChibiOS: ensure GPIO pins get undef'ed properly
...
minimise bi-directional dshot configs for:
CubeOrange
Durandal
MatekF405
MatekH743
OmnibusNanoV6
Pixracer
mRoPixracerPro
omnibusf4pro
CUAV-X7
2021-02-03 18:49:06 +11:00
bugobliterator
c02c546077
AP_HAL_ChibiOS: add support for inline comments in hwdef.dat
2021-01-18 09:37:11 +11:00
bugobliterator
41693403e2
AP_HAL_ChibiOS: retain memory of past conflicts in dma_resolver
2021-01-18 09:37:11 +11:00
bugobliterator
4346264113
AP_HAL_ChibiOS: ensure UP and CH timer channels share DMA for H7
2021-01-12 10:45:03 +11:00
Andrew Tridgell
afbdd69165
AP_HAL_ChibiOS: adjust stack sizes
2021-01-10 08:28:55 +11:00
Andy Piper
8fb403c569
AP_HAL_ChibiOS: make sure BDMA channels are not adjacent
2021-01-10 08:11:37 +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
Andy Piper
83c8807b39
AP_HAL_ChibiOS: when HAL_ENABLE_THREAD_STATISTICS is defined add ChibiOS thread stats to threads.txt
...
define HAL_ENABLE_THREAD_STATISTICS in hwdef.h
2020-12-30 18:15:05 +11:00
Phillip Kocmoud
062c6cef41
HAL_ChibiOS: Fix typo relating to pin PB7:I2C4_SDA
2020-12-23 06:43:19 +11:00
Tom Pittenger
da74d755d0
AP_HAL_ChibiOS: add new HAL_PWM_COUNT define
2020-12-21 18:27:07 -08:00
Andrew Tridgell
b4de6fb56a
HAL_ChibiOS: added new option DEFAULTGPIO for hwdef.dat
...
this allows ESD issues to be avoided by pulling all unused pins low
2020-12-08 11:21:57 +11:00
Andrew Tridgell
f44e4aaefb
HAL_ChibiOS: always set STM32_DMA_REQUIRED for non-bootloader
...
this fixes an issue for uart-only AP_Periph builds
2020-12-08 10:27:27 +11:00
Tom Pittenger
e235fd311e
AP_HAL_ChibiOS: fixed comment in script file
2020-12-03 20:33:51 +11:00
Andrew Tridgell
c778d14fd3
HAL_ChibiOS: enable stack checking on f303 boards
2020-12-01 11:14:50 +11:00
Andrew Tridgell
573cd6db6d
HAL_ChibiOS: adjust MAIN_STACK for more ISR stack
...
we need more stack to deal with interrupt nesting between CAN, system
timer and serial interrupts
2020-12-01 11:14:50 +11:00
Andrew Tridgell
4d171ec19a
AP_HAL_ChibiOS: support uartI, allowing a total of 9 uarts
...
this allows for OTG2 on the MatekH743 board, which makes SLCAN much
easier
2020-11-30 14:09:31 +11:00
Marek Łukasiewicz
64f208cbec
HAL_ChibiOS: Add af_parse for CubeMX pinout csv
2020-11-18 18:39:07 +11:00
Marek Łukasiewicz
8813057b4c
AP_HAL_ChibiOS: Tweak sorting to be py2/py3 compatible
2020-11-12 10:27:31 +11:00
Andrew Tridgell
17b4198921
HAL_ChibiOS: add WITH_FATFS to environment
2020-11-10 16:15:45 +11:00
Andrew Tridgell
bb3b59966f
HAL_ChibiOS: define INS_MAX_INSTANCES if less than 3
...
save some flash and memory
2020-11-10 16:15:45 +11:00
Andrew Tridgell
46976c4358
HAL_ChibiOS: fixed remapping of ioline_t with BRD_ALT_CONFIG
...
when a peripheral is made available via BRD_ALT_CONFIG we need to
remap the existing ioline_t in the UART and I2C drivers to use the new
pin.
This fixes an issue with half-duplex, inverted, swapped UART pins for
protocols like FPort and FPort2
2020-10-28 19:51:45 +11:00
Andrew Tridgell
702a3926f8
HAL_ChibiOS: setup defines for more flow control pins
...
allow all uarts to have flow control
2020-10-03 20:22:56 +10:00
Andrew Tridgell
4b747430e1
HAL_ChibiOS: save 2k in f103 bootloader
...
don't include serial bl support if dev list is empty
2020-09-24 12:32:19 +10:00
Siddharth Purohit
a79efaeb1d
AP_HAL_ChibiOS: hwdef: add support for HAL CANIface based bootloader
2020-09-24 12:32:19 +10:00
Siddharth Purohit
882c86c394
AP_HAL_ChibiOS: add app start offset to leave space for params
2020-09-24 12:32:19 +10:00
Siddharth Purohit
62df67a4b8
HAL_ChibiOS: hwdef: modify to use HAL CAN driver instead of ChibiOS's
2020-09-24 12:32:19 +10:00
Andrew Tridgell
1ffbbb2896
HAL_ChibiOS: added FLASH_TOTAL to environment
2020-09-10 07:41:25 +10:00
Andrew Tridgell
491e82159c
HAL_ChibiOS: add HAL_WITH_SPI_xx defines for SPI devices
...
this allows us to avoid building drivers for SPI devices we don't
have, such as OSD
2020-09-02 05:56:46 +10:00
Siddharth Purohit
8dcb973dad
HAL_ChibiOS: fix SWD config in f3 boards
2020-08-20 19:08:14 +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
20b2396646
HAL_ChibiOS: fixed bug in undef of pins
...
revert pin to initial state on undef
2020-06-30 14:28:30 +10:00
Andrew Tridgell
61d036acf3
HAL_ChibiOS: added build time check for right system clock
...
this helps prevent cases where we underclock a chip due to mistake in
headers or hwdef.dat
2020-05-10 15:09:28 +10:00