...the world's most energy friendly microcontrollers
2014-07-02 - Gecko Family - d0001_Rev1.30
50
www.silabs.com
Figure 8.4. Memory scatter-gather example
Copy from A in
m em ory, t o Alt ernat e
Request
1. Configure prim ary t o enable t he copy A, B, C, and D operat ions: cycle_ct rl = b100, 2
R
= 4, N = 16.
Task A
Task B
Aut o request
dma_done[C]
Copy from B in
m em ory, t o Alt ernat e
Aut o request
Aut o request
Aut o
request
Aut o
request
Aut o
request
Copy from C in
m em ory, t o Alt ernat e
Task C
Copy from D in
m em ory, t o Alt ernat e
Task D
Dat a for Task A
cycle_ct rl = b101, 2
R
= 4, N = 3
cycle_ct rl = b101, 2
R
= 2, N = 8
cycle_ct rl = b101, 2
R
= 8, N = 5
cycle_ct rl = b010, 2
R
= 4, N = 4
src_dat a_end_pt r
dst _dat a_end_pt r
channel_cfg
Unused
0x 0A000000
0x 0AE00000
0x 0B000000
0x 0BE00000
0x 0C000000
0x 0CE00000
0x 0D000000
0x 0DE00000
0x XXXXXXXX
0x XXXXXXXX
0x XXXXXXXX
Dat a for Task B
Dat a for Task C
Dat a for Task D
Mem ory scat t er- gat her t ransact ion:
Init ializat ion:
Aut o
request
Aut o
request
Aut o
request
Aut o
request
Primary
Alternate
N = 3, 2
R
= 4
N = 8, 2
R
= 2
N = 5, 2
R
= 8
N = 4, 2
R
= 4
2. Writ e t he prim ary source dat a t o m em ory, using t he st ruct ure shown in t he following t able.
0x XXXXXXXX
In Figure 8.4 (p. 50) :
Initialization
1. The host processor configures the primary data structure to operate in memory
scatter-gather mode by setting cycle_ctrl to b100. Because a data structure for a
single channel consists of four words then you must set 2
R
to 4. In this example,
there are four tasks and therefore N is set to 16.
2. The host processor writes the data structure for tasks A, B, C, and D to the
memory locations that the primary src_data_end_ptr specifies.
3. The host processor enables the channel.
The memory scatter-gather transaction commences when the controller receives a request on
dma_req[ ]
or a manual request from the host processor. The transaction continues as follows:
Primary, copy A
1. After receiving a request, the controller performs four DMA transfers. These
transfers write the alternate data structure for task A.
2. The controller generates an auto-request for the channel and then arbitrates.
Task A
3. The controller performs task A. After it completes the task, it generates an
auto-request for the channel and then arbitrates.
Primary, copy B
4. The controller performs four DMA transfers. These transfers write the alternate
data structure for task B.
5. The controller generates an auto-request for the channel and then arbitrates.
Task B
6. The controller performs task B. After it completes the task, it generates an
auto-request for the channel and then arbitrates.
Primary, copy C
7. The controller performs four DMA transfers. These transfers write the alternate
data structure for task C.
Summary of Contents for EFM32G
Page 505: ......