www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik avrstudio - sprungbefehlfehler


Autor: Tobias Breckle (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi community,
hab heut zum erstenmal die fehlermeldung "Relative branch out of reach" 
von meinem compiler bekommen. (sprungbehel ist breq) prozessor ist ein 
mega8.
jetzt ist meine frage wie lös ich denn sowas auf? routinen kann ich 
nicht viel kürzen. und so zwischensprünge einfügen vergeudet unnötig 
zeit.

hab au nix im forum oder in der anleitung gefunden.

Autor: MooseChecker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
aus dem relativen Sprung einen absoluten Sprung machen

MooseC

Autor: Tobias Breckle (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
spring aber mit breq. oder gibts da ein gleichen befehl der absolut 
springt?

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
manchmal kann man Programmteile anders anordnen, um die Sprungdistanz zu 
verkürzen, ein Kochrezept gibts dafür nicht.
statt:

breq ziel1

kannst du dann schreiben:

brne ziel2
rjmp ziel1
ziel2: weiter im Text

Autor: Tobias Breckle (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hab ich au schon überlegt.
hab aber grad noch ne andere lösung gefunden:

...
breq ziel1
...

ziel1:
jmp eigentliches_ziel
...

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
viele Wege führen nach Rom, deine Lösung funktioniert natürlich auch, 
würde trotzdem meine favorisieren, da du den endgültigen Sprungbbefehl 
da stehen hast, wo die Verzweigung auch stattfindet, ist leichter 
lesbar. Ausserdem kann es passieren, dass der breq wieder irgendwann zu 
kurz ist, wenn  das Programm zwischen breq und  jmp irgendwann mal 
länger wird. Aber, wie gesagt, das kannst du halten wie Nolte.

Autor: Uwe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi!
Bei mir sieht das dann so aus:

brne Ziel2
rjmp Ziel1
Ziel2

Nun ja viele Wege ...

MFG Uwe

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.