Edit online

设计说明

源代码位于 bsp/artinchip/

  • bsp/artinchip/drv/dma/drv_dma.c,DMA Driver 层实现

  • bsp/artinchip/include/drv/drv_dma.h,DMA Driver 层接口,提供了类似 Linux 的 DMA Engine 接口

  • bsp/artinchip/hal/dma/hal_dma.c,DMA HAL 层实现

  • bsp/artinchip/include/hal/hal_dma.h,DMA HAL 层接口头文件

  • bsp/artinchip/hal/dma/hal_dma_reg.h,DMA 控制器的寄存器定义

RTOS 系统中并没有提供了一个类似 Linux 的 DMA Engine 子系统,为了方便 DMA 使用者的代码兼容,DMA 驱动提供了类似 Linux 的 DMA Engine 接口定义。

DMA 驱动的软件框架如下图:

../images/sw_system11.png
1. DMA 驱动的软件架构图

图中可以看到 DMA 驱动不依赖任何 RTOS 的设备驱动模型,所以无论是在 RTOS 环境、还是 baremetal 环境,都是可以直接调用 DMA Engine API 的。