📄 csl_edma2.h
字号:
} EDMA_Config;
/*****************************************************************************\
* global variable declarations
\*****************************************************************************/
#define EDMA_hNull EDMA_HNULL
extern far Uint8 tccAllocTable[EDMA_CHA_CNT];
/*****************************************************************************\
* global function declarations
\*****************************************************************************/
/*
* ============================================================================
* @n@b EDMA_reset
*
* @b Description
* @n Resets the given DMA channel.
*
* @b Arguments
* @verbatim
hEdma Handle to the channel to be reset
@endverbatim
*
* <b> Return Value </b>
* @n None
*
* <b> Pre Condition </b>
* @n Channel must have been opened, previously.
*
* <b> Post Condition </b>
* @li 1. The corresponding PaRAM entry is cleared to 0.
* @li 2. The channel is disabled and event register bit is cleared.
*
* @b Modifies
* @n The system data structures are modified.
*
*
* @b Example
* @verbatim
EDMA_handle handle;
Uint32 chan_no = 1;
handle = EDMA_open(chan_no, EDMA_OPEN_RESET);
...
EDMA_reset(handle);
...
@endverbatim
* ============================================================================
*/
CSLAPI void EDMA_reset (
EDMA_Handle hEdma
);
/*
* ============================================================================
* @n@b EDMA_resetAll
*
* @b Description
* @n Resets all EDMA channels.
*
* @b Arguments </b>
* @n None
*
* <b> Return Value </b>
* @n None
*
* <b> Pre Condition </b>
* @n None
*
* <b> Post Condition </b>
* @li 1. The PaRAM words corresponding to all of the DMA channels is are
* cleared to 0.
* @li 2. All channels are disabled and their interrupts reset.
*
* @b Modifies
* @n The system data structures are modified.
*
* @b Example
* @verbatim
...
EDMA_resetAll();
...
@endverbatim
* ============================================================================
*/
CSLAPI void EDMA_resetAll (
void
);
/*
* ============================================================================
* @n@b EDMA_open
*
* @b Description
* @n Opens a DMA channel for use by the application.
*
* @b Arguments </b>
* @verbatim
1. Channel number or EDMA_CHA_ANY (to open any channel)
2. Flags - EDMA_OPEN_RESET or EDMA_OPEN_ENABLE or 0
EDMA_OPEN_RESET - resets the channel
EDMA_OPEN_ENABLE - enables the transfers
@endverbatim
* <b> Return Value </b>
* @li A valid handle on success
* @li EDMA_HINV on failure
*
* <b> Pre Condition </b>
* @n None
*
* <b> Post Condition </b>
* @li 1. The channel is enabled or reset (PaRAM entry is cleared,
* channel disabled and interrupts cleared) depending on the flags
* passed.
*
* @b Modifies
* @n The system data structures are modified.
*
* @b Example
* @verbatim
Uint32 chan_no = 4;
EDMA_handle handle;
...
handle = EDMA_open(chan_no, 0);
...
@endverbatim
* ============================================================================
*/
CSLAPI EDMA_Handle EDMA_open (
int chaNum,
Uint32 flags
);
/*
* ============================================================================
* @n@b EDMA_close
*
* @b Description
* @n Closes a previously opened DMA channel, after its use
* by the application.
*
* @b Arguments
* @verbatim
hEdma Handle to the channel to be closed
@endverbatim
*
* <b> Return Value </b>
* @li None
*
* <b> Pre Condition </b>
* @n The channel to be closed must have been opened previously.
*
* <b> Post Condition </b>
* @li 1. The channel is closed and reset.
*
* @b Modifies
* @n The system data structures are modified.
*
*
* @b Example
* @verbatim
EDMA_handle handle;
Uint32 chan_no = 1;
handle = EDMA_open(chan_no, EDMA_OPEN_RESET);
...
EDMA_close(handle);
...
@endverbatim
* ============================================================================
*/
CSLAPI void EDMA_close (
EDMA_Handle hEdma
);
/*
* ============================================================================
* @n@b EDMA_allocTable
*
* @b Description
* @n Allocates a PaRAM table entry for use by the application.
*
* @b Arguments
* @verbatim
tableNum - PaRAM table entry number (0 to EDMA_TABLE_CNT)
or
EDMA_ALLOC_ANY - to allocate any available entry of PaRAM table
@endverbatim
*
* <b> Return Value </b>
* @li A valid handle on success
* @li EDMA_HINV on failure
*
* <b> Pre Condition </b>
* @n None
*
* <b> Post Condition </b>
* @li A PaRAM table entry is allocated from the free pool.
*
* @b Modifies
* @n The system data structures are modified.
*
*
* @b Example
* @verbatim
EDMA_handle handle;
Uint32 tabNum = 1;
...
handle = EDMA_allocTable(tabNum);
...
@endverbatim
* ============================================================================
*/
CSLAPI EDMA_Handle EDMA_allocTable (
int tableNum
);
/*
* ============================================================================
* @n@b EDMA_freeTable
*
* @b Description
* @n Frees a previously allocated PaRAM table entry.
*
* @b Arguments
* @verbatim
hEdma Handle to the PaRAM entry to be freed
@endverbatim
*
* <b> Return Value </b>
* @n None
*
* <b> Pre Condition </b>
* @n The channel to be closed must have been allocated previously.
*
* <b> Post Condition </b>
* @li One more entry in the free PaRAM table.
*
* @b Modifies
* @n The system data structures are modified.
*
*
* @b Example
* @verbatim
EDMA_handle handle;
Uint32 tabNum = 1;
...
handle = EDMA_allocTable(tabNum);
...
EDMA_freeTable(handle);
...
@endverbatim
* ============================================================================
*/
CSLAPI void EDMA_freeTable (
EDMA_Handle hEdma
);
/*
* ============================================================================
* @n@b EDMA_allocTableEx
*
* @b Description
* @n Allocates a number of PaRAM table entries from the free pool.
*
* @b Arguments
* @verbatim
cnt number of channels to be allocaed
array pointer to the first element of array of EDMA_handles
to return handles for the allocated entries
@endverbatim
*
* <b> Return Value </b>
* @li The number of allocated entries, if success
* @li 0, if failure
*
* <b> Pre Condition </b>
* @n None
*
* <b> Post Condition </b>
* @li 1. The number of entries in free PaRAM table are less by 'cnt'
*
* @b Modifies
* @n The system data structures are modified.
*
*
* @b Example
* @verbatim
EDMA_handle hArray[4];
Uint32 cnt = 4, retCnt;
retCnt = EDMA_allocTableEx(cnt, &hArray[0]);
...
@endverbatim
* ============================================================================
*/
CSLAPI Uint32 EDMA_allocTableEx (
int cnt,
EDMA_Handle * array
);
/*
* ============================================================================
* @n@b EDMA_freeTableEx
*
* @b Description
* @n Frees previously allocated PaRAM table entries.
*
* @b Arguments
* @verbatim
cnt number of channels to be freed
array pointer to the first element of array of EDMA_handles
that are to be freed
@endverbatim
*
* <b> Return Value </b>
* @n None
*
* <b> Pre Condition </b>
* @n Freed entries must have been allocated previously
*
* <b> Post Condition </b>
* @li The number of entries in free PaRAM table are more by 'cnt'
*
* @b Modifies
* @n The system data structures are modified.
*
*
* @b Example
* @verbatim
EDMA_handle hArray[4];
Uint32 cnt = 4, retCnt;
retCnt = EDMA_allocTableEx(cnt, &hArray[0]);
...
EDMA_freeTableEx(cnt, &hArray[0]);
...
@endverbatim
* ============================================================================
*/
CSLAPI void EDMA_freeTableEx (
int cnt,
EDMA_Handle * array
);
/*
* ============================================================================
* @n@b EDMA_clearPram
*
* @b Description
* @n The PaRAM words corresponding to all of the DMA channels are set to
* 憊al
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -