mbed-os/drivers/source
Jamie Smith 28815b13d3
DMA SPI support for STM32 devices (#162)
* Start on STM32 DMA SPI

* Update all objects.hs, add interrupt function

* Initial DMA code should be ready to test out...

* Fix SPI interrupt-mode IRQ handlers, add SPI::transfer_and_wait

* Fix CMake error when building for STM32WL processors

* Now builds on all STM devices!

* Properly support STM32U5 / DMA IP v3

* Start on STM32F4 support, fix hardfault on IP v1 and v3 due to incorrect indexing

* Fix Rx-only transfers, add abort code, fix incorrect channel assignments for DMA IP v1 devices

* Start on STM32H7 SPI DMA

* Fixes for H7: Correctly manage data cache, keep SPI ISR enabled

* Implement DMA SPI header constants for all remaining STM32 families.  Also add support for freeing DMA channels

* Try and fix build on STM32G0

* Fix build on STM32G0

* Add SPI_32BIT_WORDS label, start on fixing SPI docs

* SPI: Implement reference counting so that DMA channels get freed properly

* Fix issue where SPI data could get corrupted (by TI mode turning on) depending on memory layout (if your spis pointer & 0x10 was nonzero)

* Mark DMA channels as unallocated when SPI bus is freed

* Simplify spi_abort_asynch()

* Fix some rebase issues, fix failing to allocate DMA channel on STM32U5

* Fix DMA getting stuck on STM32F4, F7, and F2
2023-11-02 20:16:45 -07:00
..
AnalogIn.cpp Fix ABI differences between mbed-baremetal and mbed-os, remove PlatformMutex 2022-09-14 00:25:30 -07:00
AnalogOut.cpp Drivers/Events/RTOS Public and internal APIs cleanup (#10955) 2019-08-02 12:23:47 +01:00
BufferedSerial.cpp Remove shadowing member variables 2021-05-19 09:01:06 +02:00
BusIn.cpp Drivers/Events/RTOS Public and internal APIs cleanup (#10955) 2019-08-02 12:23:47 +01:00
BusInOut.cpp Drivers/Events/RTOS Public and internal APIs cleanup (#10955) 2019-08-02 12:23:47 +01:00
BusOut.cpp Drivers/Events/RTOS Public and internal APIs cleanup (#10955) 2019-08-02 12:23:47 +01:00
CAN.cpp Synchronize upstream changes - May 2023 edition (#160) 2023-05-17 01:18:28 -07:00
DigitalIn.cpp Drivers/Events/RTOS Public and internal APIs cleanup (#10955) 2019-08-02 12:23:47 +01:00
DigitalInOut.cpp Drivers/Events/RTOS Public and internal APIs cleanup (#10955) 2019-08-02 12:23:47 +01:00
DigitalOut.cpp Drivers/Events/RTOS Public and internal APIs cleanup (#10955) 2019-08-02 12:23:47 +01:00
FlashIAP.cpp Fix ABI differences between mbed-baremetal and mbed-os, remove PlatformMutex 2022-09-14 00:25:30 -07:00
I2C.cpp DMA SPI support for STM32 devices (#162) 2023-11-02 20:16:45 -07:00
I2CSlave.cpp Change explicit pinmap to static pinmap 2019-11-28 08:32:12 +01:00
InterruptIn.cpp GPIO: Use uintptr_t for gpio_irq_api context 2022-01-26 18:12:52 +00:00
MbedCRC.cpp Fix ABI differences between mbed-baremetal and mbed-os, remove PlatformMutex 2022-09-14 00:25:30 -07:00
OSPI.cpp Fix ABI differences between mbed-baremetal and mbed-os, remove PlatformMutex 2022-09-14 00:25:30 -07:00
PortIn.cpp Drivers/Events/RTOS Public and internal APIs cleanup (#10955) 2019-08-02 12:23:47 +01:00
PortInOut.cpp Drivers/Events/RTOS Public and internal APIs cleanup (#10955) 2019-08-02 12:23:47 +01:00
PortOut.cpp Drivers/Events/RTOS Public and internal APIs cleanup (#10955) 2019-08-02 12:23:47 +01:00
PwmOut.cpp add: PwmOut::read_pulsewitdth_us() for compatibility 2022-06-23 21:59:03 +09:00
QSPI.cpp Fix ABI differences between mbed-baremetal and mbed-os, remove PlatformMutex 2022-09-14 00:25:30 -07:00
ResetReason.cpp Drivers/Events/RTOS Public and internal APIs cleanup (#10955) 2019-08-02 12:23:47 +01:00
SPI.cpp SPI Driver API bugfixes and cleanup, part 2 (#180) 2023-08-25 09:14:00 -07:00
SPISlave.cpp SPISlave: Add explicit pinmap support 2019-11-28 08:31:56 +01:00
SerialBase.cpp Call HAL free functions from C++ destructors 2020-07-20 12:15:40 -07:00
SerialWireOutput.cpp C++11-ify virtualisation in FileHandle + Serials 2020-02-24 10:37:17 +02:00
Ticker.cpp Out-of-line LowPowerTimeout etc, lock 2020-04-27 10:19:08 +03:00
Timeout.cpp Correct Timeout rescheduling 2020-05-07 17:00:59 +03:00
Timer.cpp Timer: minor revisions 2020-05-11 16:20:13 +03:00
TimerEvent.cpp Correct/clarify TimerEvent::insert documentation 2020-12-07 16:28:52 +02:00
UnbufferedSerial.cpp Remove lock from enable_* function overrides 2021-01-21 11:09:50 +00:00
Watchdog.cpp allow reconfiguring a running watchdog 2020-02-25 16:12:50 +00:00