[Metalab] AVR / LINKER guru gesucht (SOLVED)

Herbert Poetzl herbert at 13thfloor.at
Wed Mar 11 10:14:07 CET 2015


On Tue, Mar 10, 2015 at 08:05:14PM +0100, overflo wrote:
> 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.

Ja, das intel hex format ist nicht sehr kompliziert, nur
am Anfang etwas verwirrend mit den Adressen und Checksums.

Solltest du mal nicht durchblicken, kannst du mich gerne
fragen, ich hab damit schon einige Erfahrung gesammelt.

> right now i found a soltion and can now flash all my devices
> with one run.

\o/

> 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







> _______________________________________________
> Metalab mailing list
> Metalab at lists.metalab.at
> https://lists.metalab.at/mailman/listinfo/metalab




More information about the Metalab mailing list