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