www.mikrocontroller.net

Forum: Compiler & IDEs Bootloader AtMega


Autor: Gast_021 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Zusammen,

ich habe folgendes Problem.
Mein kleines Programm soll im im Bootloader Sector eines
Mega128 abgelegt und ausgeführt werden.

Mit der Linkeranweisung .text = 0xF000 wird das ganze in den richtigen 
Bereich geschrieben.

Das Programm funktionier auch soweit.

Wenn ich nun eine Globale Variable einfüge und diese gleich 
initialisiere
funktioniert das ganze nicht mehr.
Bsp. char myChar = 5;

Beim uplad des HEX Files geht dann irgendetwas schief...

Kennt jemand das Problem....

Autor: Axel Ro. (axelroro)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eine Vermutung - globale, initialisierte Variable gehen ins .data 
segment, d.h. Flash. Vermutlich muss das dann auch explizit mit einer 
Link Anweisung in den Bootloaderbereich verlagert werden.
Wenn die Variable nicht initialisiert ist, liegt sie vermutlich im SRAM.

Hier spricht gesundes Halbwissen - daher die Auskunft mit Vorsicht 
geniessen.

Grüsse
Axel

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.