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:
  • A DMA operation has crossed the data RAM address boundaries set by the DMAHIGH and DMALOW registers.
  • For a 16-bit word operation (SIZE[1:0] = 01), when the pointers are not 16-bit word-aligned.
  • For a 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. An address Fault interrupt immediately terminates any DMA transaction in progress.