uDMA Controller
Description:
This function is used to set the parameters for a uDMA transfer. These are typically parameters
that are changed often. The function
MUST be called at least
once for this channel prior to calling this function.
The
ui32ChannelStructIndex
parameter should be the logical OR of the channel number with
one of
UDMA_PRI_SELECT
or
UDMA_ALT_SELECT
to choose whether the primary or alter-
nate data structure is used.
The
ui32Mode
parameter should be one of the following values:
UDMA_MODE_STOP
stops the uDMA transfer. The controller sets the mode to this value
at the end of a transfer.
UDMA_MODE_BASIC
to perform a basic transfer based on request.
UDMA_MODE_AUTO
to perform a transfer that will always complete once started even if
request is removed.
UDMA_MODE_PINGPONG
to set up a transfer that switches between the primary and
alternate control structures for the channel. This allows use of ping-pong buffering for
uDMA transfers.
UDMA_MODE_MEM_SCATTER_GATHER
to set up a memory scatter-gather transfer.
UDMA_MODE_PER_SCATTER_GATHER
to set up a peripheral scatter-gather transfer.
The
pvSrcAddr
and
pvDstAddr
parameters are pointers to the first location of the data to be
transferred. These addresses should be aligned according to the item size. The compiler will
take care of this if the pointers are pointing to storage of the appropriate data type.
The
ui32TransferSize
parameter is the number of data items, not the number of bytes.
The two scatter/gather modes, memory and peripheral, are actually different depending on
whether the primary or alternate control structure is selected. This function will look for the
UDMA_PRI_SELECT
and
UDMA_ALT_SELECT
flag along with the channel number and will
set the scatter/gather mode as appropriate for the primary or alternate control structure.
The channel must also be enabled using
after calling this func-
tion.
The transfer will not begin until the channel has been set up and enabled.
Note
that the channel is automatically disabled after the transfer is completed, meaning that
must be called again after setting up the next transfer.
Note:
Great care must be taken to not modify a channel control structure that is in use or else the
results are unpredictable, including the possibility of undesired data transfers to or from mem-
ory or peripherals. For BASIC and AUTO modes, it is safe to make changes when the channel
is disabled, or the
returns
UDMA_MODE_STOP
. For PING-
PONG or one of the SCATTER_GATHER modes, it is safe to modify the primary or alternate
control structure only when the other is being used. The
func-
tion will return
UDMA_MODE_STOP
when a channel control structure is inactive and safe to
modify.
Returns:
None.
23.2.1.16 ROM_uDMAControlAlternateBaseGet
Gets the base address for the channel control table alternate structures.
April 8, 2013
291
Содержание Tiva TM4C123GH6PM
Страница 26: ...Boot Loader 26 April 8 2013...
Страница 68: ...Controller Area Network CAN 68 April 8 2013...
Страница 122: ...Hibernation Module 122 April 8 2013...
Страница 136: ...Inter Integrated Circuit I2C 136 April 8 2013...
Страница 152: ...Memory Protection Unit MPU 152 April 8 2013...
Страница 174: ...Pulse Width Modulator PWM Returns None 174 April 8 2013...
Страница 196: ...Synchronous Serial Interface SSI 196 April 8 2013...
Страница 222: ...System Control 222 April 8 2013...
Страница 270: ...UART 270 April 8 2013...
Страница 296: ...uDMA Controller 296 April 8 2013...
Страница 351: ...April 8 2013 351...