Hallo zusammen, bin umgestiegen von AVR-Studio 4.12 auf 6.0.1843. Ich wollte ein altes Projekt, das bereits tatellos funktioniert hat, auf dem neuen Studio zum laufen bringen. Dazu habe ich ein neues Projekt erstellt (GCC C Executable Project) und dann den Inhalt der alten .c Datei in die neue .c Datei kopiert. Das Kompaillieren und Beschreiben des µC verlief fehler- und warnfrei. Das Problem: Der µC bleibt plötzlich stehen und macht nichts mehr. Folgendes habe ich bei der Fehlersuche entdeckt: Sobald ich innerhalb von main() eine Funktion aufrufe, bleibt der µC am Ende der Funktion hängen und kommt nicht mehr heraus, so als würde er im Stack den Pointer für die Rücksprungadresse verlieren. Im konkreten Fall war das eine global deklarierte und definierte Funktion, die irgendwo innerhalb von main aufgerufen wird. Wie gesagt, beim AVR Studio 4.12 lief dieser Quellcode tatellos, ich verwende genau die gleiche Hardware. Die folgenden Punkte habe ich bereits gecheckt: - µC Typ - fuses - clk Frequenz - compiler-optimierung auf "-os" - keine Fehler- oder Warnmeldungen beim kompilieren - richtiges .hex file Ich weiß im Moment nicht mehr weiter. Kann mir jemand bitte helfen? Danke im Voraus. Gruß Matthias
:
Verschoben durch Moderator
Re: Problem mit AVR Studio 6 - ATMega64 funktioniert nicht mehr (speziell Aufruf von Unterfunktionen
Hi, wieviel vom Arbeitsspeicher (SRAM) hast Du verwendet? Solche Effekte hatte ich, als mein Stack mit dem Heap (d.h. dem Variablenspeicher vom C-Programm) kollidiert ist aufgrund von zuwenig SRAM. Da Du jetzt ja eine neuere Version der Toolchain und wohl auch der libc verwendest, könnten da durchaus Unterschiede im Speicherverbrauch auftreten. Grüße Markus
Re: Problem mit AVR Studio 6 - ATMega64 funktioniert nicht mehr (speziell Aufruf von Unterfunktionen
Matthias schrieb: > Folgendes habe ich bei der Fehlersuche entdeckt: > Sobald ich innerhalb von main() eine Funktion aufrufe, bleibt der µC am > Ende der Funktion hängen und kommt nicht mehr heraus, so als würde er im > Stack den Pointer für die Rücksprungadresse verlieren. > Die folgenden Punkte habe ich bereits gecheckt: > ... > - fuses Sicher? Klingt verdammt nach M103C-Fuse.
Re: Problem mit AVR Studio 6 - ATMega64 funktioniert nicht mehr (speziell Aufruf von Unterfunktionen
Hallo Stefan, Du hattest absolut recht. Genau diese Fuse war aktiv. Nachdem ich die "CompMode" Fuse deaktivert habe, geht es jetzt. Super!!! Vielen Dank! Gestern ist meine Konzentration halt einfach schon um 22 Uhr mit den Kindern ins Bett gegangen :-) Danke auch an Markus für den interesanten Lösungsansatz! Schöne Grüße, Matthias
Re: Problem mit AVR Studio 6 - ATMega64 funktioniert nicht mehr (speziell Aufruf von Unterfunktionen
Darf ich mal fragen was dich dazu bewogen hat von 4.12 auf 6 umzusteigen? Warum hast du die anderen Updates ausgelassen? Ingo
Re: Problem mit AVR Studio 6 - ATMega64 funktioniert nicht mehr (speziell Aufruf von Unterfunktionen
Ingo schrieb: > Warum hast du die anderen Updates ausgelassen? Wofür sollten sie denn gut sein? Nein, ich benutze kein AVR Studio, aber dazwischen lag nur das AVR Studio 5, welches erstens völlig buggy war (habe ich gelesen) und zweitens innerhalb kürzester Zeit durch Atmel Studio 6 abgelöst worden ist.
Re: Problem mit AVR Studio 6 - ATMega64 funktioniert nicht mehr (speziell Aufruf von Unterfunktionen
Es gab aber doch in Version 4 noch weitere Updates (ich nehme an von 4.12 bis 4.19 etwa 7 + evtl. Servicepacks)!?
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.