English
Language : 

PXR40RM Datasheet, PDF (571/1434 Pages) Freescale Semiconductor, Inc – PXR40 Microcontroller
Enhanced Direct Memory Access Controller (eDMA)
21.5.2 DMA Programming Errors
The DMA performs various tests on the transfer control descriptor to verify consistency in the descriptor
data. Most programming errors are reported on a per-channel basis with the exception of two errors:
group-priority error and channel-priority error, or EDMA_x_ESR[GPE] and EDMA_x_ESR[CPE],
respectively.
For all error types other than group- or channel-priority errors, the channel number causing the error is
recorded in the EDMA_x_ESR. If the error source is not removed before the next activation of the problem
channel, the error is detected and recorded again.
Channel-priority errors are identified within a group after that group has been selected as the active group.
For the example, all of the channel priorities in group 1 are unique, but some of the channel priorities in
group 0 are the same:
1. The DMA is configured for fixed-group and fixed-channel arbitration modes.
2. Group 1 is the highest priority and all channels are unique in that group.
3. Group 0 is the next highest priority and has two channels with the same priority level.
4. If group 1 has any service requests, those requests are executed.
5. After all of group 1 requests have completed, group 0 becomes the next active group.
6. If group 0 has a service request, then an undefined channel in group 0 is selected and a
channel-priority error will occur.
7. This repeats until the all of group 0 requests have been removed or a higher priority group 1 request
comes in.
In this sequence, for item 2, the DMA acknowledge lines assert only if the selected channel is requesting
service via the DMA peripheral request signal. If interrupts are enabled for all channels, the user receives
an error interrupt, but the channel number for the EDMA_x_ER and the error interrupt request line are
undetermined because they reflect the undefined channel. A group-priority error is global and any request
in any group causes a group-priority error.
If priority levels are not unique, the highest (channel/group) priority that has an active request is selected,
but the lowest numbered (channel/group) with that priority is selected by arbitration and executed by the
DMA engine. The hardware service request handshake signals, error interrupts, and error reporting are
associated with the selected channel.
Freescale Semiconductor
PXR40 Microcontroller Reference Manual, Rev. 1
21-47