0x44440x0000
0x000040030x000040020x000040010x000040000x00000000
0x0000F0030x0000F0020x0000F0010x0000F0000x00000000
0x33330x0000
0x22220x0000
0x0000F000
0x11110x0000
Simple Example
Read/Write Data
Add Burst Step
to Address
Pointer
End Transfer
Add Transfer
Step to Address
Pointer
Moved
“Burst Size”
Words?
Moved
“Transfer Size”
Bursts?
Y
Y
N
N
Wait for event
to start/continue
transfer
SRC_ADDR_SHADOW
SRC_ADDR
SRC_BURST_STEP
SRC_TRANSFER_STEP
BURST_SIZE*
TRANSFER_SIZE*
Addr Value
0x11110xF000
0x22220xF001
0x33330xF002
0x44440xF003
Source Registers
0x0001
0x0001
0x0001
0x0001
DST_ADDR_SHADOW
DST_ADDR
DST_BURST_STEP
DST_TRANSFER_STEP
Addr Value
0x4000
0x4001
0x4002
0x4003
Destination Registers
0x00004000
0x0001
0x0001
2 words/burst
2 bursts/transfer
* Size registers are N-1
Objective: Move 4 words from memory location 0xF000 to
memory location 0x4000 and interrupt CPU at end of transfer
Start Transfer
Note: This example could also have been done using 1 word/burst and 4 bursts/transfer, or 4 words/burst
and 1 burst/transfer. This would affect Round-Robin progression, but not interrupts.
Interrupt to PIE