Programming Examples
0, 0
};
.struct dma_desc_list descBlock4 = {
descBlock3, arrBlock4,
FLOW_LARGE | NDSIZE_7 | DI_EN | WDSIZE_32 | DMAEN,
length(arrBlock4), 4,
0, 0
};
Software-Triggered Descriptor Fetch Example
Listing 7-7
demonstrates a large list of descriptors that provide
(stop mode) configuration. Consequently, the DMA stops by itself as soon
as the work unit has finished. Software triggers the next work unit by sim-
ply writing the proper value into the DMA configuration registers. Since
these values instruct the DMA controller to fetch descriptors in large list
mode, the DMA immediately fetches the descriptor, thus overwriting the
configuration value again with the new settings when it is started.
Note the requirement that source and destination channels stop after the
same number of transfers. Between stops, the two channels can have com-
pletely individual structures.
Listing 7-7. Software-Triggered Descriptor Fetch
.import "descriptors.h";
#define N 4
.section L1_data_a;
.byte2 arrSource1[N] = { 0x1001, 0x1002, 0x1003, 0x1004 };
.byte2 arrSource2[N] = { 0x2001, 0x2002, 0x2003, 0x2004 };
.byte2 arrSource3[N] = { 0x3001, 0x3002, 0x3003, 0x3004 };
.byte2 arrDest1[N];
7-98
/* unused values */
/* unused values */
ADSP-BF50x Blackfin Processor Hardware Reference
= 0
FLOW
Need help?
Do you have a question about the ADSP-BF506F and is the answer not in the manual?