Forum: Mikrocontroller und Digitale Elektronik Problem mit stk600.exe


von Thomas W. (beholder)


Lesenswert?

Hallo Forengemeinde,
ich habe ein Problem beim Programmieren eines ATxmega192A3, bei dem ich 
langsam echt verzweifle.

Ich habe ein Programm mit dem Atmel Studio 6.0-1996 Service Pack 2 
geschrieben und kann dieses auch direkt aus der Programmierumgebung 
heraus, über den angeschlossenen STK600, in den ATxmega192A3 flashen. 
Das Programm läuft dann anschließend genauso wie erwartet. Im Release 
Ordner befindet sich dann auch das vom Atmel Studio erzeugte HEX-File.

Wenn ich dieses HEX-File jedoch per Kommandozeile mit dem Tool 
„stk600.exe“ manuell in den Controller flashe, startet das Programm zwar 
normal aber bei einer bestimmten Funktion, kommt es dann zu einem 
Absturz.

Der Komandozeilenaufruf lautet:
stk600.exe –cUSB –ut3.3 –ua3.3 –ub3.3 –dATxmega192a3 –md –e –s –pf –vf 
-if{release.hex}

Ich habe schon alles, jedenfalls das was denke, überprüft, aber es gibt 
nichts wo ich einen Unterschied finden kann.

Die Fuse- und Lock-Bits sind in beiden Fällen identisch.
Selbst das aus dem Controller ausgelesene HEX-File ist in beiden 
Methoden komplett identisch.

Wo liegt der Fehler bzw. Unterschied?


Ich hoffe Ihr könnt mir helfen.....

von Thomas W. (Gast)


Lesenswert?

Hi,

hat keiner eine Idee??

von Thomas W. (Gast)


Lesenswert?

OK, habe den Fehler nun gefunden.

Natürlich lag es zwischen den Ohren.

Bei der Initialisierung von EEPROM-Variablen habe ich diesen schon einen 
Wert zugewiesen.

>> uint16_t u16_ee_variable EEMEM = 0x1234;

Das Programmieren aus dem Atmel-Studio heraus, welches per ELF-File 
geschieht, hat diese Variable im EEPROM des Controllers dann 
entsprechend angelegt und den Wert zugewiesen.

Da ich später die Application als HEX-File per Kommandozeile 
programmieren möchte, habe ich eine EEPROM-Initialroutine erzeugt, die 
meine EEPROM-Variablem beim ersten Start entsprechend setzen soll.

Ein Programmierfehler hatte dies aber an bestimmten Variablen 
unterbunden, wodurch die Application falsche Werte bekam und abstürzte.

Damit mir dieser Fehler nicht noch mal vorkommt, werde ich wohl am 
besten keine EEPROM-Variablen gleichzeitig anlegen und initialisieren.

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
Noch kein Account? Hier anmelden.