Forum: Compiler & IDEs Bootloader und AVRGCC


von Matthias (Gast)


Lesenswert?

Hi

Ich will einen Bootloader für den Mega16 schreiben. Da dieser dann im 
oberen Adressbreich (ab 0x1C00) läuft und ich eigentlich mit dem AVRGCC 
das ganze schreiben will muß dieser also Code ab 0x1C00 erzeugen und 
nicht ab 0x0000.
Jetzt zur Frage: (Jörg?)
Kann man das dem Compiler/Linker/avr-objcopy oder sonstwem mitgeben oder 
reicht es das Hexfile entsprechend anzupassen? Muß man sonstwas beachten 
zwecks Sprung und Call-Befehlen? Wird trotz der avr5 Architektur bei 
kurzen Sprüngen RJMP/RCALL anstatt JMP/CALL verwendet so das ein 
einfaches verschieben des Adressbreichs kein Problem ist?

Matthias

von Joerg Wunsch (Gast)


Lesenswert?

Ja, man kann.  RTFDoc. ;-)  Es steht beides in der Doku drin,
was man dem Linker mitgeben muß für eine Verschiebung des
regulären Text-Segments, als auch wie man einen Bootloader mit
einer normalen Applikation zusammen unterbekommt (mit einer
separaten section).

Nö, meiner Meinung nach generiert der Compiler bei avr5 immer
lange Sprünge. Aber wart' mal, da habe ich doch mal was
geschrieben...  Ja, warum liest Du eigentlich die Doku nicht,
die wir so schreiben? ;-)  Unter ``Using the GNU Tools'' findest
Du -mshort-calls, das ist wohl, was Du willst.

von Matthias (Gast)


Lesenswert?

Hi

ich hab nicht in der avrlibc-Doku gesucht da ich sowas da drin 
eigentlich nicht erwartet hab. Aber ich weiß ja selber wie das ist: Da 
schreibt man eine schöne, umfangreiche Doku und niemand ließt sie :-)

Matthias

von Joerg Wunsch (Gast)


Lesenswert?

Naja, die avr-libc Doku gibt sich Mühe, alles zu dokumentieren,
was die opensource toolchain für AVR angeht.  Sie will dabei
nicht die originale GNU Doku ersetzen, aber hinsichtlich AVR
die wesentlichen Akzente einfach noch mit herausarbeiten, die
in der umfänglichen Doku zum GCC eben einfach untergehen.

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.