The DMA transfers the sequence of segment values for each predefined symbol
present in the user buffer to the ISDATA register upon the DMA peripheral trigger
“Automated Bit Mapping Data Ready (ABMDRDY)” occurs.
- For the ABM mode DMAC is configured
to trigger a data transfer to the destination address configured when Automated Bit
Mapping Data Ready (ABMDRDY) occurs (peripheral trigger source)
- The trigger actions configured to
generate a request for a beat transfer
- The destination address configured
here is the ISDATA register address and the source is the DMA transfer buffer
(dma_source_buf [ ])
- DMA source address configured as
increments for each beat transfer and the destination address is static in this
case
- Beat size defines the data transfer
size for the each beat (WORD, HWORD, BYTE). In this case it is configured as WORD
(32-bit).
- Step size defines the source and
destination address increment step. In this case the destination is static. However,
the source address is configured to increment with the step size of beat size *
1.
- Block transfer count defines the
number of beats to be transferred for all the animation states and it is equal to
the ABM animation pattern length if the beat size is configured as the size of the
source buffer member
- Block action defines the action done
by the DMA after block transfer. In this case it is configured as sets transfer
complete interrupt flag after block transfer and channel in normal operation.
- DMA next descriptor defines that the
transaction consist of either a single block transfer or several block transfers.
When a transaction consist of several block transfers it is called linked
descriptors. The Next descriptor configured to 0 if single transaction is
required.
- Create the call back function,
Register the DMA call back, and enable the callback
- DMA is configured to transfer the
same animation pattern in multiple times to destination address using DMA linked
descriptor to repeat the animation pattern. However, we have used this transfer
complete flag to exit from this continuous transfer by the help of implementing a
break logic to exit from this ABM mode and continuous DMA transaction using a
variable
dma_break
.
Note:
If the application requires the transfer complete interrupt call back is
required.