
Programming Examples
5-96
ADSP-BF59x Blackfin Processor Hardware Reference
.var arrBlock4[N];
.struct dma_desc_list descBlock3 = {
descBlock4, arrBlock3,
FLOW_LARGE | NDSIZE_7 | WDSIZE_32 | DMAEN,
length(arrBlock3), 4,
0, 0
/* unused values */
};
.struct dma_desc_list descBlock4 = {
descBlock3, arrBlock4,
FLOW_LARGE | NDSIZE_7 | DI_EN | WDSIZE_32 | DMAEN,
length(arrBlock4), 4,
0, 0
/* unused values */
};
Software-Triggered Descriptor Fetch Example
Listing 5-7
demonstrates a large list of descriptors that provide
FLOW
= 0
(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 5-7. Software-Triggered Descriptor Fetch
.import "descriptors.h";
Summary of Contents for ADSP-BF59x Blackfin
Page 64: ...Development Tools 1 22 ADSP BF59x Blackfin Processor Hardware Reference...
Page 74: ...Processor Specific MMRs 2 10 ADSP BF59x Blackfin Processor Hardware Reference...
Page 244: ...Programming Examples 6 40 ADSP BF59x Blackfin Processor Hardware Reference...
Page 700: ...Programming Examples 16 78 ADSP BF59x Blackfin Processor Hardware Reference...
Page 738: ...Boundary Scan Architecture B 8 ADSP BF59x Blackfin Processor Hardware Reference...