ohai, danke fuer die guten tipps. hab das auf intern@ weiter besprochen, das ist immer der krampf mit mehreren mailinglisten. ich hab mein problem wie folgt geloest: 1. i uploaded the micronucleus bootloader and set the fuses 2. i plugged in the device and uploaded the userspace programm over usb 3. i DUMPED the contents of the attiny (avrdude -p attiny85 -P usb -c usbtiny -U flash:r:flash.hex:i) 4. i write those contents back to a new device -> win. i will take a look at the .hex files later to see whats really going on. if anyone is interested in doing research there i can provide allt he .hex files. right now i found a soltion and can now flash all my devices with one run. hurra. -flo Am 10/03/15 um 13:38 schrieb Herbert Poetzl:
On Tue, Mar 10, 2015 at 12:34:39PM +0100, Erwin Erkinger wrote:
hi, Jakob hat schon die meisten Sachen geklärt - nur ein paar zusätzliche Anmerkungen: Hex-Files: Je nach Generator wird im HEX File oft das „unbenutzte“ Memory fälschlicherweise mit „0“ aufgefüllt. Wenn schon auffüllen dann mit 0xFF. Ev. überlappen sich auch die beiden HEX-Files in Ihrem Adressraum. Zwei Hexfiles zusammenstückeln funktioniert damit ev. nicht richtig. Flash-Memory: Wenn Flash gelöscht wird (zB. vor dem programmieren) werden alle Zellen auf 0xFF gesetzt. Das eigentliche Programmieren kann die Bits einer Memory-Zelle nur auf 0 zurücksetzen. Das Löschen des Memorys geht nur Blockweise - wie groß diese Blöcke sind steht im Datenblatt der CPU. Bootsektor: Oft ist die Segmentierung des Flash so gelöst das ein kleiner Sektor existiert der für den Bootloader vorgesehen ist. Dort zeigt auch der Reset-Vektor hin. —> Fazit: die beiden HEX-Files verbinden und dann auf einmal programmieren ist aus meiner Sicht die einzig effektive Lösung. https://pypi.python.org/pypi/IntelHex/1.1
Kann hex files korrekt mergen.
Natuerlich gehts auch mit (g)awk oder vi :)
best, Herbert