Hallo Ich hoffe hier kann mir jemand weiterhelfen, weil ich im Internet und hier im Forum nicht das passende gefunden habe für mein Problem! Ich möchte gern einen Bootloader schreiben. Ich benutze AVR-Studio und WinAVR. So...wenn ich das richtig verstanden habe, dann erstelle ich ein neues Projekt, welches mein Bootloader werden soll. Dort initialisiere ich die Sachen die ich brauche (UART usw). Nun ist das Projekt also fertig! Wie sage ich dem AVR-Studio jetzt, dass er das doch bitte nicht in den Programmbereich sondern in den Bootbereich flashen soll? Um dann zu testen ob alles funktioniert würde ich dann gerne ein neues Projekt erstellen welches meine App werden soll und dass dann ebenfalls in den Controller flashen (auf gleichem Wege wie den Bootloader also per JTAG) Dies soll dan nur mal zum testen sein, ob der Bootloader an richtiger Stelle vorhanden ist und dann danach an die Adresse 0 springt und das eigentlich Programm ausführt! Meine Fragen sind also: 1. Wie sage ich dem AVR Studio mach bitte das eine Projekt in den Bootbereich und das andere in den Programmbereich vom gleichen Controller 2. Lieg ich jetzt damit komplett falsch oder stell ich mich grad irgendwie blöd an? Vielen Dank schon mal für die Antworten!
Moin! Guck mal ins Manual von WinAVR. Die Frage ist da auch in den FAQ: http://www.nongnu.org/avr-libc/user-manual/FAQ.html#faq_reloc_code MfG, Thomas
Hmmm.... Leider Funktioniert das Ganze nicht so richtig! Wenn ich hinter den Prototy meiner Funktion das schreibe, dann sagt mir zwar mein MAP-File, dass die Funktion jetzt im .bootloader-Bereich liegt aber wenn ich dann eine Applikation reinflashe ist der Bereich auch gelöscht! Und die Applikation reinflashen ohne das Device zu löschen geht auch ned! Das geht nur, wenn beim Projekt Bootloader den .text Bereich nach hinten verschiebe und dabei das Device lösche und dann anschließend die Applikation (bei der .text am Anfang des Flsh liegt) rinflashe ohne das Device zu löschen! Dann scheinen beide (also Bootloader-Projekt und Applikation-Projekt) im Flash vorhanden zu sein! Aber das Bootloader-Projekt ist dann halt in einem .text bereich und nicht in einem .bootloader Bereich! Ist das egal? Was mach ich falsch?
Der Tip von Thomas W. war nicht so ganz passend, denn du willst ja nicht Teile des Codes verschieben, sondern alles. Dazu brauchst du keine neue Section anlegen, sondern verschiebst einfach das text-Segment. -Wl,--section-start=.text=0xXXXX
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.