User manual

...the world's most energy friendly microcontrollers
2012-04-24 - Giant Gecko Family - d0053_Rev0.96 56
www.energymicro.com
Figure 8.3. Ping-pong example
Task A
Request
Request
Task A: Primary, cycle_ctrl = b011, 2
R
= 4, N = 6
dma_done[C]
Task B
Request
Request
Task B: Alternate, cycle_ctrl = b011, 2
R
= 4, N = 12
dma_done[C]
Request
Task C
Request
Task C: Primary, cycle_ctrl = b011, 2
R
= 2, N = 2
dma_done[C]
Task D
Request
Request
Task D: Alternate, cycle_ctrl = b011, 2
R
= 4, N = 5
dma_done[C]
Task E
Request
Task E: Prim ary, cycle_ctrl = b011, 2
R
= 4, N = 7
dma_done[C]
End: Alternate, cycle_ctrl = b000
Invalid
Request
In Figure 8.3 (p. 56) :
Task A 1. The host processor configures the primary data structure for task A.
2. The host processor configures the alternate data structure for task B. This enables the
controller to immediately switch to task B after task A completes, provided that a higher
priority channel does not require servicing.
3. The controller receives a request and performs four DMA transfers.
4. The controller arbitrates. After the controller receives a request for this channel, the flow
continues if the channel has the highest priority.
5. The controller performs the remaining two DMA transfers.
6. The controller sets dma_done[C] HIGH for one HFCORECLK cycle and enters the
arbitration process.
After task A completes, the host processor can configure the primary data structure for task C. This
enables the controller to immediately switch to task C after task B completes, provided that a higher
priority channel does not require servicing.
After the controller receives a new request for the channel and it has the highest priority then task B
commences:
Task B 7. The controller performs four DMA transfers.
8. The controller arbitrates. After the controller receives a request for this channel, the flow
continues if the channel has the highest priority.