AVR-Studio Bootloader erstellen

Gast #881007
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!
Gast
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

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 18 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.