APM:Libraries
|
#include "hal_types.h"
Go to the source code of this file.
Classes | |
struct | dma_stream_t |
DMA stream type. More... | |
struct | dma_reg_map |
DMA register map type. More... | |
struct | dma_dev |
struct | DMA_InitType |
Macros | |
#define | DMA_CR_CH0 (0x0 << 25) |
#define | DMA_CR_CH1 (0x1 << 25) |
#define | DMA_CR_CH2 (0x2 << 25) |
#define | DMA_CR_CH3 (0x3 << 25) |
#define | DMA_CR_CH4 (0x4 << 25) |
#define | DMA_CR_CH5 (0x5 << 25) |
#define | DMA_CR_CH6 (0x6 << 25) |
#define | DMA_CR_CH7 (0x7 << 25) |
#define | DMA_CR_MBURST0 (0x0 << 23) |
#define | DMA_CR_MBURST4 (0x1 << 23) |
#define | DMA_CR_MBURST8 (0x2 << 23) |
#define | DMA_CR_MBURST16 (0x3 << 23) |
#define | DMA_CR_PBURST0 (0x0 << 21) |
#define | DMA_CR_PBURST4 (0x1 << 21) |
#define | DMA_CR_PBURST8 (0x2 << 21) |
#define | DMA_CR_PBURST16 (0x3 << 21) |
#define | DMA_CR_CT0 (0x0 << 19) |
#define | DMA_CR_CT1 (0x1 << 19) |
#define | DMA_CR_DBM (0x1 << 18) |
#define | DMA_CR_PL_LOW (0x0 << 16) |
#define | DMA_CR_PL_MEDIUM (0x1 << 16) |
#define | DMA_CR_PL_HIGH (0x2 << 16) |
#define | DMA_CR_PL_VERY_HIGH (0x3 << 16) |
#define | DMA_CR_PL_MASK (0x3 << 16) |
#define | DMA_CR_PINCOS (0x1 << 15) |
#define | DMA_CR_MSIZE_8BITS (0x0 << 13) |
#define | DMA_CR_MSIZE_16BITS (0x1 << 13) |
#define | DMA_CR_MSIZE_32BITS (0x2 << 13) |
#define | DMA_CR_PSIZE_8BITS (0x0 << 11) |
#define | DMA_CR_PSIZE_16BITS (0x1 << 11) |
#define | DMA_CR_PSIZE_32BITS (0x2 << 11) |
#define | DMA_CR_MINC (0x1 << 10) |
#define | DMA_CR_PINC (0x1 << 9) |
#define | DMA_CR_CIRC (0x1 << 8) |
#define | DMA_CR_DIR_P2M (0x0 << 6) |
#define | DMA_CR_DIR_M2P (0x1 << 6) |
#define | DMA_CR_DIR_M2M (0x2 << 6) |
#define | DMA_CR_PFCTRL (0x1 << 5) |
#define | DMA_CR_TCIE (0x1 << 4) |
#define | DMA_CR_HTIE (0x1 << 3) |
#define | DMA_CR_TEIE (0x1 << 2) |
#define | DMA_CR_DMEIE (0x1 << 1) |
#define | DMA_CR_EN (0x1) |
#define | DMA_FLAG_FEIF ((uint32_t)0x01) |
#define | DMA_FLAG_DMEIF ((uint32_t)0x04) |
#define | DMA_FLAG_TEIF ((uint32_t)0x08) |
#define | DMA_FLAG_HTIF ((uint32_t)0x10) |
#define | DMA_FLAG_TCIF ((uint32_t)0x20) |
#define | DMA_FIFOMode_Disable ((uint32_t)0x00000000) |
#define | DMA_FIFOMode_Enable ((uint32_t)0x00000004) |
#define | DMA_FIFOThreshold_1QuarterFull ((uint32_t)0x00000000) |
#define | DMA_FIFOThreshold_HalfFull ((uint32_t)0x00000001) |
#define | DMA_FIFOThreshold_3QuartersFull ((uint32_t)0x00000002) |
#define | DMA_FIFOThreshold_Full ((uint32_t)0x00000003) |
#define | DMA_Priority_Low ((uint32_t)0x00000000) |
#define | DMA_Priority_Medium ((uint32_t)0x00010000) |
#define | DMA_Priority_High ((uint32_t)0x00020000) |
#define | DMA_Priority_VeryHigh ((uint32_t)0x00030000) |
#define | _DMA1 (&dma1); |
#define | _DMA2 (&dma2); |
Typedefs | |
typedef struct dma_stream_t | dma_stream_t |
DMA stream type. More... | |
typedef enum dma_channel | dma_channel |
DMA channels. More... | |
typedef struct dma_reg_map | dma_reg_map |
DMA register map type. More... | |
typedef enum Dma_stream | dma_stream |
typedef struct dma_dev | dma_dev |
typedef enum dma_mode_flags | dma_mode_flags |
typedef enum dma_xfer_size | dma_xfer_size |
Enumerations | |
enum | dma_channel { DMA_CH0 = 0, DMA_CH1 = 1, DMA_CH2 = 2, DMA_CH3 = 3, DMA_CH4 = 4, DMA_CH5 = 5, DMA_CH6 = 6, DMA_CH7 = 7 } |
DMA channels. More... | |
enum | Dma_stream { DMA1_STREAM0 = 0, DMA1_STREAM1 = 1, DMA1_STREAM2 = 2, DMA1_STREAM3 = 3, DMA1_STREAM4 = 4, DMA1_STREAM5 = 5, DMA1_STREAM6 = 6, DMA1_STREAM7 = 7, DMA2_STREAM0 = 0x10 + 0, DMA2_STREAM1 = 0x10 + 1, DMA2_STREAM2 = 0x10 + 2, DMA2_STREAM3 = 0x10 + 3, DMA2_STREAM4 = 0x10 + 4, DMA2_STREAM5 = 0x10 + 5, DMA2_STREAM6 = 0x10 + 6, DMA2_STREAM7 = 0x10 + 7, NUM_DMA_STREAMS } |
enum | dma_mode_flags { DMA_MEM_2_MEM = 1 << 14, DMA_MINC_MODE = 1 << 7, DMA_PINC_MODE = 1 << 6, DMA_CIRC_MODE = 1 << 5, DMA_FROM_MEM = 1 << 4, DMA_TRNS_ERR = 1 << 3, DMA_HALF_TRNS = 1 << 2, DMA_TRNS_CMPLT = 1 << 1 } |
enum | dma_xfer_size { DMA_SIZE_8BITS = 0, DMA_SIZE_16BITS = 1, DMA_SIZE_32BITS = 2 } |
Functions | |
void | dma_init (dma_stream stream) |
Initialize a DMA device. More... | |
void | dma_setup_transfer (dma_stream stream, __IO void *peripheral_address, __IO void *memory_address0, uint32_t flags, uint32_t fifo_flags) |
void | dma_setup_transfer_mm (dma_stream stream, __IO void *memory_address0, __IO void *memory_address1, uint32_t flags, uint32_t fifo_flags) |
void | dma_init_transfer (dma_stream stream, DMA_InitType *) |
void | dma_set_num_transfers (dma_stream stream, uint16_t num_transfers) |
void | dma_attach_interrupt (dma_stream stream, Handler handler, uint8_t flag) |
Attach an interrupt to a DMA transfer. More... | |
void | dma_detach_interrupt (dma_stream stream) |
Detach a DMA transfer interrupt handler. More... | |
void | dma_enable (dma_stream stream) |
void | dma_disable (dma_stream stream) |
uint8_t | dma_is_stream_enabled (dma_stream stream) |
Check if a DMA stream is enabled. More... | |
uint8_t | dma_get_isr_bits (dma_stream stream) |
Get the ISR status bits for a DMA stream. More... | |
void | dma_clear_isr_bits (dma_stream stream) |
Clear the ISR status bits for a given DMA stream. More... | |
void | DMA1_Stream0_IRQHandler (void) |
void | DMA1_Stream1_IRQHandler (void) |
void | DMA1_Stream2_IRQHandler (void) |
void | DMA1_Stream3_IRQHandler (void) |
void | DMA1_Stream4_IRQHandler (void) |
void | DMA1_Stream5_IRQHandler (void) |
void | DMA1_Stream6_IRQHandler (void) |
void | DMA1_Stream7_IRQHandler (void) |
void | DMA2_Stream0_IRQHandler (void) |
void | DMA2_Stream1_IRQHandler (void) |
void | DMA2_Stream2_IRQHandler (void) |
void | DMA2_Stream3_IRQHandler (void) |
void | DMA2_Stream4_IRQHandler (void) |
void | DMA2_Stream5_IRQHandler (void) |
void | DMA2_Stream6_IRQHandler (void) |
void | DMA2_Stream7_IRQHandler (void) |
#define DMA_CR_DIR_M2P (0x1 << 6) |
Definition at line 138 of file dma.h.
Referenced by F4Light::SPIDevice::setup_dma_transfer().
#define DMA_CR_DIR_P2M (0x0 << 6) |
Definition at line 137 of file dma.h.
Referenced by F4Light::SPIDevice::setup_dma_transfer().
#define DMA_CR_DMEIE (0x1 << 1) |
Definition at line 145 of file dma.h.
Referenced by dma_detach_interrupt().
#define DMA_CR_EN (0x1) |
Definition at line 146 of file dma.h.
Referenced by dma_disable(), dma_enable(), dma_init(), dma_init_transfer(), and dma_is_stream_enabled().
#define DMA_CR_HTIE (0x1 << 3) |
Definition at line 143 of file dma.h.
Referenced by dma_detach_interrupt().
#define DMA_CR_MBURST0 (0x0 << 23) |
Definition at line 106 of file dma.h.
Referenced by F4Light::SPIDevice::setup_dma_transfer().
#define DMA_CR_MINC (0x1 << 10) |
Definition at line 134 of file dma.h.
Referenced by F4Light::SPIDevice::setup_dma_transfer().
#define DMA_CR_MSIZE_8BITS (0x0 << 13) |
Definition at line 126 of file dma.h.
Referenced by F4Light::SPIDevice::setup_dma_transfer().
#define DMA_CR_PBURST0 (0x0 << 21) |
Definition at line 110 of file dma.h.
Referenced by F4Light::SPIDevice::setup_dma_transfer().
#define DMA_CR_PSIZE_8BITS (0x0 << 11) |
Definition at line 130 of file dma.h.
Referenced by F4Light::SPIDevice::setup_dma_transfer().
#define DMA_CR_TCIE (0x1 << 4) |
Definition at line 142 of file dma.h.
Referenced by dma_detach_interrupt(), and F4Light::SPIDevice::setup_dma_transfer().
#define DMA_CR_TEIE (0x1 << 2) |
Definition at line 144 of file dma.h.
Referenced by dma_detach_interrupt().
#define DMA_FIFOMode_Disable ((uint32_t)0x00000000) |
Definition at line 154 of file dma.h.
Referenced by F4Light::SPIDevice::setup_dma_transfer().
#define DMA_FIFOThreshold_3QuartersFull ((uint32_t)0x00000002) |
#define DMA_FIFOThreshold_Full ((uint32_t)0x00000003) |
Definition at line 160 of file dma.h.
Referenced by F4Light::SPIDevice::setup_dma_transfer().
typedef enum dma_channel dma_channel |
DMA channels.
Notes:
Encapsulates state related to a DMA channel interrupt. DMA device type
typedef enum dma_mode_flags dma_mode_flags |
Flags for DMA transfer configuration.
typedef struct dma_reg_map dma_reg_map |
DMA register map type.
typedef enum Dma_stream dma_stream |
DMA channels переписано по образу и подобию либы от СТ, позволяющей не возиться с выяснением какой поток на каком ДМА
typedef struct dma_stream_t dma_stream_t |
DMA stream type.
typedef enum dma_xfer_size dma_xfer_size |
Source and destination transfer sizes.
enum dma_channel |
enum dma_mode_flags |
Flags for DMA transfer configuration.
enum Dma_stream |
DMA channels переписано по образу и подобию либы от СТ, позволяющей не возиться с выяснением какой поток на каком ДМА
enum dma_xfer_size |
void DMA1_Stream0_IRQHandler | ( | void | ) |
void DMA1_Stream1_IRQHandler | ( | void | ) |
void DMA1_Stream2_IRQHandler | ( | void | ) |
void DMA1_Stream3_IRQHandler | ( | void | ) |
void DMA1_Stream4_IRQHandler | ( | void | ) |
void DMA1_Stream5_IRQHandler | ( | void | ) |
void DMA1_Stream6_IRQHandler | ( | void | ) |
void DMA1_Stream7_IRQHandler | ( | void | ) |
void DMA2_Stream0_IRQHandler | ( | void | ) |
void DMA2_Stream1_IRQHandler | ( | void | ) |
void DMA2_Stream2_IRQHandler | ( | void | ) |
void DMA2_Stream3_IRQHandler | ( | void | ) |
void DMA2_Stream4_IRQHandler | ( | void | ) |
void DMA2_Stream5_IRQHandler | ( | void | ) |
void DMA2_Stream6_IRQHandler | ( | void | ) |
void DMA2_Stream7_IRQHandler | ( | void | ) |
void dma_attach_interrupt | ( | dma_stream | stream, |
Handler | handler, | ||
uint8_t | flag | ||
) |
Attach an interrupt to a DMA transfer.
Interrupts are enabled using appropriate mode flags in dma_setup_transfer().
dev | DMA device |
stream | Stream to attach handler to |
handler | Interrupt handler to call when channel interrupt fires. |
Definition at line 108 of file dma.c.
Referenced by F4Light::SPIDevice::setup_dma_transfer().
void dma_clear_isr_bits | ( | dma_stream | stream | ) |
Clear the ISR status bits for a given DMA stream.
dev | DMA device |
stream | Stream whose ISR bits to clear. |
Definition at line 237 of file dma.c.
Referenced by F4Light::SPIDevice::disable_dma(), dispatch_handler(), and F4Light::SPIDevice::setup_dma_transfer().
void dma_detach_interrupt | ( | dma_stream | stream | ) |
Detach a DMA transfer interrupt handler.
After calling this function, the given channel's interrupts will be disabled.
dev | DMA device |
stream | Stream whose handler to detach Clears interrupt enable bits in the channel's CCR register. |
Definition at line 132 of file dma.c.
Referenced by F4Light::SPIDevice::disable_dma().
void dma_disable | ( | dma_stream | stream | ) |
Definition at line 219 of file dma.c.
Referenced by F4Light::SPIDevice::disable_dma().
void dma_enable | ( | dma_stream | stream | ) |
Definition at line 213 of file dma.c.
Referenced by F4Light::SPIDevice::setup_dma_transfer().
uint8_t dma_get_isr_bits | ( | dma_stream | stream | ) |
void dma_init | ( | dma_stream | stream | ) |
Initialize a DMA device.
dev | Device to initialize. |
Definition at line 85 of file dma.c.
Referenced by F4Light::SPIDevice::setup_dma_transfer().
void dma_init_transfer | ( | dma_stream | stream, |
DMA_InitType * | |||
) |
Definition at line 144 of file dma.c.
Referenced by F4Light::SPIDevice::setup_dma_transfer().
uint8_t dma_is_stream_enabled | ( | dma_stream | stream | ) |
Check if a DMA stream is enabled.
dev | DMA device |
stream | Stream whose enabled bit to check. |
Definition at line 230 of file dma.c.
Referenced by F4Light::SPIDevice::get_dma_ready().
void dma_set_num_transfers | ( | dma_stream | stream, |
uint16_t | num_transfers | ||
) |
void dma_setup_transfer | ( | dma_stream | stream, |
__IO void * | peripheral_address, | ||
__IO void * | memory_address0, | ||
uint32_t | flags, | ||
uint32_t | fifo_flags | ||
) |
void dma_setup_transfer_mm | ( | dma_stream | stream, |
__IO void * | memory_address0, | ||
__IO void * | memory_address1, | ||
uint32_t | flags, | ||
uint32_t | fifo_flags | ||
) |