12 #ifndef SOURCE_CHIP_STM32_PERIPHERALS_DMAV2_INCLUDE_DISTORTOS_CHIP_DMACHANNEL_HPP_ 13 #define SOURCE_CHIP_STM32_PERIPHERALS_DMAV2_INCLUDE_DISTORTOS_CHIP_DMACHANNEL_HPP_ 139 class DmaChannelFunctor;
140 class DmaChannelPeripheral;
249 void startTransfer(uintptr_t memoryAddress, uintptr_t peripheralAddress,
size_t transactions,
Flags flags)
const;
281 #endif // SOURCE_CHIP_STM32_PERIPHERALS_DMAV2_INCLUDE_DISTORTOS_CHIP_DMACHANNEL_HPP_ Collection of useful templates.
Definition: DmaChannel.hpp:121
size_t getTransactionsLeft() const
Definition: STM32-DMAv2-DmaChannel.cpp:217
memory burst size - single transfer
DmaChannelFlags
DMA transfer configuration flags.
Definition: DmaChannel.hpp:32
DmaChannelFlags Flags
import DmaChannelFlags
Definition: DmaChannel.hpp:156
Tag struct used to enable bitwise operators for selected enum class flags.
Definition: EnumClassFlags.hpp:30
memory and peripheral data size - 1 byte
"transfer complete" interrupt is enabled
uint8_t request_
request identifier with which this object is associated
Definition: DmaChannel.hpp:274
memory burst size - incremental burst of 16 beats
Definition: DmaChannel.hpp:149
memory and peripheral data size - 4 bytes
peripheral address is incremented after each transaction
peripheral burst size - single transfer
DmaChannelPeripheral class is a raw DMA channel peripheral for DMAv2 in STM32.
Definition: STM32-DMAv2-DmaChannelPeripheral.hpp:24
transfer from memory to peripheral
peripheral is the flow controller
memory data size - 1 byte
DmaChannelFunctor * functor_
pointer to DmaChannelFunctor object associated with this one
Definition: DmaChannel.hpp:271
peripheral data size - 4 bytes
memory and peripheral burst size - incremental burst of 16 beats
DmaPeripheral class is a raw DMA peripheral for DMAv2 in STM32.
Definition: STM32-DMAv2-DmaPeripheral.hpp:24
peripheral data size - 2 bytes
memory burst size - incremental burst of 8 beats
memory data size - 4 bytes
peripheral data size - 1 byte
Definition: DmaChannelHandle.hpp:29
Top-level namespace of distortos project.
Definition: buttons.hpp:33
memory address is incremented after each transaction
const DmaChannelPeripheral & dmaChannelPeripheral_
reference to raw DMA channel peripheral
Definition: DmaChannel.hpp:268
memory data size - 2 bytes
void stopTransfer() const
Stops transfer.
Definition: STM32-DMAv2-DmaChannel.cpp:295
peripheral address is fixed
~DmaChannel()
DmaChannel's destructor.
Definition: DmaChannel.hpp:180
Definition: DmaChannelFunctor.hpp:29
memory and peripheral burst size - incremental burst of 8 beats
memory and peripheral burst size - incremental burst of 4 beats
constexpr DmaChannel(const DmaPeripheral &dmaPeripheral, const DmaChannelPeripheral &dmaChannelPeripheral)
DmaChannel's constructor.
Definition: DmaChannel.hpp:165
peripheral burst size - incremental burst of 8 beats
DMA is the flow controller.
Header with templated bitwise operators for enum class flags.
"transfer complete" interrupt is disabled
transfer from peripheral to memory
peripheral burst size - incremental burst of 4 beats
memory and peripheral data size - 2 bytes
memory and peripheral burst size - single transfer
peripheral burst size - incremental burst of 16 beats
void release()
Releases low-level DMA channel driver.
Definition: STM32-DMAv2-DmaChannel.cpp:222
const DmaPeripheral & dmaPeripheral_
reference to raw DMA peripheral
Definition: DmaChannel.hpp:265
memory burst size - incremental burst of 4 beats
int reserve(uint8_t request, DmaChannelFunctor &functor)
Reserves low-level DMA channel driver for exclusive use.
Definition: STM32-DMAv2-DmaChannel.cpp:228
void startTransfer(uintptr_t memoryAddress, uintptr_t peripheralAddress, size_t transactions, Flags flags) const
Configures and starts asynchronous transfer.
Definition: STM32-DMAv2-DmaChannel.cpp:243
void interruptHandler()
Interrupt handler.
Definition: STM32-DMAv2-DmaChannel.cpp:189