Bootloader - ISP

Gast #918592
Lesenswert?

Habe mir einen Bootloader geschrieben, zum ersten mal. Leider 
funktioniert das Ganze noch nicht wie gewünscht. Daher einige Fragen:

1) Woher weiss AVR-Studio das es sich um einen Bootloader handelt, 
respektive, dass das Programm in entsprechenden Speicherbereich 
geschrieben werden muss?
-- Ich habe jeweils bei jeder funktion angegeben, dass das ganze in die 
entsprechende Section geschrieben werden soll, gemäss meinem *.map File, 
sieht das ganze schon mal nicht böse aus, oder?

2) Ich habe jetzt die eigentliche Software die ich laufen lassen möcht, 
und den Bootloader. Die Software funktioniert alleine.
Kann ich überhaupt via ISP erst den Bootloader, und dann ebenfalls via 
ISP die eigentliche Software laden?
Angehängte Dateien:
#918621
Lesenswert?

Emanuel wrote:

> 1) Woher weiss AVR-Studio das es sich um einen Bootloader handelt,
> respektive, dass das Programm in entsprechenden Speicherbereich
> geschrieben werden muss?

Weil die Adressen für die binären Daten mit im Hex-File stehen.

> -- Ich habe jeweils bei jeder funktion angegeben, dass das ganze in die
> entsprechende Section geschrieben werden soll, gemäss meinem *.map File,
> sieht das ganze schon mal nicht böse aus, oder?

Gut aber auch nicht. ;-)
Wenn du nur die Funktionen "verlegst", hast du immer noch Code im 
unteren Bereich, z.B. den kompletten Startup-Code (sieht man ja auch im 
Map-File). Steck die Funktionen nicht in eine separate Section, 
sondern verschiebe einfach das Text-Segment, dann hast du den kompletten 
Code im Bootbereich.

> Kann ich überhaupt via ISP erst den Bootloader, und dann ebenfalls via
> ISP die eigentliche Software laden?

Ja.
Gast #918646
Lesenswert?

wie verschiebe ich das Text segment? (ich könnte mir jetzt Vorstellen 
das sich die Frage saudumm anhört, aber gebe mir wahrscheinlich gerade 
mühe, den Wald vor lauter Bäumen nicht zu sehen...)
Gast #918780
Lesenswert?

Sehe es nicht ganz...

mit den selections hab ich
>>-Wl,--section-start=.bootloader=0x1C00
bei den linker options eingegeben... funktonierte tiptop... wie ich das 
so machen kann, dass komplet alles in den speicherbereich verschoben 
wird ist mir nicht ganz klar...
Gast #918870
Lesenswert?

supi funktioniert tiptop...
hab leider schon ein weiteres Problemchen.

Ich kann jetzt zwar von meinem Hauptprogramm in den Bootloader und 
zurück springen...
aber beim booten startet er die normale Applikation, statt dem 
Bootloader.
Gemäss datasheet sollt es jedoch reichen das BOOTRST zu setzten, damit 
er automatisch in den Bootloaderbereich springt... sehr ich was falsch?

meine fuse bits müssten ja richtig sien (siehe anhang)
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren