Controlling Memory Streams; Opening Memory Streams - Analog Devices VisualDSP++ 5.0 Service Manual

Visualdsp++ 5.0 device drivers and system for blackfin processors
Table of Contents

Advertisement

Controlling Memory Streams

When memory DMA is needed, controlling and scheduling memory
DMA is accomplished most easily using higher level memory streams.
The
adi_dma_MemoryXXXX()
of transferring data between the various memory spaces by the Blackfin
processor's DMA controller.
The overall sequence for using memory streams is to open the memory
stream, schedule transfers as needed, and then close the memory stream
when it is no longer needed. In many embedded systems, the memory
stream is never closed, but remains open at all times.

Opening Memory Streams

To open the memory stream, the client calls the
function. The client passes the following parameters into the function:
• A handle to the DMA manager that controls the stream
• The stream ID (of type
memory DMA stream to use
• A client handle that is passed back to the client's callback function.
This is a client-supplied value, supposedly of some meaning to the
client, which is passed back to the client's callback function so that
the client can associate this value with the stream that is causing
the callback.
• A pointer to a location into which the DMA manager stores the
stream handle. The stream handle is a DMA manager-defined value
that uniquely identifies the stream to the DMA manager.
• A handle to a deferred callback service (typically from the deferred
callback service) or a NULL value. If a NULL value is supplied, the
DMA manager makes live callbacks to the application. Live call-
backs are made during hardware interrupt time. If a deferred
VisualDSP++ 5.0 Device Drivers and System
Services Manual for Blackfin Processors
functions provide a simple, efficient method
ADI_DMA_STREAM_ID
DMA Manager
adi_dma_MemoryOpen
) that identifies the
6-7

Advertisement

Table of Contents
loading
Need help?

Need help?

Do you have a question about the VisualDSP++ 5.0 and is the answer not in the manual?

Subscribe to Our Youtube Channel

Table of Contents