Guten Morgen SprinterSB,

danke für deine Erklärung. Ich nutze kein inline assembler. Woran hätte es dann noch liegen können?

Wie lange dürfen denn die Sprünge sein, bzw. entscheidet nicht der Compiler bzw. Linker, ob er einen relativen oder absoluten Sprung machen muss?

Mein Controller ist fast voll (>99%). Ich nutze eine eigene Bibliothek (LCD). Die Funktionen daraus werden überall im Programm verwendet. Da der Fehler auch beim Aufruf einer Funktion aus dieser Bibliothek aufgetreten ist, und du sagst dass ein Sprung zu lange ist vermute ich das die Bibliothek nicht "in der Mitte" des Programms gelinkt werden konnte und somit vielleicht der Fehler aufgetreten ist.

Leider kann ich den Fehler nicht mehr reproduzieren. Ich hätte ein Backup vom "defekten" Stand machen sollen für weitere Analysen.
Aber die Hauptsache ist ja, dass es jetzt funktioniert.

Viele Grüße
Andreas