:
:developer2112 (sent by Nabble.com) wrote:
:> Are re-entrant functions supported in winavr? If so, how does one go
:> about writing one? Is there some reentrant keyword that will
:cause the
:> compiler to use the stack for passing parameters instead of fixed
:> registers?
:
:Just because registers are used for parameter passing, doesn't make a
:function any less re-entrant. To be re-entrant, just don't
:store persistant
:state in the function such as with static variables.
:
It is compiler dependent.
I remember the Keil C51 compiler to generate non-reentrant code,
because lacal variables were stored in fixed memory locations
rather than on the stack. To make a function reentrant a special keyword
'reentrant' had to be applied to it.
But that was a very special case, no?
Winavr does generate reentrant code with no extra effort.
Recursive functions are only one kind of reentrant functions
regards, Michael
:_______________________________________________
:AVR-chat mailing list
:[email protected]
:http://lists.nongnu.org/mailman/listinfo/avr-chat
:
_______________________________________________ AVR-chat mailing list [email protected] http://lists.nongnu.org/mailman/listinfo/avr-chat
