DMA ======= 概述 ------- DMA( Direct Memory Access, 直接存储访问)能够支持存储器与外设之间,存储器与存储器之间的多通道数据传输。 功能特性 ----------------- DMA 支持如下特性: - 字( word )地址不对齐传输和字节传输。 - 多通道传输(通道的优先级可配置)。 - 支持 DMA 描述链表结构。 - 三种传输方向:存储器 → 存储器( MEM → MEM )、外设 → 存储器( PERI → MEM )、和存储器 → 外设( MEM → PERI )。所有通道均支持传输方向自定义。 - 按固定地址访问( FIFO 模式)或按数据位宽地址增加访问。 - 每个通道都可指定任意硬件请求作为外设请求。 架构图 --------- .. image:: ../../../_static/DMA_architecture.png :align: center 用法流程 --------- - 初始化 :cpp:func:`wq_dma_init` - 内存复制 :cpp:func:`wq_dma_memcpy` - 内存组复制 :cpp:func:`wq_dma_memcpy_group` - 注销 :cpp:func:`wq_dma_deinit` 注:各外设与内存数据交互皆调用各外设特定的dma传输函数(内含调用除 wq_dma_init 和 wq_dma_deinit 以外的函数) 参考示例 ----------- :: /examples/dma_demo/ API 介绍 ----------- .. doxygenfile:: wq_dma.h