Hi! Ich bastel immer noch am Webserver+Webcam Code rum. Heute habe ich den Buffer der Kamera wegfallen lassen und schreibe die Daten direkt in den Ethernetbuffer. Funktioniert auch soweit. Dann habe ich meinen ungenutzten (!) Kamerabuffer gelöscht. Also nur in der main.c unsigned char webcam_buffer[256]; auskommentiert. Wird garantiert nirgend benutzt! Nun bleibt das Programm undefiniert stehen... Bzw hängt irgendwo in einem loop. Jemand ne Idee wo/wie ich nach dem Bug suchen kann ?
ganz vergessen: uC ist atmega32 und cc ist avrgcc
Bist Du sicher, dass nicht irgend ein anderes Datenfeld über dessen Grenzen hinaus benutzt wird, so dass der Bereich von webcam_buffer[256] überschrieben wird (bzw. jetzt, wo webcam_buffer[256] nicht mehr existiert, vielleicht irgend etwas wichtigeres)? Gruß, Michael
Du solltest Dir mal die anderen Variablen ansehen, die "rund um" die von Dir auskommentierte Zeile deklariert werden. Und den Zugriff auf diese Variablen, wie MSE auch andeutete.
Hi! Danke euch beiden! Ich habs gefunden :-X Als ich in der main.sym geguckt habe sah alles gut aus. Wenn das ethernetpaket zu gross wurde ging aufeinmal printf nicht mehr. (800 byte buffer, wird nur bei aufruf reserviert) Die grenze lag bei 293 Byte... Hab dann nochmal genau in die main.sym geguckt und sah dass noch genau 293 byte für den buffer zur Verfügung standen... Und da war der schuldige: ein zum testen deklariertes volatile char bbb[800] :-X Habs vergessen rauszunehmen ::) Wurde nirgends benutzt, ist nun weg und das Problem ist gelöst :D :)
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.