Atmega16U2 Bootloader Grösse

Gast #4011417
Lesenswert?

Hallo zusammen,

ich habe gerade die Atmega16U2's zum Programmieren bekommen. Getestet 
habe ich mein Programm mit etwas unterhalb von 50% Programmcode und 
etwas oberhalb.

Mein Problem ist jetzt:
Der DFU-Loader sollte ja nur die oberen 4k belegen, d.h. ich habe 75% 
für mein Programm über.
Sobald das Programm aber über 50% kommt, programmiert Flip nicht mehr, 
aber der dfu-programmer unter Linux bügelt scheinbar auch den Loader 
über.

Wie kann das sein? Darf das Programm nicht über 50 % kommen, wenn ich 
parallel den DFU-Loader im Prozessor haben möchte (um weiter Updates 
machen zu können)?

Danke
Alex
Gast #4011653
Lesenswert?

Alex1 schrieb:

> Der DFU-Loader sollte ja nur die oberen 4k belegen

Sagt wer?

Im Prinzip kann ein Bootloader so groß sein, wie er will (oder vielmehr: 
sein muß). Nur einige wenige Bytes seines Codes müssen zwingend "oben" 
im Bootloaderbereich liegen, im Extremfall sogar nur ganze vier. D.h.: 
Du kannst aus der Größe des Bootloaderbereichs keinerlei Schlüsse auf 
die Größe des Bootladers ziehen.

Es wäre also erstmal sinnvoll, sich über Größe und tatsächliche Lage des 
Bootloaders im Speicher zu vergewissern...
#4024670
Lesenswert?

Hallo,
War leider eine Woche außer Gefecht... .

So wie ich das verstehe, kann der der AVR's nur aus dem Flash ausgeführt 
werden (Harvard Architektur). Da ich mir den Hex-Code im Hexfile 
angeschaut habe (der Aufbau ist ja kein Geheimnis) und im Hexfile Steht, 
dass alles ab der Adresse 0x3XXX geflasht werden soll, nehme ich doch 
stark an, dass das Programm auch in den Oberen 4K läuft.
Also verstehe ich etwas noch falsch?

Hier noch mal meine Fragen:
Sobald das Programm aber über 50% kommt, programmiert Flip nicht mehr,
aber der dfu-programmer unter Linux bügelt scheinbar auch den Loader
über.

Wie kann das sein? Darf das Programm nicht über 50 % kommen, wenn ich
parallel den DFU-Loader im Prozessor haben möchte (um weiter Updates
machen zu können)?

Danke
Alex

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren