111 #ifndef ti_drivers_UDMACC26XX__include
112 #define ti_drivers_UDMACC26XX__include
120 #include "driverlib/udma.h"
121 #include "inc/hw_types.h"
123 #include <ti/sysbios/family/arm/cc26xx/Power.h>
124 #include <ti/sysbios/family/arm/cc26xx/PowerCC2650.h>
127 #ifndef UDMACC26XX_CONFIG_BASE
128 #define UDMACC26XX_CONFIG_BASE 0x20000400
132 #if(UDMACC26XX_CONFIG_BASE & 0x3FF)
133 #error "Base address for DMA control table 'UDMACC26XX_CONFIG_BASE' must be 1024 bytes aligned."
137 #if defined(__IAR_SYSTEMS_ICC__)
138 #define ALLOCATE_CONTROL_TABLE_ENTRY(ENTRY_NAME, CHANNEL_INDEX) \
139 __no_init static volatile tDMAControlTable ENTRY_NAME @ UDMACC26XX_CONFIG_BASE + CHANNEL_INDEX * sizeof(tDMAControlTable)
141 #if defined(__TI_COMPILER_VERSION__)
142 #define ALLOCATE_CONTROL_TABLE_ENTRY(ENTRY_NAME, CHANNEL_INDEX) \
143 PRAGMA(LOCATION( ENTRY_NAME , UDMACC26XX_CONFIG_BASE + CHANNEL_INDEX * sizeof(tDMAControlTable) );)\
144 static volatile tDMAControlTable ENTRY_NAME
145 #define PRAGMA(x) _Pragma(#x)
149 #define UDMACC26XX_SET_TRANSFER_SIZE(SIZE) (((SIZE - 1) << UDMA_XFER_SIZE_S) & UDMA_XFER_SIZE_M)
151 #define UDMACC26XX_GET_TRANSFER_SIZE(CONTROL) (((CONTROL & UDMA_XFER_SIZE_M) >> UDMA_XFER_SIZE_S) + 1)
158 ti_sysbios_family_arm_m3_Hwi_Struct
hwi;
214 object->isOpen = FALSE;
255 HWREG(hwAttrs->
baseAddr + UDMA_O_SETCHANNELEN) = channelBitMask;
284 return (uDMAIntStatus(hwAttrs->
baseAddr) & channelBitMask) ?
true :
false;
312 uDMAIntClear(hwAttrs->
baseAddr, channelBitMask);
340 uDMAChannelDisable(hwAttrs->
baseAddr, channelBitMask);
bool isOpen
Definition: UDMACC26XX.h:157
void UDMACC26XX_close(UDMACC26XX_Handle handle)
Function to close the DMA driver.
__STATIC_INLINE void UDMACC26XX_clearInterrupt(UDMACC26XX_Handle handle, uint32_t channelBitMask)
Definition: UDMACC26XX.h:304
__STATIC_INLINE void UDMACC26XX_channelEnable(UDMACC26XX_Handle handle, uint32_t channelBitMask)
Definition: UDMACC26XX.h:247
uint8_t intNum
Definition: UDMACC26XX.h:167
__STATIC_INLINE void UDMACC26XX_init(UDMACC26XX_Handle handle)
Function to initialize the CC26XX DMA driver.
Definition: UDMACC26XX.h:206
UDMACC26XX Global configuration.
Definition: UDMACC26XX.h:181
ti_sysbios_family_arm_m3_Hwi_Struct hwi
Definition: UDMACC26XX.h:158
struct UDMACC26XX_Object UDMACC26XX_Object
UDMACC26XX object.
Power_Resource powerMngrId
Definition: UDMACC26XX.h:166
UDMACC26XX_Handle UDMACC26XX_open()
Function to initialize the CC26XX DMA peripheral.
struct UDMACC26XX_Config UDMACC26XX_Config
UDMACC26XX Global configuration.
UDMACC26XX hardware attributes.
Definition: UDMACC26XX.h:164
void * object
Definition: UDMACC26XX.h:182
uint8_t intPriority
UDMACC26XX error interrupt priority.
Definition: UDMACC26XX.h:175
__STATIC_INLINE void UDMACC26XX_channelDisable(UDMACC26XX_Handle handle, uint32_t channelBitMask)
Definition: UDMACC26XX.h:332
__STATIC_INLINE bool UDMACC26XX_channelDone(UDMACC26XX_Handle handle, uint32_t channelBitMask)
Definition: UDMACC26XX.h:276
uint32_t baseAddr
Definition: UDMACC26XX.h:165
void UDMACC26XX_hwiIntFxn(UArg callbacks)
UDMACC26XX object.
Definition: UDMACC26XX.h:156
struct UDMACC26XX_Config * UDMACC26XX_Handle
A handle that is returned from a UDMACC26XX_open() call.
Definition: UDMACC26XX.h:189
void const * hwAttrs
Definition: UDMACC26XX.h:183
struct UDMACC26XX_HWAttrs UDMACC26XX_HWAttrs
UDMACC26XX hardware attributes.