Dazu müsste man wissen, wozu das gebraucht wird.
Im alten avr-gcc 3.x war __builtin_return_address(0) nicht implementiert (bzw. lieferte ein falsches Ergebnis).
Vielleicht gibt's inzwischen __builtin_return_address(0), damit ginge immerhin Ebene 1. Laut GCC Doku sollte von diesem Builtin mindestens Ebene 0 korrekt implementiert sein.
Wenn du von irgendwoher nach irgendwohin springen willst, dann
-- geht das mit longjump (weiß aber ebenso nicht, ob unwind etc für AVR funzt)
-- evtl. hast du ein Problem mit deinem Software-Design
-- wenn es um ein embedded OS geht braucht's evtl. Compiler-Unterstützung die avr-gcc (noch) nicht bietet, um an eben solche Meta-Info wie Framegröße, Returnadresse, ... heranzukommen.
Lesezeichen