Freescale Semiconductor MSC8156 Evaluation Module MSC8156EVM MSC8156EVM Benutzerhandbuch

Produktcode
MSC8156EVM
Seite von 1490
MSC8156  Reference Manual, Rev. 2
14-6
  
Freescale Semiconductor
Direct Memory Access (DMA) Controller
14.2.3
One-Dimensional Chained Buffer
In a chained buffer scheme, when the size of the first buffer reaches zero, the read jumps to the 
address of the next buffer, which may be another chained buffer or another buffer type (simple, 
cyclic, or incremental)). Figure 14-4 shows a buffer chained to a simple buffer.
Figure 14-4.  One-Dimensional Chained Buffer
There is no constraint on the port used by each chained buffer. However, if the buffers use 
different ports, the DMA controller masks requests until data is out of the source or in the 
destination. This operation prevents out-of-sequence transactions at the ports. Table 14-3 lists the 
channel parameter values associated with a chained buffer (BD0) and a simple buffer (BD1). A 
0x20 byte block is read starting from address 0x1000 (buffer 0). When the buffer size is zero, 
there is a jump to address 0x2000 (buffer 1). 0x200 byte blocks are read and an interrupt is 
generated. 
Table 14-3.  Channel Parameter Values for a Chained Buffer and a Simple Buffer 
BD
BD Parameters
Value
Description
0
BD_ADDR 
0x1000
External memory buffer current address.
BD_SIZE 
0x20
Size of transfer left for this buffer.
BD_BSIZE 
0x20
Buffer base size of cyclic buffer.
BD_ATTR
CONT 
0x1
Continuous mode. Do not close the buffer when size reaches zero.
CYC 0x0
Non-cyclic.
NBD 
0x1
When size reaches zero, the next request calls buffer 1.
BTSZ 
0x7
Maximum transfer size is one burst of 64 bytes.
1
BD_ADDR 
0x2000
External memory buffer current address.
BD_SIZE 
0x200
Size of transfer left for this buffer.
BD_BSIZE 
0x200
Buffer base size of cyclic buffer.
BD_ATTR
SST
0x1
Generate interrupt when buffer ends.
CONT 
0x0
Non-continuous mode. Close the buffer when size reaches zero.
CYC 0x0
Non-cyclic 
mode.
BTSZ 
0x7
Maximum transfer size is one burst of 64 bytes.
0x1000
0x1018
Interrupt
0x2000
0x21f8
BD0
BD1