.. highlight:: c .. _libmaple-dma: ``dma.h`` ========= Direct Memory Access (DMA) support. .. contents:: Contents :local: Types ----- .. doxygenstruct:: dma_reg_map .. doxygenstruct:: dma_dev .. doxygenstruct:: dma_handler_config .. doxygenenum:: dma_mode_flags .. doxygenenum:: dma_xfer_size .. doxygenenum:: dma_channel .. doxygenenum:: dma_priority .. doxygenenum:: dma_irq_cause .. doxygenstruct:: dma_channel_reg_map Devices ------- .. doxygenvariable:: DMA1 .. doxygenvariable:: DMA2 Functions --------- .. TODO [0.0.11?] figure out the dma_attach_interrupt weirdness .. warning:: There currently appear to be problems with the dma_attach_interrupt() implementation. .. doxygenfunction:: dma_init .. doxygenfunction:: dma_setup_transfer .. doxygenfunction:: dma_set_num_transfers .. doxygenfunction:: dma_set_priority .. doxygenfunction:: dma_attach_interrupt .. doxygenfunction:: dma_detach_interrupt .. doxygenfunction:: dma_get_irq_cause .. doxygenfunction:: dma_enable .. doxygenfunction:: dma_disable .. doxygenfunction:: dma_set_mem_addr .. doxygenfunction:: dma_set_per_addr .. doxygenfunction:: dma_channel_regs .. doxygenfunction:: dma_is_channel_enabled .. doxygenfunction:: dma_get_isr_bits .. doxygenfunction:: dma_clear_isr_bits Register Map Base Pointers -------------------------- .. doxygendefine:: DMA1_BASE .. doxygendefine:: DMA2_BASE Register Bit Definitions ------------------------ Interrupt status register ~~~~~~~~~~~~~~~~~~~~~~~~~ .. doxygendefine:: DMA_ISR_TEIF7_BIT .. doxygendefine:: DMA_ISR_HTIF7_BIT .. doxygendefine:: DMA_ISR_TCIF7_BIT .. doxygendefine:: DMA_ISR_GIF7_BIT .. doxygendefine:: DMA_ISR_TEIF6_BIT .. doxygendefine:: DMA_ISR_HTIF6_BIT .. doxygendefine:: DMA_ISR_TCIF6_BIT .. doxygendefine:: DMA_ISR_GIF6_BIT .. doxygendefine:: DMA_ISR_TEIF5_BIT .. doxygendefine:: DMA_ISR_HTIF5_BIT .. doxygendefine:: DMA_ISR_TCIF5_BIT .. doxygendefine:: DMA_ISR_GIF5_BIT .. doxygendefine:: DMA_ISR_TEIF4_BIT .. doxygendefine:: DMA_ISR_HTIF4_BIT .. doxygendefine:: DMA_ISR_TCIF4_BIT .. doxygendefine:: DMA_ISR_GIF4_BIT .. doxygendefine:: DMA_ISR_TEIF3_BIT .. doxygendefine:: DMA_ISR_HTIF3_BIT .. doxygendefine:: DMA_ISR_TCIF3_BIT .. doxygendefine:: DMA_ISR_GIF3_BIT .. doxygendefine:: DMA_ISR_TEIF2_BIT .. doxygendefine:: DMA_ISR_HTIF2_BIT .. doxygendefine:: DMA_ISR_TCIF2_BIT .. doxygendefine:: DMA_ISR_GIF2_BIT .. doxygendefine:: DMA_ISR_TEIF1_BIT .. doxygendefine:: DMA_ISR_HTIF1_BIT .. doxygendefine:: DMA_ISR_TCIF1_BIT .. doxygendefine:: DMA_ISR_GIF1_BIT .. doxygendefine:: DMA_ISR_TEIF7 .. doxygendefine:: DMA_ISR_HTIF7 .. doxygendefine:: DMA_ISR_TCIF7 .. doxygendefine:: DMA_ISR_GIF7 .. doxygendefine:: DMA_ISR_TEIF6 .. doxygendefine:: DMA_ISR_HTIF6 .. doxygendefine:: DMA_ISR_TCIF6 .. doxygendefine:: DMA_ISR_GIF6 .. doxygendefine:: DMA_ISR_TEIF5 .. doxygendefine:: DMA_ISR_HTIF5 .. doxygendefine:: DMA_ISR_TCIF5 .. doxygendefine:: DMA_ISR_GIF5 .. doxygendefine:: DMA_ISR_TEIF4 .. doxygendefine:: DMA_ISR_HTIF4 .. doxygendefine:: DMA_ISR_TCIF4 .. doxygendefine:: DMA_ISR_GIF4 .. doxygendefine:: DMA_ISR_TEIF3 .. doxygendefine:: DMA_ISR_HTIF3 .. doxygendefine:: DMA_ISR_TCIF3 .. doxygendefine:: DMA_ISR_GIF3 .. doxygendefine:: DMA_ISR_TEIF2 .. doxygendefine:: DMA_ISR_HTIF2 .. doxygendefine:: DMA_ISR_TCIF2 .. doxygendefine:: DMA_ISR_GIF2 .. doxygendefine:: DMA_ISR_TEIF1 .. doxygendefine:: DMA_ISR_HTIF1 .. doxygendefine:: DMA_ISR_TCIF1 .. doxygendefine:: DMA_ISR_GIF1 Interrupt flag clear register ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. doxygendefine:: DMA_IFCR_CTEIF7_BIT .. doxygendefine:: DMA_IFCR_CHTIF7_BIT .. doxygendefine:: DMA_IFCR_CTCIF7_BIT .. doxygendefine:: DMA_IFCR_CGIF7_BIT .. doxygendefine:: DMA_IFCR_CTEIF6_BIT .. doxygendefine:: DMA_IFCR_CHTIF6_BIT .. doxygendefine:: DMA_IFCR_CTCIF6_BIT .. doxygendefine:: DMA_IFCR_CGIF6_BIT .. doxygendefine:: DMA_IFCR_CTEIF5_BIT .. doxygendefine:: DMA_IFCR_CHTIF5_BIT .. doxygendefine:: DMA_IFCR_CTCIF5_BIT .. doxygendefine:: DMA_IFCR_CGIF5_BIT .. doxygendefine:: DMA_IFCR_CTEIF4_BIT .. doxygendefine:: DMA_IFCR_CHTIF4_BIT .. doxygendefine:: DMA_IFCR_CTCIF4_BIT .. doxygendefine:: DMA_IFCR_CGIF4_BIT .. doxygendefine:: DMA_IFCR_CTEIF3_BIT .. doxygendefine:: DMA_IFCR_CHTIF3_BIT .. doxygendefine:: DMA_IFCR_CTCIF3_BIT .. doxygendefine:: DMA_IFCR_CGIF3_BIT .. doxygendefine:: DMA_IFCR_CTEIF2_BIT .. doxygendefine:: DMA_IFCR_CHTIF2_BIT .. doxygendefine:: DMA_IFCR_CTCIF2_BIT .. doxygendefine:: DMA_IFCR_CGIF2_BIT .. doxygendefine:: DMA_IFCR_CTEIF1_BIT .. doxygendefine:: DMA_IFCR_CHTIF1_BIT .. doxygendefine:: DMA_IFCR_CTCIF1_BIT .. doxygendefine:: DMA_IFCR_CGIF1_BIT .. doxygendefine:: DMA_IFCR_CTEIF7 .. doxygendefine:: DMA_IFCR_CHTIF7 .. doxygendefine:: DMA_IFCR_CTCIF7 .. doxygendefine:: DMA_IFCR_CGIF7 .. doxygendefine:: DMA_IFCR_CTEIF6 .. doxygendefine:: DMA_IFCR_CHTIF6 .. doxygendefine:: DMA_IFCR_CTCIF6 .. doxygendefine:: DMA_IFCR_CGIF6 .. doxygendefine:: DMA_IFCR_CTEIF5 .. doxygendefine:: DMA_IFCR_CHTIF5 .. doxygendefine:: DMA_IFCR_CTCIF5 .. doxygendefine:: DMA_IFCR_CGIF5 .. doxygendefine:: DMA_IFCR_CTEIF4 .. doxygendefine:: DMA_IFCR_CHTIF4 .. doxygendefine:: DMA_IFCR_CTCIF4 .. doxygendefine:: DMA_IFCR_CGIF4 .. doxygendefine:: DMA_IFCR_CTEIF3 .. doxygendefine:: DMA_IFCR_CHTIF3 .. doxygendefine:: DMA_IFCR_CTCIF3 .. doxygendefine:: DMA_IFCR_CGIF3 .. doxygendefine:: DMA_IFCR_CTEIF2 .. doxygendefine:: DMA_IFCR_CHTIF2 .. doxygendefine:: DMA_IFCR_CTCIF2 .. doxygendefine:: DMA_IFCR_CGIF2 .. doxygendefine:: DMA_IFCR_CTEIF1 .. doxygendefine:: DMA_IFCR_CHTIF1 .. doxygendefine:: DMA_IFCR_CTCIF1 .. doxygendefine:: DMA_IFCR_CGIF1 Channel configuration register ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. doxygendefine:: DMA_CCR_MEM2MEM_BIT .. doxygendefine:: DMA_CCR_MINC_BIT .. doxygendefine:: DMA_CCR_PINC_BIT .. doxygendefine:: DMA_CCR_CIRC_BIT .. doxygendefine:: DMA_CCR_DIR_BIT .. doxygendefine:: DMA_CCR_TEIE_BIT .. doxygendefine:: DMA_CCR_HTIE_BIT .. doxygendefine:: DMA_CCR_TCIE_BIT .. doxygendefine:: DMA_CCR_EN_BIT .. doxygendefine:: DMA_CCR_MEM2MEM .. doxygendefine:: DMA_CCR_PL .. doxygendefine:: DMA_CCR_PL_LOW .. doxygendefine:: DMA_CCR_PL_MEDIUM .. doxygendefine:: DMA_CCR_PL_HIGH .. doxygendefine:: DMA_CCR_PL_VERY_HIGH .. doxygendefine:: DMA_CCR_MSIZE .. doxygendefine:: DMA_CCR_MSIZE_8BITS .. doxygendefine:: DMA_CCR_MSIZE_16BITS .. doxygendefine:: DMA_CCR_MSIZE_32BITS .. doxygendefine:: DMA_CCR_PSIZE .. doxygendefine:: DMA_CCR_PSIZE_8BITS .. doxygendefine:: DMA_CCR_PSIZE_16BITS .. doxygendefine:: DMA_CCR_PSIZE_32BITS .. doxygendefine:: DMA_CCR_MINC .. doxygendefine:: DMA_CCR_PINC .. doxygendefine:: DMA_CCR_CIRC .. doxygendefine:: DMA_CCR_DIR .. doxygendefine:: DMA_CCR_TEIE .. doxygendefine:: DMA_CCR_HTIE .. doxygendefine:: DMA_CCR_TCIE .. doxygendefine:: DMA_CCR_EN