Hallo, beim Programmieren meines Mega163 trat der Fall ein, dass die zu überwindende Distanz bei rcalls von +/- 4096 Bytes nicht mehr ausreicht. Das stellte ich aber erst nach längerem Suchen fest, denn interessanterweise spuckte der Compiler des AVRStudio 4 keine Fehlermeldung aus. Die betroffenen Funktionen wurden einfach nicht ausgeführt. Im Gegensatz dazu meckert der Compiler jedoch, wenn Branches ein nicht erreichbares Label anspringen wollen. Was würdet Ihr in so einem Fall empfehlen? Ich stelle es mir ziemlich müßig vor, per Hand von Zeit zu Zeit alle Distanzen zu überprüfen. Und aus allen rcalls calls zu machen ist auch wenig elegant... Jens
Hallo Jens, ist zwar nicht der Brüller, aber gehen tuts: Durch Suchen und Ersetzten alle "rcall"s durch "nop brne" ersetzen und compilieren. Wenn kein Fehler aufgetreten ist, "nop brne" wieder durch "rcall" ersetzen. Das macht man einmal am Schluß des Programmierens. Grüße Oliver
Man muß lediglich die Option "Wrap relative jumps" deaktivieren, dann werden auch korrekte Fehlermeldungen für AVRs mit mehr als 8K Flash generiert.
Hey, vielen Dank für Eure schnellen Antworten. Problem gelöst :-) Jens
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.