Forum: Compiler & IDEs Speicherprobleme - löschen ungenutzes arrays macht Probleme


von Sssssss (Gast)


Lesenswert?

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 ?

von Sssssss (Gast)


Lesenswert?

ganz vergessen:
uC ist atmega32
und
cc ist avrgcc

von MSE (Gast)


Lesenswert?

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

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

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.

von Sssssss (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.