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
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.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.