Forum: Mikrocontroller und Digitale Elektronik Vorgehen bei Rücksprung am Programmende


von Danilo (Gast)


Lesenswert?

Hallo

Ich bin grad auf ein "Relative Branch out of reach"-Problem
gestossen.
Der Abstand ist nun wirklich nicht sehr gross. Naja egal. Aber was
mache ich wenn ich die kompletten 8kB Programmspeicher vollmache und am
ende natürlich wieder zum Anfang springen muss?? Der Abstand ENDE-ANFANG
wäre ja riesig. Nur was will man mit einem Programm das nicht mehr zum
Anfang zurückloopt?

von frankieboy (Gast)


Lesenswert?

Hallo Danilo,

rjmp  FLASHEND+1  ; (FLASHEND+1 = Adresse 0000)

FLASHEND ist im Includefile definiert. Ist auch gut geeignet, um aus
einem Bootloader wieder neu zu starten.

Gruss

Frank

von Hannes L. (hannes)


Lesenswert?

RJMP reicht weiter als BRxx. Noch weiter reicht (bei großen AVRs) JMP.
Du müsstest also ein Label in der Nähe deines BRxx setzen, an dem ein
RJMP oder JMP zu deinem gewünschten Ziel verweist.

...

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.