Forum: Compiler & IDEs Code verhält sich völlig unberechenbar


von Daniel (Gast)


Lesenswert?

Hallo,

beim Versuch, einen Wii Nunchuk mit einem Atmega8 über TWI anzusteuern, 
bin ich an eine Stelle gestoßen, an der mein Code völlig merkwürdige 
Sachen tut und kleine Codeänderungen, die das Verhalten eigentlich nicht 
beeinflussen sollten, entscheiden, ob mein Programm läuft oder nicht.

Mein Code gibt eigentlich in einer Endlosschleife die Daten von dem 
Controller schön formatiert über den UART aus, was auch soweit ganz gut 
geklappt hat. Jetzt habe ich zwei Versionen von meinem Code: Die eine 
funktioniert problemlos und die andere gibt nur einen Haufen "x" aus, 
was bedeutet, dass main() immer wieder von vorne ausgeführt wird. Der 
einzige Unterschied zwischen den Programmen ist eine Funktion 
("dumme_funktion()"), die nicht einmal aufgerufen wird.

Hier ist der Code:

main.c, die tut und Daten ausspuckt:
http://pastebin.com/f52c6555e

main.c, die nur laufend "x" ausgibt:
http://pastebin.com/f44a72ced

serial.h:
pastebin.com/f3270ee9b

serial.c:
pastebin.com/f4601c083

CMakeLists.txt (statt Makefile):
pastebin.com/f5ca0a7db

Hier sind noch die zwei disassemblierten Programme, falls das etwas 
hilft:
funktionierende Version: http://pastebin.com/f2eea5073
nicht funktionierende Version: http://pastebin.com/f2ab22dec

Ich hätte gerne ein Minimalbeispiel gepostet, aber bei der Art von 
Problemen ist das etwas schwierig. ;)

Wenn mir jemand dabei helfen könnte, wäre ich euch unendlich dankbar. 
Ich stehe grade kurz vor dem Verrücktwerden... Ach ja: Den Atmega8 habe 
ich natürlich schon ausgetauscht, mit genau dem gleichen Ergebnis. Daran 
kann es also nicht liegen.

Vielen Dank!
Daniel

von Uwe .. (uwegw)


Lesenswert?

Wie viel RAM ist belegt? Die vielen Texte belegen grob geschätzt schon 
deutlich mehr als 600 Bytes. Irgendwann wird es eng, wenn noch die 
sonstigen Variablen und der Stack dazukommen...

von Benedikt K. (benedikt)


Lesenswert?

Stack Überlauf da der RAM durch die ganzen Strings voll ist?

von Roland Praml (Gast)


Lesenswert?


von Daniel (Gast)


Lesenswert?

Danke! duck

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.