Forum: Mikrocontroller und Digitale Elektronik Xmega128A1U - Problem mit Stackpointer?


von Proton (Gast)


Lesenswert?

Hallo zusammen,

ich habe ein Problem und weiß einfach nicht mehr weiter. Vorab ein paar 
Infos zu meiner Ausgangslage.
Ich nutze Atmel Studio 6 (Service Pack 2).
Der µC ist ein Xmega128A1U.
Ich nutze den Standardcompiler von AVR-Studio.
Programmer ist ein JTAGICE3.
Program Memory Usage:  44714 bytes   32,1 % Full
Data Memory Usage:  6820 bytes   83,3 % Full

Und hier mein tolles Problem:
Ich nutze vom AtmelSoftwareFramework die Library für die 
USB-Schnittstelle (funktioniert auch wunderbar). In meinen Programm (ca. 
3000 Zeilen oder mehr) habe ich eine selbst erstellte Funktion, die 
momentan an keiner Stelle aufgerufen wird (ja, ich bin mir sicher, dass 
sie nicht aufgerufen wird). Jetzt kommt das verblüffende: Wenn ich in 
dieser Funktion Änderungen vornehme, dann geht auf einmal die 
USB-Verbindung nicht mehr. Die Funktion hat nichts mit der 
USB-Schnittstelle zu tun und greift auf keine IO's zu. Meine Vermutung 
ist ein Problem mit dem Stack... Beim Debuggen kommt aber keine 
Fehlermeldung, wie z.B. Stackoverflow.

Ich hoffe, ihr könnt mir weiterhelfen.
Schon mal vielen Dank im Voraus!

von mrc (Gast)


Lesenswert?

nutzt die Funktion globale Variablen?
Machst du in deinem Programm komische Sachen mit Pointern auf 
funktionen?
poste doch mal die betroffen Funktion.
Wackel in der Funktion mit einem Pin und schau dirs mit dem Oszi an.
Lösch mal Schrittweise alles aus der Funktion raus bis es geht.

von Proton (Gast)


Lesenswert?

Ich habe in der Funktion mehrere sprintf(...). Alle geben nur fest 
definierte Strings aus. Die gesamte Funktion wird an keiner Stelle 
aufgerufen, hab schon versucht ein PIN toggeln zu lassen. Die Funktion 
wird definitiv nicht aufgerufen. Ich benötige die gesamte Funktion nicht 
mehr. Wenn ich die Funktion aber lösche, dann geht meine USB-Verbindung 
nicht mehr. Gerät wird auch nicht mehr richtig im Gerätemanager erkannt 
(VID und PID stimmen nicht mehr). Ich vermute, dass sich der 
Programmspeicher verschiebt und dadurch der Stack irgendwie Probleme 
macht.

von Proton (Gast)


Lesenswert?

Hallo Leute,

das Problem hat sich erledigt!!!
Ich habe mein Atmel Studio von v6.0 auf v6.1 aktualisiert und siehe da, 
es funktioniert. Vielen Dank für eure Bemühungen.

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.