Was bedeutet diese Fehlermeldung

Gast #161048
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 #161049
die relativen bedingten Sprünge arbeiten mit einem 6 Bit Offset. Das
Sprungziel darf also maximal -64 +63 Worte entfernt sein. Hier ist die
Distanz zu gross.
Gast #161050
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
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
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
Gast #161054
Hallo Thorsten

Den ganzen Cod möchte ich nicht posten. Was ist für dich Relevant?
Eigentlich ist doch das der Relevante Code da der Fehler ihr drin ist.


Gruss

Weihnachtsmann
Gast #161056
breq nnn
einfach durch die kombination
brne PC + 2
rjmp nnn
ersetzen, dann dürfen es +-2k Worte sein
und damit ist beim das gesamte flash adressierbar.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 21 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.