|
Principles of Operation |
Top Previous Next |
|
QDMA is similar to EDMA, but allows for faster transfers at the cost of restricted functionality; not all of the EDMA facilities are available with QDMA.
QDMA has a single set of five registers. These can be accessed in two ways: directly or through 'pseudo registers'. Writing directly simply sets a register value; writing to a pseudo register sets the register value but also starts the transfer. On completion, the registers retain their starting values, so subsequent, similar operations can be performed by updating only the changed values, the final value being written to a pseudo register to start the transfer.
The QDMA mechanism uses EDMA techniques to indicate termination; a 'transfer complete code' value is used to set a bit in the CIPR system register on completion of the operation. This bit can be polled or used to generate an interrupt. From this point of view, a QDMA transfer could be confused with an EDMA transfer. To avoid this confusion when using Diamond, claiming the QDMA channel with a specific transfer completion code also claim the EDMA channel that uses the same bit for synchronisation. It is anticipated that QDMA always be used with a TCC corresponding to an EDMA channel that is otherwise unused by Diamond and the application (for example, EDMA channel 15).
|