In contrast to the above-mentioned direct mode, the mode in which DMA transfer is executed indirectly using the level-specific DMA set register is called indirect mode. The address value and number of bytes stored in the set register in direct mode are stored in the indirect mode temporary buffer in indirect mode, and DMA transfer is executed repeatedly until the end code is detected in the temporary buffer. Therefore, a feature of indirect mode is that multiple DMA transfers can be performed with a single activation. Figure 2.5 shows the execution flow of indirect mode DMA.
Figure 2.5 Indirect mode DMA transfer flow
When indirect mode is activated, three long words of parameters are first read from the address written in the write address register (DxW) and stored in the temporary buffer. Next, execute the actual DMA based on those parameters. After DMA is finished, read the DxW+CH address ~ parameters and execute in the same way. This operation is repeated until the exit code is detected.
Also, addresses in indirect mode are incremented in units of 4 bytes.
Figure 2.6 Indirect mode DMA transfer operation details