This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

8051 memory during function calls and returns

Hello,

I was hoping someone could tell me how the memory works during functions call out of main.

In regular C and C++, after functions return, the memory is free again.

How does it work in the 8051 using C?

For example:

void myFunc()
{ int VAR = 1;
}

When the function gets called does VAR use data memory or code memory? When it returns, is the memory that VAR used, free to be used again?

Thanks.

Parents
  • In that case, does that mean splitting your code into more functions with local variables can be better for managing DATA and XDATA memory than using global variables, considering the functions are not recursive or nested?

    Not really. More functions actually increase the amount of automatic storage needed (for all those local things you would have to pass from one such function to the other).

Reply
  • In that case, does that mean splitting your code into more functions with local variables can be better for managing DATA and XDATA memory than using global variables, considering the functions are not recursive or nested?

    Not really. More functions actually increase the amount of automatic storage needed (for all those local things you would have to pass from one such function to the other).

Children
No data