My Nios2 QSYS system includes an MSGDMA (Modular Scatter-Gather Direct Memory Access) IP module. The above function is called at initialisation by the driver for this module (altera_msgdma.c) to register its ISR. However, it doesn't appear to be visible because the build fails with the following error:
"...../drivers/src/altera_msgdma.c:1617: undefined reference to `alt_ic_isr_register'"
Can anyone possibly advise?
I am using Quartus 18.1.0 Build 625 09/12/2018 SH Standard Edition.
My target device is a Cyclone V (5CSEBA5U23C8).
Thanks in advance.
From the first look, it seems like incorrect inclusion. Can you please check the Header files included and check the following examples of using the mSGDMA IP?
I will attach the example in another comment.
Thanks for your response. I have imported your project into the same Eclipse workspace as my own projects, and can report that both the associated BSP and the prokect itself both build without error. In comparing your project to mine, I note the following:
1) When I hover over the call to the problem function (alt_ic_isr_register) at line 1617 in altera_msgdma.c within your project the declaration of the function pops up. Then, when I hit F5 the file which contains it (alt_iic.c) appears. This doesn't happen when I do the same within my project.
2) In a version of my project (my current work-around) which does not include the MSGDMA IP, when I double click on the elf that is produced (under ./Binaries/) all the dependencies are listed, which include alt_iic.c, and I have verified that it is identical to the one in your project.
3) All the directories under 'Includes' are common to both projects.
So for some reason the driver file altera_mgdma.c in my project can't reference function alt_ic_isr_register() contained in alt_iic.c, yet the identical driver file in your project can. Can possibly suggest why this could be the case?
Which Quartus version you are using?
Can you try to create your project over the one I shared with you, you can open the project and edit it to fit your preferences and then recompile it. Can you tell me what happens after doing that?