XMega und UserRow Seriennummer.... und Programmer

UserRow als USBsernum

pvs-deck
PowerUser
Avatar
Gender:
Age: 53
Homepage: pvs-deck.de
Posts: 1341
Registered: 02 / 2009
Subject:

XMega und UserRow Seriennummer.... und Programmer

 · 
Posted: 21.08.2014 - 10:20  ·  #1
Hallo Rolf,

ich habe mir mal den UserRow Bereich vom XMega angeschaut,
gibt es eine einfache und schnelle Möglichkeit mit dem programmieren des BootLoaders gleichzeitig eine Aufsteigende Nummer in diesen Bereich zu schreiben?

z.B.:
1. Gerät, Ser 470001 (Vorgabe zum eingeben)
2. Gerät, Ser 470002 (automatisch erhöht)
3. Gerät, Ser 470003 (automatisch erhöht)
4. Gerät, Ser 470004 (automatisch erhöht)
...
500. Gerät, Ser 470500 (speichert beim beenden letzten Stand für das nächste mal)

Geht so was evtl. über eine Commandline Ansteuerung? Ich habe in der Doku nichts brauchbares gefunden. (oder überlesen)

Was aber evtl. problematischer ist!
Wie um alles in der Welt bekomme ich dann diese Seriennummer aus dem UserRow Bereich als
Seriennummer für die USB-Schnittstelle zum laufen?

Code
Define
  USBmanufact            = 'PVS Thorsten Deck';       // max 31 bytes
  USBprodName            = 'PVS2014-CPU';           // "     "
  USBpid                 = $xxxx;
  USBvid                 = $xxxx;
  USBsernum              = 102; // hier muss der Wert aus UserRow rein!
  USBprodRel             = 201;
  USBcurrent             = 200;


Geht das überhaupt, da diese bereits in der Define festgelegt wird?

Problemstellung, die Geräte werden bei uns mit der aktuellen Firmware bespielt, aber irgendwann gibt es Updates, dann soll der Kunde die Firmware selbst aufspielen können. Wenn ich die Seriennummer nun als Define mache, habe ich ein Problem! Mit dem verteilen dieses Updates erhalten alle Geräte die gleiche USB-Seriennummer/Geräte-Seriennummer.

Gruß
Thorsten
rh
Administrator
Avatar
Gender:
Location: Germany
Age: 24
Homepage: e-lab.de
Posts: 5558
Registered: 03 / 2002
Subject:

Re: XMega und UserRow Seriennummer.... und Programmer

 · 
Posted: 21.08.2014 - 14:05  ·  #2
Hallo Thorsten,

es ist keine gute Idee das in den USR Bereich zu verlegen.
Wenn irgendwann eine Download Firmware kommt wo von Ihnen der User Bereich
benutzt wird, dann wird die Serien Nummer überschrieben.

Deshalb sollte die Serien Nummer, wenn ein Boot im Spiel ist, immer am Ende des
Boots stehen. Beim erstellen des Boots kann das AVRprog eine fortlaufende
Seriennummer generieren, die dann am Ende des Boots eingesetzt wird.

Weiteres im Programmer Manual.

rolf
pvs-deck
PowerUser
Avatar
Gender:
Age: 53
Homepage: pvs-deck.de
Posts: 1341
Registered: 02 / 2009
Subject:

Re: XMega und UserRow Seriennummer.... und Programmer

 · 
Posted: 21.08.2014 - 15:03  ·  #3
Quote by rh

es ist keine gute Idee das in den USR Bereich zu verlegen.
Wenn irgendwann eine Download Firmware kommt wo von Ihnen der User Bereich
benutzt wird, dann wird die Serien Nummer überschrieben.

OK, ich dachte dieser USR Bereich ist dafür gedacht?
Klar, wenn ich den USRBereich zum aktivieren Programmiere ist dieser weg.

Quote by rh

Deshalb sollte die Serien Nummer, wenn ein Boot im Spiel ist, immer am Ende des
Boots stehen. Beim erstellen des Boots kann das AVRprog eine fortlaufende
Seriennummer generieren, die dann am Ende des Boots eingesetzt wird.

Weiteres im Programmer Manual.

Gibt es da bereits fertige Constanten zum Zugriff, wie bei
Code
Die Compiler Version und andere können über vordefinierte Konstante abgefragt und im Programm
verwendet werden.
CompilerRev : word = rev; // actual Compiler version
CompilerBuild_Y : byte = yy; // actual Compiler build, last 2 digits of current year 00..99
CompilerBuild_M : byte = mm; // actual Compiler build, current month 01..12
CompilerBuild_D : byte = dd; // actual Compiler build, last current day 01..31
CompileYear : byte = yy; // last 2 digits of current year 00..99
CompileMonth : byte = mm; // current month 01..12
CompileDay : byte = dd; // current day 01..31
CompileHour : byte = hh; // current hour 00..23
CompileMinute : byte = mi; // current minute 00..59
PojectBuild : word = pbuild; // number, incremented with each successful project compile
OptimiserRev : word = rev; // number, supplied by the optimiser
OptimiserBuild : word = build; // number, supplied by the optimiser


Wenn ich richtig verstanden habe müsste ich diese Info beim BootLoader programmieren....aber

Wenn ich nun an meinem Projekt arbeite und über den UPP oder ISP nur das Projekt lade ohne den Bootloader. Was passiert dann mit diesem FlashBereich? Wird der nicht dann auf FF gesetzt?

Gruß
Thorsten
Selected quotes for multi-quoting:   0

Registered users in this topic

Currently no registered users in this section

The statistic shows who was online during the last 5 minutes. Updated every 90 seconds.
MySQL Queries: 15 · Cache Hits: 14   66   80 · Page-Gen-Time: 0.030651s · Memory Usage: 2 MB · GZIP: on · Viewport: SMXL-HiDPI