13.6.2.1 Address Fault

DMA requires that all its Address Pointers be naturally aligned and within their designated ranges. When DMA tries to access an out of range address or a misaligned address, a DMA trap will be generated on a channel basis.

Address Faults are detected as follows:
  • DMA operation has crossed the data RAM address boundaries set by the DMAHIGH and DMALOW registers.
  • For 16-bit word operation (SIZE[1:0] = 01) when the pointers are not 16-bit word-aligned.
  • For 32-bit word operation (SIZE[1:0] = 10) when the pointers are not 32-bit word-aligned.

The user can determine the Fault condition by reading DMAxSTAT for the value of ADRERR[1:0]. These flag bits are set on any operation that attempts to read data from, or write data to, an address outside of the DMA boundaries or a misaligned address as mentioned above. An address Fault interrupt immediately terminates any DMA transaction in progress.