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 ?
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.