Hi,
Verständnisfrage:
Angenommen ich habe in einem Programm 10 Funktionen, die aus dem main()
sequenziell aufgerufen werden. Z.B. so:
1 | foo0();
|
2 | foo1();
|
3 | foo2();
|
4 | foo3();
|
5 | ...
|
6 | foo8();
|
7 | foo9();
|
Dann wird doch der SRAM-Speicher während dem Aufruf einer Funktion
belegt und an deren Ende wieder frei gegeben. Das ist doch richtig ?
Wie ist das nun mit Strings die innerhalb dieser 10 Funktionen benutzt
werden wie z.B. ein Aufruf von uart_puttext("\n\rWert eingeben:"); in
der Funktion foo1()
Werden diese Strings aus diesen Funktionen am Programmstart aus dem PROM
in das SRAM kopiert oder wie funktioniert das ?
Oder ist es nicht viel eher so, dass Strings in Funktionen das SRAM nur
zur Laufzeit der Funktion belegen (Kommen die auf den "Stack"?), d.h.
insbesondere wird das SRAM danach wieder frei gegeben?
Wenn diese Vermutung stimmt, könnte man mit 20Byte-SRAM für Strings in
obigem Beispiel 200 Zeichen darstellen .... ?
Wie ist das nun ?
Gruß
Andreas