4 Пересказ
In
this text I speak about STM32F4XX microcontroller’s peripheral
device – controller of Direct Memory Access (DMA).
Direct
memory access is used in order to provide high-speed data transfer
between peripherals and memory and between memory and memory. Data
can be quickly moved by DMA without any CPU action. This keeps CPU
resources free for other operations.
The
main DMA features are:
•
Dual AHB master bus architecture, one dedicated to
memory accesses and one dedicated to peripheral accesses
•
8 streams for each DMA controller, up to 8
channels (requests) per stream
•
Four separate first-in, first-out memory buffers
(FIFOs) per stream, that can be used in FIFO mode or direct mode:
•
Each stream can be configured by hardware to be to
regular channel or a double buffer channel
•
Priorities between DMA stream requests are
software-programmable (4 levels consisting of very high, high,
medium, low) or hardware in case of equality (request 0 has priority
over request 1, etc.)
•
Each stream also supports software trigger for
memory-to-memory transfers (only available for the DMA2 controller)
•
DMA flow controller: the number of data items to
be transferred is software-programmable from 1 to 65535
•
Each stream supports circular buffer management
•
5 event flags (DMA Half Transfer, DMA Transfer
complete, DMA Transfer Error, DMA FIFO Error, Direct Mode Error)
logically ORed together in a single interrupt request for each stream