Bootloader modifizieren für ATmega2560

OP #2220463
Lesenswert?
• ▲
▼
Guten Abend allerseits,
ich habe einen Bootloader auf meinem ATmega2560 der eigentlich von einem 
anderen, kleineren ATmega kommt.
Solange ich Hex file mit einer Größe von <128k hochlade klappt auch 
alles wie es soll. Ab 128k gib es Probleme.

Jetzt habe ich mir im Hexfile angesehen wie die ersten Byte nach der 
Adresserweiterung (:020000022000DC) aussehen.



und habe diese dann im output von avrdude ( im verbose mode ) gesucht 
und gefunden.
Die Adresse an die avrdude schreiben will läuft über und beginnt wieder 
bei 0000 was auch Sinn macht da mit 0xFFFF = 64k eben die maximale WORD 
Adresse erreicht ist ( "Byte adresse" 128k-1 ) die eben in 16 bit 
passen.

Daher dachte ich mir: Könnte ich nicht in meinem Bootloader testen ob 
gerade zum ersten oder zum zweiten mal auf die adresse 0x0000 
geschrieben werden soll, und wenn es das zweite mal ist "einfach" 128k 
aufaddieren?

Aktuell macht der Bootloader ohnehin schon so einen trick:

if (address.byte[1]>127 ) address_high  =  0x01;
else address_high= 0x00;
RAMPZ  =  address_high;
address.word  =  address.word << 1;  //address * 2 -> byte location

also dachte ich mir ich mache da folgendes draus:

if (address.byte[1]>127 && lower_round!=1) address_high=0x01;
else if(address.byte[1]<=127 && lower_round==1) address_high=0x02;
else if(address.byte[1]>127 && lower_round==1) address_high=0x03;
else address_high  =  0x00;

Das ganze läd auch brav hoch, aber danach ist quasi kein lauffähiges 
Programm auf dem AVR ... sieht jemand auf Anhieb den Fehler ?

Antwort schreiben

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.

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.