
iiBusModuLes:inteLLigentdMa(idMa)
s1C33L17teChniCaLManuaL
ePson
ii-2-17
II
IDMA
software-triggeredinterrupts
innone-linkmode(LnKen=0):
If the transfer counter is decremented to 0 and DINTEN = 1 (interrupt enabled) when one DMA transfer
operation is completed, FIDMA (D4/0x300281) is set, thereby generating an interrupt request. If the transfer
counter is not 0 or DINTEN = 0 (interrupt disabled), FIDMA (D4/0x300281) is not set.
inlinkmode(LnKen=1):
The IDMA cause-of-interrupt flag FIDMA (D4/0x300281) is set if the following two conditions are met,
generating an interrupt request.
The transfer counter for the last linked channel becomes 0.
The DINTEN in the last linked channel’s control information is set to 1 (interrupt enabled).
If the Transfer counter for the last linked channel is not 0 or the DINTEN of the last linked channel = 0,
FIDMA(D4/0x300281) is not set.
idMainterruptcontrolregisterintheinterruptcontroller
The following control bits are used to control an interrupt for the completion of IDMA transfer:
FidMa:IDMACause-of-InterruptFlagintheDMAInterruptCauseFlagRegister(D4/0x300281)
eidMa:IDMAInterruptEnableBitintheDMAInterruptEnableRegister(D4/0x300271)
PdM[2:0]:IDMAInterruptLevelBitsintheIDMAInterruptPriorityRegister(D[2:0]/0x300265)
When a DMA transfer in the IDMA channel invoked by a trigger in the software application or subsequent
link is completed and the transfer counter is decremented to 0, the cause-of-interrupt flag for the completion of
IDMA transfer is set to 1. However, this requires as a precondition that interrupt be enabled (DINTEN = 1) in
the control information for that channel. If the interrupt enable register bit remains set (= 1) when the flag is set,
an interrupt request is generated. Interrupts can be disabled by leaving the interrupt enable register bit cleared (=
0). Use the interrupt priority register to set interrupt priority levels (0 to 7). An interrupt request to the CPU is
accepted on condition that no other interrupt request of higher priority is generated.
Furthermore, it is only when the PSR's IE bit = 1 (interrupt enabled) and the set value of IL is smaller than
the IDMA interrupt level which is set by the interrupt priority register that the CPU actually accepts an IDMA
interrupt request.
For details about these interrupt control registers, and for information on device operation when an interrupt
occurs, refer to Section III.2, “Interrupt Controller (ITC).”
trapvector
The trap vector address for an interrupt upon completion of IDMA transfer by default is set to 0xC00068.
The trap table base address can be changed using the TTBR registers.