Was bedeutet diese Fehlermeldung

Gast #161048
Lesenswert?

Hallo Zusammenn

Ich programmieren einen ATMEGA8515 16PI

Auf einmal bekomme ich die Fehlermeldung:
"error: Relativ branch out of reach"

Ich habe einen kleinen Ausschnitt aus dem Code.

Fehler ist markiert "====Fehler  == >>breq BfOKOK_RBS"

Ich begreife die Meldung nicht. Was könnte dies sein?


Gruss

Weihnachtsmann
Angehängte Dateien:
Gast #161050
Lesenswert?

Hallo,

ohne diesen Atmega genau zu kennen: Kann es sein, dass der relative
sprünge einfach nur mit einer bestimmten maximalen Sprungweite machen
kann? Beim 8052 ist das so. Der hat nicht so viele Bits im
Befehlsformat für den relativen Sprung, und dann kann er nur +-2^n
Bytes vor oder zurück.

Gruss
  Alexander
Gast #161051
Lesenswert?

Hallo mmerten

Danke mal für die Antwort

Also ich Prüfe ja mehrer Befehle auf richtigkeit. Wenn ich einen Befehl
auskommentiere geht es wieder. Somit hast du recht.

Nur wie soll ich dies nun machen?

Wie würdest du das machen

Gruss

Weihnachtsmann
Gast #161052
Lesenswert?

Hallo,

die Meldung bedeutet, dass das Sprungziel zu weit entfernt im Code
liegt (zu viele Bytes Programmcode zwischen Sprungbefehl und -ziel), um
mit einem relativen Sprungbefehl erreichbar zu sein. Ich habe gerade die
Spezifikation nicht zur Hand, aber würde sagen, dass es nicht mehr als
128 Byte oder 16 Word sein dürfen.

Du kannst jetzt m.E. zwei Dinge tun:
a) das Ziel näher heran holen
b) einen absoluten Sprungbefehl (JMP, RJMP) verwenden.

Gruß, Achim

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren