Theory of Operation
By default, the DMA manager uses the interrupt vector group (IVG)
settings as set up by the interrupt manager. The client can alter the map-
ping of DMA channels to IVG levels via calls into the interrupt manager.
See
"Interrupt Manager" on page 2-1
mapping of DMA channels to IVGs.
Hooking Interrupts
When the client opens the first DMA channel, the
function hooks into the appropriate IVG chain for the DMA error
interrupt. The handler for DMA errors does nothing other than clear the
appropriate DMA error and notify the client's callback function that a
DMA error occurred.
In addition to the DMA error interrupt, the
hooks the DMA data interrupt handler into the appropriate IVG level for
the given channel. The data interrupt handler is used to post callbacks
resulting from the completion of DMA transfers. In addition to posting
the notification callbacks, the data handler ensures that the channel is
refreshed and restarted (if necessary) with any new pending transfers.
Unhooking Interrupts
When the last remaining open DMA channel is closed, the
adi_dma_Close()
appropriate IVG handler chain. In addition, if no other open channels are
mapped to the same IVG as the channel being closed, the
adi_dma_Close()
of handlers for that IVG.
6-28
function unhooks the DMA error handler from the
function unhooks the DMA data handler from the chain
VisualDSP++ 5.0 Device Drivers and System
Services Manual for Blackfin Processors
for more information on altering
adi_dma_Open()
adi_dma_Open()
function
Need help?
Do you have a question about the VisualDSP++ 5.0 and is the answer not in the manual?