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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.