Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
11 years ago

How to return value(s) in NIOS interrupt (ISR) function?

In the reference the return value is void, but how about I want to allocate a new variable in ISR and access it later in the main function?

Thanks!

3 Replies

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    You can use global variable which can be accessed in any function as well as in ISR routine.

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    --- Quote Start ---

    You can use global variable which can be accessed in any function as well as in ISR routine.

    --- Quote End ---

    However in my case, the variable is allocated dynamically, the size of the variable is unknown until ISR is triggered. Can I declare the global variable and then define its memory allocation later on?
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    You'd need a memory allocator that is callable from an ISR.

    Whether one exists depends on the operating system code you are running.

    It is unlikely that the malloc() in the BSP library is callable from ISRs.

    Maybe you can use a fixed size memory block as a software fifo.