Bootloader - ISP

Gast #918592
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
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
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
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
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

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.