hv_drv_Dma.h 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. /*
  2. * @file hv_drv_Dma.h
  3. * @brief Header file of misc module.
  4. *
  5. * @verbatim
  6. * ==============================================================================
  7. * ##### How to use #####
  8. * ==============================================================================
  9. * (+) Use ()
  10. *
  11. * @endverbatim
  12. * @author HiView SoC Software Team
  13. * @version 1.0.0
  14. * @date 2023-05-11
  15. */
  16. #ifndef _HV_DRV_DMA_H
  17. #define _HV_DRV_DMA_H
  18. #include "hv_cal_Dma.h"
  19. /** @defgroup dma dma
  20. * dma mem functions
  21. * @{
  22. */
  23. /** @brief dma初始化,选择通道和设置回调函数。type类型0:1个src对应1个dst,size可能超过block_ts,函数内部生成linklist,对应调用Hv_Drv_Dma_MemMove。
  24. * type类型1:多个src对应1个dst,size可能超过block_ts,函数内部生成linklist,对应调用Hv_Drv_Dma_MemMoveArray。
  25. * @self channelparam no.
  26. * @param uiType 1:multy src or not。
  27. */
  28. void Hv_Drv_Dma_Init(DmaPortChannel enPortChannelNum,void* Hv_Dma_Callback);
  29. /** @brief dma move。
  30. * @self channelparam no.
  31. * @param SrcAddr src address。
  32. * @param DstAddr dst address。
  33. * @param Size size to move。
  34. */
  35. void Hv_Drv_Dma_MemMove(DmaPortChannel enPortChannelNum, UINT32 uiSrcAddr, UINT32 uiDstAddr, UINT32 uiSize);
  36. /** @brief dma move with multy src。
  37. * @self channelparam no.
  38. * @param SrcArray src1 address, src1 size, src2 address, src2 size...。
  39. * @param ArraySize src number。
  40. * @param DstAddr dst address。
  41. */
  42. void Hv_Drv_Dma_MemMoveArray(DmaPortChannel enPortChannelNum, UINT32 *puiSrcArray, UINT32 uiArraySize, UINT32 uiDstAddr);
  43. /** @} */
  44. #endif