tiny84 mehr als 4 kb Code in Atmel Studio 6

Gast #2866036
Lesenswert?

Hallo, ich habe eine Frage, wozu ich nicht wirklich eine Lösung finde. 
Vielleicht kann mir da ja mal jemand auf die Sprünge helfen.

Ich habe im Atmel Studio6 ein C Projekt für einen Tiny84 erstellt.
In zwei Fällen zeigt der Tiny ein komisches Verhalten. Zum einen wenn 
ich mehr als 256 Byte Data memory verwende und zum anderen wenn ich über 
4 kb Program memory verwende.
Im ersten Fall fängt er wieder von vorne an zu lesen. Schein irgendwie 
eine 8 Bit Grenze zu sein.
Im zweiten Fall macht er nur noch wirres Zeug.

Muss ich da etwas im Compiler konfigurieren, um zumindest eine der 
Grenzen zu übergehen?

Danke und Gruß
John
#2866732
Lesenswert?

Konfigurieren musst und kannst du nichts.

Beide Symptome deuten auf einen Stack-Overflow hin. Die nach dem 
Compilieren angezeigte SRAM-Auslastung berücksichtigt nur die statischen 
DAten, alles, was lokal auf dem Stack (oder gar auf dem heap) angelegt 
wird, kommt noch hinzu. Und irgendwann ist der Speicher halt voll...

Oliver
Gast #2867417
Lesenswert?

Danke für die Antworten. Das mit dem Stacküberlauf klingt plausibel und 
scheint es auch zu sein. Irgendwie trat dieses Verhalten genau beim 
Sprung von 3900 auf 4150 Bytes auf. Das sah nach einer 4 kb Grenze aus. 
Aber ich habe mal ein wenig rumgebastelt und ich kann dieses Verhalten 
auch schon bei 3200 Byte erzeugen. Beim gegentesten mit einem Mega32 ist 
das Problem auch verschwunden.
Da muss ich wohl noch etwas umbauen...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren