NUC970 Technical Reference Manual
Publication Release Date: Dec. 15, 2015
- 300 -
Revision V1.30
NUC97
0
T
E
CHNIC
A
L
RE
F
E
RE
N
CE
MA
NUA
L
5.9.4 Basic Configuration
Before using GDMA, i
t’s necessary to enable clock of GDMA. Set GDMA (CLK_HCLKEN[12]) high to
enable GDMA
’s clock.
5.9.5 Functional Description
Non-Descriptor Mode
5.9.5.1
The GDMA directly transfers data between source and destination. The GDMA starts to transfer data
after it receives service requests from software. When the entire data have been transferred
completely, the GDMA becomes idle. Nevertheless, if another transfer is needed, then the GDMA
must be programmed again. There are three transfer modes:
Single Mode
5.9.5.2
Single mode requires a GDMA request for each data transfer. A GDMA request causes one byte, one
half-word, or one word to transfer if the 4-data burst mode is disabled, or four times of transfer width is
the 4-data burst mode is enabled.
Block Mode
5.9.5.3
The assertion of a single GDMA request causes all of the data to be transferred in a single operation.
The GDMA transfer is completed when the current transfer count register reaches zero.
Descriptor Mode
5.9.5.4
The descriptor-fetch function works when RUN (GDMA_DADRx[3]) is set and NON_DSPTR
(GDMA_DADRx[2]) is cleared in Descriptor Register(GDMA_DADRx) and the GDMA_CTLx bit setting
as following table. The Non-descriptor-fetch function works when software triggers the SOFTREQ
(GDMA_CTLx[16]) and the GDMAEN (GDMA_CTLx[0]). Software can also be used to restart the
GDMA operation after it has been stopped. The CPU can recognize the completion of a GDMA
operation by software polling or when it receives an internal GDMA interrupt. The GDMA controller
can increase source or destination address, decrease them as well, and conduct 8-bit (byte), 16-bit
(half-word), or 32-bit (word) data transfers.
Operation Mode relevant to bit enable
Mode
Enable Bit
Non-Descriptor Mode with SW Enable
GDMA_CTLx : gdmaen[0] softreq[16] gdmams[3:2]
Non-Descriptor Mode with I/O Enable
GDMA_CTLx : gdmaen[0] gdmams[3:2]
Descriptor Mode with SW Enable
GDMA_DADRx : run[3] non-dsptrmode[2];
GDMA_CTLx in Descriptor List : gdmaen[0] gdmams[3:2]
Descriptor Mode with I/O Enable
GDMA_DADRx : run[3] non-dsptrmode[2];
GDMA_CTLx in Descriptor List : gdmaen[0] gdmams[3:2]