dmadrv.c File Reference
DMADRV API implementation.
License
Copyright 2018 Silicon Laboratories Inc. www.silabs.com
The licensor of this software is Silicon Laboratories Inc. Your use of this software is governed by the terms of Silicon Labs Master Software License Agreement (MSLA) available at www.silabs.com/about-us/legal/master-software-license-agreement. This software is distributed to you in Source Code format and is governed by the sections of the MSLA applicable to Source Code.
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.
|
|