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!
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.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.