Xilinx IPIF DMA done interrupt ?
- From: "Martijn" <M.G.v.d.Horst@xxxxxxxxx>
- Date: 25 Aug 2006 04:45:23 -0700
Hello group,
I would appreciate help in capturing the DMA done interrupt. If anybody
could point me to a working example or a give any pointers on what I am
doing wrong, I would be very gratefull.
So, what am I doing?
I am using the Xilinx EDK 8.1 tool and have generated a system with a
custom peripheral. The custom peripheral was created using the "Create
or Import Peripheral" wizard and includes DMA, FIFOs, and user logic
interrupt support.
However, the interrupt service routine is not called when a DMA
transfer completes. Currently I need to poll the interrupt status
register (ISR) to see if a DMA transfer has finished.
The user logic stub generated by the wizard generates an interrupt
approx. every 10s @ 100Mhz, and when this interrupt occurs the
interrupt the service routine is called and I see a message on my UART.
So I know the service routine is hooked up correctly, that the
interrupt enable register (IER) and the global interrupt enable
register (GIER) are set correctly.
I made sure that the INCLUDE_DEV_ISC is set to 1 in the VHDL code to
make sure the device interrupts are included.
And sure enough, when I try to transfer data from an empty FIFO, the
service routine is also called because of a transaction error
interrupt.
So I know the interrupts from the device are enabled and working
correctly.
After that I checked that the device interrupt enable register (DIER)
is set to enable all interrupts from the device. (Not only the IPIR bit
for the user logic interrupts and the TERR for the transaction error
but all of them).
Furthermore I enabled the interrupts in the DMA0 and DMA1 interrupt
enable registers (DMA0_IER and DMA1_IER).
However, the only interrupts that cause a call to my service routine
are the timer interrupt from the user logic and transaction error. I
don't know why the service routine is not called when a transfer
completes.
I tried finding some working examples, but all the examples I could
find so far use polling on the ISR register to wait for the transfer to
complete.
Any pointers to get me in the right direction would be appreciated.
Thanks,
Martijn
.
- Follow-Ups:
- Re: Xilinx IPIF DMA done interrupt ?
- From: Martijn
- Re: Xilinx IPIF DMA done interrupt ?
- Prev by Date: Re: JOP as SOPC component
- Next by Date: Re: Linear priority encoder in Xilinx Virtex4
- Previous by thread: Linear priority encoder in Xilinx Virtex4
- Next by thread: Re: Xilinx IPIF DMA done interrupt ?
- Index(es):
Relevant Pages
|