diff -r 578be2adaf3e -r 307f4279f433 Adaptation/GUID-97F97D7B-D5A3-5471-A359-77B805ED198C.dita --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Adaptation/GUID-97F97D7B-D5A3-5471-A359-77B805ED198C.dita Fri Oct 15 14:32:18 2010 +0100 @@ -0,0 +1,44 @@ + + + + + +DesignDescribes different modes of operations of the DMA Framework . +

Some DMA controllers provide several modes of operation. For example, one +ASSP provides both single-buffer mode and scatter-gather mode transfers.

+

There are two options:

+ +

One reference implementation adopts a mixed strategy; the mode of operation +is selectable at build-time by defining the macro __DESFETCHMODE__ to +exercise and demonstrate two different modes of operation.

+

Scatter-gather support is essentially a superset of single-buffer support +because a scatter-gather list is an ordered set of variable sized buffers, +and means that code shown here demonstrates the implementation of a scatter-gather +DMA controller.

+

Almost all modern MCUs use scatter-gather capable DMA controllers. Note +that we refer to descriptor fetch mode synonymously with scatter-gather mode, +as scatter-gather is implemented by passing the DMA controller a linked list +of descriptors describing the buffers to be transferred. Non–descriptor mode +requires that the DMA controller registers are programmed by software to describe +the buffer transfer required. Since each transfer must be handled by an interrupt +service routine triggered when the DMA controller has completed the transfer, +non-descriptor mode is not capable of performing transfers past buffer boundaries.

+
\ No newline at end of file