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!
Die ATmega__ haben ein EEPROM, das dafür super geeignet ist...
Oder einfach eine Dummy Seriennummer in den Quelltext einbauen und dann suchen und ersetzen im bin-file.
Peter II schrieb: > Oder einfach eine Dummy Seriennummer in den Quelltext einbauen und dann > suchen und ersetzen im bin-file. Ja bleibt diese Seriennummer beim neu compilieren an der gleichen Stelle? Luigi schrieb: > Die ATmega__ haben ein EEPROM, das dafür super geeignet ist.. Das EEprom ist nicht gewünscht! Danke für Eure Hilfe
gurke schrieb: > Ja bleibt diese Seriennummer beim neu compilieren an der gleichen > Stelle? ist doch egal, einfach nach jeden Compilern neu ersetzen.
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.
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.
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
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.