Problem mit stk600.exe

OP #3098497
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.....
Gast #3103009
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.

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.