Hallo zusammen, kann einem avrdude einen Rückgabewert liefern, ob ein Verify erfolgreich war? Bei nagelneuen Controllern müssen die Fuses meist 3 mal geschrieben werden, ich möchte in einer Batchdatei abfragen, ob das Verify erfolgreich war. Dann möchte ich automatisch zum nächsten Schritt gehen (Bootloader einspielen). Ansonsten möchte ich ein nochmaliges Schreiben anbieten. Oder muss ich die Textausgabe von avrdude auswerten? Gruß Jens
Jens schrieb: > kann einem avrdude einen Rückgabewert liefern, ob ein Verify erfolgreich > war? Ja, ein verify-Fehler bringt auf jeden Fall einen Rückgabewert ungleich 0. > Bei nagelneuen Controllern müssen die Fuses meist 3 mal geschrieben > werden Huch? Das ist ein Bug.
Jens schrieb: > Bei nagelneuen Controllern müssen die Fuses meist 3 mal geschrieben > werden Dann ist Dein SPI-Takt zu hoch. Neue AVRs sind auf 1MHz gesetzt, also SPI auf <= 125kHz setzen! Peter
Hm, bei einem neuen ging es gerade sofort. Bei meinem vorherigen Tool musste ich es immer 3mal machen. Vermutlich lag es an dem anderen Tool. Danke.
Noch eine Frage, wenn ich immer zuerst den Bootloader mit Chiperase schreibe AVRDUDE = avrdude -p c128 -c stk500v2 -P com16 -e -V -U flash:w:%bootloader%:a und danach mein Programm ohne Chiperase AVRDUDE = avrdude -p c128 -c stk500v2 -P com16 -D -V -U flash:w:%file%:a dann müsste ich ja auf der sicheren Seite sein. Was passiert aber, wenn ich wie oben meine Erstprogrammierung gemacht habe und später ein neues Programm nicht über den Bootloader, sondern über avrdude ohne Chiperase einspiele? Wieder mit: AVRDUDE = avrdude -p c128 -c stk500v2 -P com16 -D -V -U flash:w:%file%:a Dann bleibt zwar der Bootloader erhalten, aber kann es nicht dann zu Problemen mit altem Code im Flash kommen? Lasse ich die Oprtion -D weg, dann ist auch der Bootloader futsch. Kann man evtl. einen Chiperase mit einem Offset durchführen und denn Booloader bereich aussparen? Gruß Jens
Jens schrieb: > Noch eine Frage, wenn ich immer zuerst den Bootloader mit Chiperase > schreibe ... > und danach mein Programm ohne Chiperase ... > dann müsste ich ja auf der sicheren Seite sein. Ja. > Was passiert aber, wenn ich wie oben meine Erstprogrammierung gemacht > habe und später ein neues Programm nicht über den Bootloader, sondern > über avrdude ohne Chiperase einspiele? Ein logisches UND zwischen den alten und den neuen Bits. Flash (oder EPROM allgemein) lässt sich immer nur von 1-Bits nach 0-Bits beschreiben. Die Rückkehr auf den Wert 1 erfolgt durch Löschen. > Kann man evtl. einen Chiperase mit einem Offset durchführen und denn > Booloader bereich aussparen? Nein, das lässt sich so nicht machen, ein Chip Erase löscht (wie der Name sagt) halt den gesamten Chip. Was du bräuchtest, wäre ein Page Erase. Diese Funktion existiert zwar intern (und wird beispielsweise vom Bootloader benutzt), aber Atmel hat es irgendwie vergessen, diese Fähigkeit auf die ISP- (bzw. JTAG-)Schnittstelle selbst herauszu- führen, und damit können die Programmierwerkzeuge eine solche Funktion auch nicht anbieten.
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.