b.
If the device-paced memory is at the source memory location set PL=1.
c.
Set the source address increment, SAl, and destination address increment, DAI, as desired.
d. Set the transfer mode to device-paced memory-to-memory, TM=Ob11.
e.
Enable the channel, CE=1.
Once the DMA channel
is
configured for this mode, the external device initiates a transfer by
activating the DMAReqn input. The
PPC405GP then reads the source memory, buffers the data
in
the
DMA
controller and then outputs the data to the destination memory address. Transfers continue as
long as the controlling device maintains an active signal on DMAReqn and the channel count register
(DMAO_CTn) is non-zero.
To
pause a device paced memory-to-memory transfer, the controlling
device must deassert DMAReqn one PerClk cycle before the last cycle
in
the device-paced memory
access.
18.9.3 Software-Initiated Memory-to-Memory Transfers (Non-Deviced Paced)
To
perform a software-initiated memory-to-memory DMA transfer:
1.
Set the transfer width (DMAO_CRn[PW]) as desired.
2.
Set the source (DMAO_SAn) and destination (DMAO_DAn) address registers to the desired
memory
locations. These addresses must be aligned to the programmed transfer width
. (DMAO_CRn[PW]), otherwise an alignment error will occur.
3.
Program the count register (DMAO_CTn) for the number of transfers.
4.
Clear the channel's status bits
in
the DMA status register (DMAO_SR).
5.
In
the channel control register (DMAO_CRn):
a.
Optionally enable the DMA buffer, BEN=1.
b.
Set the source address increment, SAl, and destination address increment, DAI, as desired.
c.
Set the transfer mode to software-initiated memory-to-memory, TM=Ob10.
d. Enable the channel, CE=1.
Once the channel is enable the DMA controller transfers data from source to destination until the
channel count reaches zero. Note that memory-to-memory transfers initiated by software do not use
DMAReqn
or
DMAAckn.
Preliminary
Direct Memory Access Controller
18-21