Forum: Mikrocontroller und Digitale Elektronik ATmega2560 Boot Reset Vector


von Kolja W. (-jkw-)


Lesenswert?

Guten Morgen allerseits,
ich habe da mal eine Verständnissfrage zum Thema Bootloader:

Vor mir liegt ein ATmega2560, um diesen im verbauten Zustand bespaßen zu 
können habe ich einen Bootloader geflashet.
Im Hex-File des Bootloaders steht ( ersten Zeilen, gekürzt ):

:020000023000CC
:10E000000D9472F00D9493F00D9493F00D9493F0A1
:10E010000D9493F00D9493F00D9493F00D9493F070
:10E020000D9493F00D9493F00D9493F00D9493F060

nach meinem Wissen sagt die erste Zeile:
Erweitere alle Adressen um den Offset 30000.
Damit fällt das erste Byte des Bootloader an die Adresse:
0xE000+0x30000=0x3E000 => 253952 == (256-8)*1024
Der Bootloader beginnt also am Ende des Speichers, das ist ja auch ganz 
wünschenswert.

Laut Datenblatt Seite 332 
(http://www.datasheetcatalog.org/datasheets2/30/3055029_1.pdf) kommt max 
[für BOOTSZ1&&BOOTSZ0==0, Bootsize 4069] Start Bootloader Section = 
0x1F000 raus.

Die Frage die ich mir nun Stelle: Der Bootloader steht an Stelle 0x3E000 
aber der Bootloader Start auf 0x1F000 wie klappt das denn? [ Der Witz 
ist ja, es geht alles ;) ]

Kann mich da jemand aufklären ?

von Stefan E. (sternst)


Lesenswert?

Kolja W. schrieb:
> Laut Datenblatt Seite 332
> (http://www.datasheetcatalog.org/datasheets2/30/3055029_1.pdf) kommt max
> [für BOOTSZ1&&BOOTSZ0==0, Bootsize 4069] Start Bootloader Section =
> 0x1F000 raus.

Die Datenblattangabe ist eine Word-Adresse, weil das Flash in Words 
organisiert ist.

> Damit fällt das erste Byte des Bootloader an die Adresse:
> 0xE000+0x30000=0x3E000 => 253952 == (256-8)*1024

Und das ist eine Byte-Adresse.

> Die Frage die ich mir nun Stelle: Der Bootloader steht an Stelle 0x3E000
> aber der Bootloader Start auf 0x1F000 wie klappt das denn? [ Der Witz
> ist ja, es geht alles ;) ]

Ja, weil 0x1F000 * 2 = 0x3E000, also alles in Ordnung.

von Kolja W. (-jkw-)


Lesenswert?

Sau gut, danke!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.