Forum: Mikrocontroller und Digitale Elektronik Avrdude. Ungenutzte Blöcke bei Bootlader-Programmieren überspringen


von Burkhard (Gast)


Lesenswert?

Hallo

Ich verwende einen Mega128A und avrdude mit Parallelport-Dongel unter 
Ubuntu-Linux.
Vor der Verschiebung des Bootladers von der Startadresse 0x0000 an die 
(Wort-)Adresse 0xE000 benötigte ich zum Programmieren nur 4 Sekunden.
Nach der Verschiebung des Bootladers benötigt Avrdude jetzt ca. 60 
Sekunden für ca. 3 kBytes.
Avrdude scheint das gesamte Flash zu programmieren, obwohl der Bereich
0x0000 - 0xDFFF leer und in der Hex-Datei auch nicht enthalten ist.

Gibt es eine Möglichkeit, leere Blöcke im Flash beim Programmieren zu 
überspringen ?

Gruss aus Mülheim

Burkhard

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Burkhard schrieb:
> Gibt es eine Möglichkeit, leere Blöcke im Flash beim Programmieren zu
> überspringen ?

Ja: modifizieren des AVRDUDE-Codes.  Einige Programmer-Implementie-
rungen (STK500v2 bspw.) machen das bereits so, dass sie diese Blöcke
überspringen.

Das gesamte Handling der Speicherdaten ist in AVRDUDE derzeit
suboptimal, da alle eingelesenen Daten zuerst in ein flaches
Speicherabbild der Größe des jeweiligen Zielprozessors gepresst
werden.  Die Information, welche Daten dabei wirklich aus der Datei
gekommen sind, und welche einfach nur auf ihrem Initialwert verblieben
sind, ist danach intern "vergessen".  Eigentlich müsste man das Ganze
mal so umbauen, dass nur genau die Daten auch programmiert werden,
die aus einer Quelldatei gekommen sind.

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.