Nios® V/II Embedded Design Suite (EDS)
Support for Embedded Development Tools, Processors (SoCs and Nios® V/II processor), Embedded Development Suites (EDSs), Boot and Configuration, Operating Systems, C and C++

mSGDMA and interrupt issue

Altera_Forum
Honored Contributor II
1,303 Views

Hi, 

 

I've tried to port the example from the mSGDMA wiki page to the DE2-115 board. Instead of the DDR-Controller I use the SDRAM controller. 

Now I've got the following strange issue. 

 

(1) I can run the example code, but the interrupt never fires. 

(2) Via the debugger I can confirm that the actual copy process happened and did finish 

(3) When I try to redownload the software program it hangs immediately after start at the alt_ic_isr_register() call 

(4) Only reprogramming of the whole fpga design allows another run. 

 

has anyone encountered a similar behaviour before? I assume I messed up somewhere at the QSys configuration or at the linker section but I'm quite clueless right. 

 

Thanks for any help.
0 Kudos
1 Reply
Altera_Forum
Honored Contributor II
445 Views

I was able to resolve my issue by myself: 

 

So for anyone who may encounter this thread in the future: 

The interrupt signal triggered, but the NIOS processor did not call the interrupt service routine. Unfortunately the interrupt seems to remain signalled even the system reset is pulled down. I've read somewhere that the IRQ is intentionally latched, but I'm not so sure if this should also persist after resets. 

 

The main problem was then actually that I already placed the isr in a tightly coupled memory (should have mentioned that in the original post), this prevented the isr from actually getting called. I assume I'm missing something in the Qsys wiring, since the manuals state that putting isr's in a tightly coupled memory region is a recommended procedure to reduce isr latency. 

 

I'm still grateful if somebody takes the time to give me some short explanations for the phenomenas I've seen. I'm quite busy getting my intended design up and running, so I'm unable to dig deeper why it didn't play out originally.
0 Kudos
Reply