Andrew Tridgell
44fd85ff29
HAL_ChibiOS: reduce memory used by serial buffers
...
this does not appear to affect log download speed. It saves about 27k
of memory
7 years ago
Andrew Tridgell
83f38d536e
HAL_ChibiOS: fixed flow control auto-detect without DMA
...
this fixes automatic flow control detection when we are not using DMA
for TX
7 years ago
Andrew Tridgell
50f7e55f0b
HAL_ChibiOS: don't clear buffers if no baudrate change
7 years ago
Michael du Breuil
153ee6ca8e
AP_HAL_ChibiOS: Clear UART buffers when opening a port
7 years ago
Michael du Breuil
037e53ba8a
AP_HAL_ChibiOS: Reduce flash space of UARTDriver
...
Saves 32 bytes
7 years ago
Andrew Tridgell
369ac5edd0
HAL_ChibiOS: save more space in the bootloader
7 years ago
Andrew Tridgell
e3b68876a9
HAL_ChibiOS: fixed tx_len on tx DMA timeout
7 years ago
Andrew Tridgell
8431a677d9
HAL_ChibiOS: added a timeout to DMA UART TX
...
this prevents a shared DMA channel being held for a long time if a CTS
pin is held either by not being connected or by a radio
7 years ago
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
7 years ago
Andrew Tridgell
0fade4eb9e
HAL_ChibiOS: make sure the UART bounce buffers are DMA safe
7 years ago
Andrew Tridgell
edb831653f
HAL_ChibiOS: added dma_flush and dma_invalidate operations
...
these are needed to manage the data cache on the STM32F7
7 years ago
Andrew Tridgell
7b720aae46
HAL_ChibiOS: allow printf() to work on systems without debug console
...
map to hal.console once initialised
7 years ago
Andrew Tridgell
89898bae1d
HAL_ChibiOS: take account of available bytes in receive_time_constraint_us
7 years ago
Andrew Tridgell
7005383f82
HAL_ChibiOS: implement uart receive timestamp API
7 years ago
mirkix
cb50639e27
AP_HAL_ChibiOS: add STM32F7 UART support
7 years ago
Andrew Tridgell
5854ccbb4c
HAL_ChibiOS: removed stray debug code
...
thanks to @alielectric for noticing
7 years ago
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
7 years ago
Andrew Tridgell
e448b5d069
HAL_ChibiOS: implement UART port locking
7 years ago
Andrew Tridgell
bc32276966
HAL_ChibiOS: support DShot output
...
use DMAR burst DMA to minimise number of DMA channels needed
thanks to betaflight for the great reference implementation!
7 years ago
Andrew Tridgell
a64819cbf2
HAL_ChibiOS: minimise DMA TX latency on contended UARTs
...
try to prevent long delays on other users of a DMA channel
7 years ago
Andrew Tridgell
556f3ba53f
HAL_ChibiOS: make UARTs non-blocking by default
...
we never want blocking ports any more with ArduPilot, so defaulting to
blocking makes no sense
7 years ago
Andrew Tridgell
91c741ef07
HAL_ChibiOS: use a non-blocking lock for UART shared DMA
...
we can have multiple UARTs on the same thread sharing the same DMA TX
channel. That can lead to deadlock with blocking locks on DMA. This
makes UART requests for DMA locks non-blocking to fix the issue
7 years ago
Andrew Tridgell
306d35655e
HAL_ChibiOS: allow for bare board builds
...
this allows for a build with no UARTs, no SPI, no I2C, no PWM. Great
for initial board bringup with just USB
7 years ago
Andrew Tridgell
d0eb2970c7
HAL_ChibiOS: ensure RTS and CTS are both disabled for no flow control
7 years ago
Andrew Tridgell
82f1f462ae
HAL_ChibiOS: ensure we don't init a uart driver twice
7 years ago
Andrew Tridgell
41758348e5
HAL_ChibiOS: added checking of lock state in shared_dma
...
and use lock around check for tx completion in UART handler
7 years ago
Andrew Tridgell
dce4c90467
HAL_ChibiOS: moved UART thread to UART driver
...
use an event model for triggering sends from tx complete DMA handler
for unbuffered uarts
7 years ago
Andrew Tridgell
4d018cf5e2
HAL_ChibiOS: take lock on DMA allocate/deallocate
...
this is required for the stm32_dma_stream bitmask manipulation
7 years ago
Andrew Tridgell
e002fbdb8d
HAL_ChibiOS: fixed a build warning
7 years ago
Andrew Tridgell
85acbcb21d
HAL_ChibiOS: fixed UART send from TX complete IRQ
7 years ago
Andrew Tridgell
979a2a4796
HAL_ChibiOS: removed debug code
7 years ago
Siddharth Purohit
538af2a58a
HAL_ChibiOS: fix parity and stop bit setting
7 years ago
Siddharth Purohit
df4bf7e476
HAL_ChibiOS: fix irq clash with unnecessary access to readbuf ring buffer
7 years ago
Siddharth Purohit
02696882e9
HAL_ChibiOS: if unbuffered write, do continue to invoke DMA writes
...
adds higher latency to device sharing DMA
7 years ago
Andrew Tridgell
3dacbd1b36
HAL_ChibiOS: hold write lock for unbuffered writes
7 years ago
Andrew Tridgell
ad26ca4a27
HAL_ChibiOS: implement parity and stop bits controls
7 years ago
Andrew Tridgell
2e15285c51
HAL_ChibiOS: refuse unbuffered writes without DMA
...
we would need much more complex code to handle this
7 years ago
Andrew Tridgell
3f2cc2c9d6
HAL_ChibiOS: implement low latency UART writes
...
this implements the set_unbuffered_writes() API by performing writes
directly in the write() call and not from a timer
7 years ago
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
7 years ago
Andrew Tridgell
d1f93cd66c
HAL_Chibios: auto-generate I2C, SPI and UART device lists
...
this is less error prone and make a port faster as more information is
in hwdef.dat
7 years ago
Andrew Tridgell
280140bf25
HAL_ChibiOS: added support for MindPX-v2
7 years ago
Andrew Tridgell
41be81af34
HAL_Chibios: added hardware flow control for UARTs
...
implement RTS in software and CTS in hardware
7 years ago
Andrew Tridgell
c3435e45c5
HAL_ChibiOS: initial port to FMUv4
7 years ago
Andrew Tridgell
8b6bab7b17
HAL_Chibios: added ChibiOS HAL
...
this is based on initial work by Sid, reset here for easier merging
7 years ago