DMA Initialization Sequence
The following code initializes the DMA to perform a 16-bit memory read
DMA operation in autobuffer mode, and generates an interrupt request
when the buffer has been sent. This code assumes that
start of the data buffer to be transmitted and that
macro indicating the number of elements being sent.
Listing 18-5. DMA Initialization
Initialize_DMA:
P0.H = hi(DMA7_CONFIG);
P0.L = lo(DMA7_CONFIG);
R0 = 0x1084(z);
16-bit, mem read */
w[P0] = R0;
P0.H = hi(DMA7_START_ADDR);
P0.L = lo(DMA7_START_ADDR);
[p0] = p1;
P0.H
= hi(DMA7_X_COUNT);
P0.L
= lo(DMA7_X_COUNT);
R0
= NUM_SAMPLES;
w[p0] = R0;
R0 = 2;
P0.H = hi(DMA7_X_MODIFY);
P0.L = lo(DMA7_X_MODIFY);
w[p0] = R0;
R0 = 1;
P0.H = hi(DMA7_Y_COUNT);
P0.L = lo(DMA7_Y_COUNT);
w[p0] = R0;
ADSP-BF50x Blackfin Processor Hardware Reference
/* Assume DMA7 as the channel for SPI DMA */
/* Autobuffer mode, IRQ on complete, linear
/* Start address of TX buffer */
/* Number of samples to transfer */
/* 2 byte stride for 16-bit words */
/* single dimension DMA means 1 row */
SPI-Compatible Port Controller
NUM_SAMPLES
points to the
P1
is a defined
18-49
Need help?
Do you have a question about the ADSP-BF506F and is the answer not in the manual?