hello I am using ARM7 LPC2148. in the program I have to use recursive function. so there are lots of chances of stack overflow. how to avoid this??
What do you hope to achieve by that?
I just want to avoid stack overflow while working with recursive functions........
in LPC2148 there is inst in assembly with which we can set stack ptr mov sp, #data
So you intend to fool the compiler by manipulating the stack pointer yourself? What do you think do you have a compiler for, then? To write correct machine code that complies with the computation model/standards you use - of course! In other words: Don't do it.
"I just want to avoid stack overflow while working with recursive functions........"
You could use assembler to manipulate the stack. But to what purpose?
If your recursive function needs storage, then it simply needs storage. What would you attempt to do? put a temporary stack somewhere else? The total of space required would surely still be the same, so why go to the trouble?
Surely you have two options: 1) Increase the allocation for the stack. 2) Consider re-writing your routines so they don't require recursion.
The only real purpose I can think of is to detect when you're about to run out of stack, and stop the recursion there?
Not sure how actually useful that'd be, though...?
Again, the safest way to avoid problems due to recursion is: don't do recursion!
If you don't do it, then it obviously can't cause you any problems!