Two application specific bits (bits [13:12]) of the status words from the Write Data Mover and Read Data Mover Status Avalon® -ST Source interfaces control when interrupts are generated.
|Bit ||Bit ||Action|
|1||0||Interrupt if error|
|0||0||No interrupt and drop status word (i.e, do not even write it to the WS or RS status queues)|
The DMA Controller makes the decision whether to drop the status word and whether to generate an interrupt as soon as it receives the status word from the Data Mover. When generation of an interrupt is requested, and the corresponding RI or WI register does enable interrupts, the DMA Controller generates the interrupt. It does so by queuing an immediate write to the Write Data Mover's descriptor queue specified in the corresponding interrupt control register using the MSI address and message data provided in that register.You need to make sure that space is always available in the targeted Write Data Mover descriptor queue at any time when an interrupt may get generated. You can do so most easily by using the priority queue only for MSIs.
Setting the interrupt control bits in the immediate write descriptors that the DMA Controller creates to generate MSI interrupts to "No interrupt and drop status word" can avoid an infinite loop of interrupts.
Did you find the information on this page useful?