dmadrv.c File Reference

DMADRV API implementation.

Version
5.6.0

License

(C) Copyright 2014 Silicon Labs, www.silabs.com

This file is licensed under the Silabs License Agreement. See the file "Silabs_License_Agreement.txt" for details. Before using this software for any purpose, you must agree to the terms of that agreement.

Definition in file dmadrv.c.

#include <stdbool.h>
#include <stddef.h>
#include "em_device.h"
#include "em_cmu.h"
#include "em_core.h"
#include "dmadrv.h"
#include "dmactrl.h"

Functions

Ecode_t DMADRV_AllocateChannel (unsigned int *channelId, void *capabilities)
 Allocate (reserve) a DMA channel.
 
Ecode_t DMADRV_DeInit (void)
 Deinitialize DMADRV.
 
Ecode_t DMADRV_FreeChannel (unsigned int channelId)
 Free an allocated (reserved) DMA channel.
 
Ecode_t DMADRV_Init (void)
 Initialize DMADRV.
 
Ecode_t DMADRV_MemoryPeripheral (unsigned int channelId, DMADRV_PeripheralSignal_t peripheralSignal, void *dst, void *src, bool srcInc, int len, DMADRV_DataSize_t size, DMADRV_Callback_t callback, void *cbUserParam)
 Start a memory to a peripheral DMA transfer.
 
Ecode_t DMADRV_MemoryPeripheralPingPong (unsigned int channelId, DMADRV_PeripheralSignal_t peripheralSignal, void *dst, void *src0, void *src1, bool srcInc, int len, DMADRV_DataSize_t size, DMADRV_Callback_t callback, void *cbUserParam)
 Start a memory to a peripheral ping-pong DMA transfer.
 
Ecode_t DMADRV_PauseTransfer (unsigned int channelId)
 Pause an ongoing DMA transfer.
 
Ecode_t DMADRV_PeripheralMemory (unsigned int channelId, DMADRV_PeripheralSignal_t peripheralSignal, void *dst, void *src, bool dstInc, int len, DMADRV_DataSize_t size, DMADRV_Callback_t callback, void *cbUserParam)
 Start a peripheral to memory DMA transfer.
 
Ecode_t DMADRV_PeripheralMemoryPingPong (unsigned int channelId, DMADRV_PeripheralSignal_t peripheralSignal, void *dst0, void *dst1, void *src, bool dstInc, int len, DMADRV_DataSize_t size, DMADRV_Callback_t callback, void *cbUserParam)
 Start a peripheral to memory ping-pong DMA transfer.
 
Ecode_t DMADRV_ResumeTransfer (unsigned int channelId)
 Resume an ongoing DMA transfer.
 
Ecode_t DMADRV_StopTransfer (unsigned int channelId)
 Stop an ongoing DMA transfer.
 
Ecode_t DMADRV_TransferActive (unsigned int channelId, bool *active)
 Check if a transfer is running.
 
Ecode_t DMADRV_TransferCompletePending (unsigned int channelId, bool *pending)
 Check if a transfer complete is pending.
 
Ecode_t DMADRV_TransferDone (unsigned int channelId, bool *done)
 Check if a transfer has completed.
 
Ecode_t DMADRV_TransferRemainingCount (unsigned int channelId, int *remaining)
 Get number of items remaining in a transfer.