Nios® II Embedded Design Suite (EDS)
Support for Embedded Development Tools, Processors (SoCs and Nios® II processor), Embedded Development Suites (EDSs), Boot and Configuration, Operating Systems, C and C++
Announcements
Intel Support hours are Monday-Fridays, 8am-5pm PST, except Holidays. Thanks to our community members who provide support during our down time or before we get to your questions. We appreciate you!

Need Forum Guidance? Click here
Search our FPGA Knowledge Articles here.
12366 Discussions

how to pass a pointer or array name to the interrupt function?

Altera_Forum
Honored Contributor I
864 Views

hi 

i register a interrupt in nios, and it works well 

alt_ic_isr_register (NIOS_FT245_INTERFACE_0_IRQ_INTERRUPT_CONTROLLER_ID, 

NIOS_FT245_INTERFACE_0_IRQ, 

ft245_interrupt, 

NULL, 

NULL); 

 

i want to pass a pointer or array name to the interrupt function ft245_interrupt, how can i do it? 

 

 

thanks!
0 Kudos
3 Replies
Altera_Forum
Honored Contributor I
132 Views

The documentation for the HAL functions are in altera_hal_api.pdf. Whatever you give to the context arg will be passed to your isr function. In your code this is the first NULL.

Altera_Forum
Honored Contributor I
132 Views

hi, i tried and it works! 

this is the code: 

void ft245_interrupt(alt_u32 precision_data[500]) 

..... 

 

int main() 

alt_u32 i=0; 

alt_u32 precision_data_1[500]={0}; 

i=alt_irq_enabled(); 

alt_ic_isr_register (NIOS_FT245_INTERFACE_0_IRQ_INTERRUPT_CONTROLLER_ID, 

NIOS_FT245_INTERFACE_0_IRQ, 

ft245_interrupt, 

precision_data_1, 

NULL); 

 

 

 

but the eclipse give me a warning 

Description Resource Path Location Type 

passing argument 3 of 'alt_ic_isr_register' from incompatible pointer type hello_world.c /project3 line 99 C/C++ Problem
Altera_Forum
Honored Contributor I
132 Views

The warning is because the type of your ISR function argument doesn't match what alt_ic_isr_register expects which is (void *). Try using (void *)precision_data_1 for that argument. 

 

Edit: wrong argument.
Reply