We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
Hello all, i have DECT handset based on 8051 controller.. and i also have an application software running on it.
I am planning to run this software in debug mode in Keil IDE itself, so that i can run some keypad simulators interfaced through AGSI driver interface.
SO i commented a funtion call which internally declares some local variables. then the linker gives me this error.. if i uncomment the function call ... every thing works fine...
i am using SMALL memory model...
can anyone please suggest me the reason for it.
error is
*** ERROR L107: ADDRESS SPACE OVERFLOW SPACE: DATA SEGMENT: _DATA_GROUP_ LENGTH: 000050H
thanks, supreet
The call tree analysis is described in http://www.keil.com/support/man/docs/bl51/bl51_ol_calltree.htm
If you manually remove a function from the call tree (by commenting out the call to it) the compiler still generates the code for the function and the linker still has to allocate memory to it. However, since it's not part of the call tree, the memory allocated to it cannot be overlaid. And, your application uses MORE memory.
Jon
"The call tree analysis is described in..."
And it works exactly the same way irrespective of what memory model you use.
"However, since it's not part of the call tree, the memory allocated to it cannot be overlaid. And, your application uses MORE memory."
And exactly the same will happen irrespective of what memory model you use.
Therefore, if the "un-overlaid" memory size also exceeds your XDATA size, you will still get an overflow if you switch to the Large model - the only difference is that it's XDATA overflowing, instead of DATA.