Forum: Mikrocontroller und Digitale Elektronik SmartFusion Ram Overflow beim Kompilieren


von Plumps (Gast)


Lesenswert?

Hallo allerseits,

ich arbeite seit geraumer Zeit(Anfänger) mit dem SmartFusion Eval Kit 
von Actel. Als Software nutze ich Libero 9.1 (SP5) weil muss so :)

Zur Zeit möchte ich über das Terminal (Win XP) mittels UART einfach nur 
durch Ein- und Ausgaben gewisse Daten berechnen und wieder zurückgeben.
Bei diesen Berechnungen benutze ich einige Strings, ein paar einfache 
mathematische Berechnungen und nur 2!!! Sinusfunktionen.
Das Programm(C) ist eigtl. sehr klein, jedoch bekomme ich nach dem 
Kompilieren immer die Nachricht "region `ram  overflowed by 1520 bytes" 
UND   "file* section `.stack' will not fit in `ram' "
Wobei die 1520 bytes sehr variieren können(200-5000 bytes).

Die schlaue Antwort von der Helpline war ein paar floatvariablen zu 
ändern/entfernen. Das hat etwa 10 Codezeilen geholfen bis der Fehler 
wieder auftrat.

Kennt sich jemand mit dem SF aus und weiss evtl. wo und wie man die 
Speichereinstellungen für den RAM und Stack ändern kann? Oder weiss wer 
was da sonst falsch laufen könnte? Der SF hat 64k Ram 8k Stack 
(Voreinstellung in den Dateien: 
..Softconsole/CMSIS/startup_gcc/debug-in-... .ld), also ist es 
unwahrscheinlich das der mit rund 100 Zeilen Code voll ist. Sind das die 
Dateien zum ändern und wenn ja viel höher gehts doch eh nicht oder?

In Hoffnung auf Hilfe, Grüße von einem Verzweifelten.

von Uwe (Gast)


Lesenswert?

Tja auf einer nicht Fließkomma CPU Fließkomma rechnen ist immer sehr 
Speicherlastig. Benutz halt kein Fließkomma.

von Plumps (Gast)


Lesenswert?

Naja, wenn ein Kollege ein Vielfaches von Floats nutzt und dort dieses 
Problem mit dem Selben Board nicht auftritt, kann es wohl nicht an der 
Anwendung von ein paar floats oder doubles liegen.
Und wie ich schon geschrieben hab, kam die selbe Antwort schon vom 
Support, was mir nicht geholfen hat.

von Plumps (Gast)


Lesenswert?

Keiner ne Ahnung wo man das beim SmartFusion einstellen kann?
Ich hab nun die Sinusfunktionen ausgebaut und durch "lookup"-tabellen 
ersetzt. Das ging ne weile gut, aber nu bin ich wieder 8 bytes überm ram 
und noch lange net fertig.

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.