Fixe Adresse im Flash hex_File extern äbändern

Gast #3954619
Lesenswert?

Hallo
ich habe gerade keinen Plan wie ich folgende Aufgabe lösen soll.
Zur Aufgabe. Ich muß ein Gerät mit einer Seriennummer ausstatten.
Das heißt ich soll direkt in den Flash die Seriennummer hinterlegen!
Nun da es mehrere Geräte sind möchte ich ich die Seriennummer irgendwie 
beim Flashen generieren und schreiben.
Meine Frage ist kann man die Seriennummer an eine bestimmte 
Speicherstelle binden und diese stelle mit einem bearbeiteten Hexfile 
beschreiben?
Ich hoffe ich habe mich einiger weiße klar ausgedrückt!
Ich verwende eine ATMEGA 644 und das Atmel Studio6

Danke für eure Hilfe!
#3955446
Lesenswert?

gurke schrieb:
> bestimmte Speicherstelle binden und diese stelle mit einem bearbeiteten
> Hexfile beschreiben?

Könnte mit einem linker script funktionieren.

Falls du auch ein elf file hast, und die variable mit der seriennummer 
mit extern declariert wurde, kannst du die Adresse der Variable 
womöglich mit
avr-objdump -t | grep ...
finden, und dann im hexfile ersetzen.
#3955513
Lesenswert?

Peter II schrieb:
> Oder einfach eine Dummy Seriennummer in den Quelltext einbauen und dann
> suchen und ersetzen im bin-file.

Ist nicht garantiert.

Auf dem avr-gcc führt der Weg über eine eigene Speicher Section, in die 
du die Variable legst und der Angabe für den Linker, wo du diese Section 
im Speicher platziert haben willst.

Such mal im Forum, da gibt es einige Beispiele dafür.


Ach ja.
Und du brauchst natürlich dann auf deinem Entwicklungsrechner ein Tool, 
welches du in den Buildprozess einbauen kannst und dass in der Lage ist 
Hex-Files zu lesen, einzelne Bytes auszutauschen und ein neues Hex-File 
zu schreiben. Aber das sollte für einen nicht ganz unerfahrenen 
C-Programmierer zu machen sein. So kompliziert ist das Intel-Hex Format 
nun auch wieder nicht.
Gast #3955574
Lesenswert?

Karl Heinz schrieb:
> Ach ja.
> Und du brauchst natürlich dann auf deinem Entwicklungsrechner ein Tool,
> welches du in den Buildprozess einbauen kannst und dass in der Lage ist
> Hex-Files zu lesen, einzelne Bytes auszutauschen und ein neues Hex-File
> zu schreiben. Aber das sollte für einen nicht ganz unerfahrenen
> C-Programmierer zu machen sein. So kompliziert ist das Intel-Hex Format
> nun auch wieder nicht.

Dazu würde ich mich schon in der Lage sehen!
Werde mal die suche starten vielleicht hilfts ja;)
Lg

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren