Forum: Mikrocontroller und Digitale Elektronik Assemblierungsfehler ? ! ?


von Voyager9 (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

Es gibt mal wieder etwas dass mir nicht in den Kopf gehen will... Im
Anhang ist eine Datei, die sich einfach nicht assenblieren lässt. Der
Code ist nicht fehlerhaft, jedoch im Abschnitt: JA1: und JA2: ist ein
sprungbefehl: "rcall zeit2". Beim Label JA1 funktioniert es noch,
wenn ich das selbe bei JA2 und oder den anderen einsetze bringt mir das
AVR Studio einen Assemblierungsfehler... Kann mir bitte einer sagen
warum ? Ich verstehs nicht, denn es ist doch ganz normaler
Programmcode. Hatte das schon öfter, vor allem wenn ich display texte
in Tabellen fasse, oder viele SBI befehle habe.. irgendwann streikt der
Assembler und meldet einen Fehler, warum auch immer. Was mache ich
falsch ?  Wäre für eine Erklärung echt dankbar.

Gruß, Andy

von Fritz Ganter (Gast)


Lesenswert?

Wir wären für die genaue Fehlermeldung echt dankbar.

von Voyager9 (Gast)


Lesenswert?

Sorry:

Error: Relative Branch out of reach

was soviel heisst dass das sprungziel ausser reichweite liegt, was ich
mir aber nicht vorstellen kann wenn ich mir das programm so ansehe...
??? :( ?

von Peter D. (peda)


Lesenswert?

"Error: Relative Branch out of reach"

Ja und welche Zeile ?


Peter

von crazy horse (Gast)


Lesenswert?

der Assembler gibt dir bestimmt noch weitere Hinweise, welcher
Sprungbefehl das Problem verursacht...
In Frage kommen die bedingten Sprünge (breq, brne u.ä), die nur eine
Sprungweite von +127/-128 haben. Rcall und rjmp stehen ausser Frage, da
diese den gesamten Programmspeicher erreichen.

von Voyager9 (Gast)


Lesenswert?

Kopiert doch die quelldatei mal selbst in euer avr Studio, dafür habe
ich sie angehängt. Dann seht ihr den Fehler. Bei mir steht nur:

"Error: Relative Branch out of reach"
Assembly complete with 1 error

Im Label JA1: steht der befehl " rcall zeit2"
im Label JA2: ist er momentan ausgeklammert ( Semikolon )  wenn ihr das
weg macht, kommt der assembly error, obwohl die sprungmarke ein paar
zeilen oben drüber steht. Sprungadressen zur lcd routine sind
wesentlich weiter entfernt, genau wie die Tabellen, die kommen nach der
ganzen lcd routinen und das geht ja auch, und bei einem sprungbefehl
ein paar zeilen oben beschwert er sich, das ist das was ich nicht
verstehen kann.

von Uwe (Gast)


Lesenswert?

Hi!
Ohne
<.include "lcd-routines.asm"
nicht möglich!

MFG Uwe

von Voyager9 (Gast)


Lesenswert?

Die gibts hier im tutorial zum herunter laden, das ist diese routine.


Gruß, Andy

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.