Hallo zusammen Ich schaue mir gerade die Speicherauslastung bei dem kleinen Testprogramm an. Fügt man weitere Aufrufe mit neuen Strings hinzu, erhöht sich der Platzbedarf im Programmspeicher. Das ist mir klar. Aber Auch der Platzbedarf im RAM (Data-Speicher) steigt um so viele Zeichen wie man in den Strings verwendet hat. Der Compiler kopiert die Zeichen offenbar erst ins RAM wo sie Platz verbrauchen. Das erscheint mir verschwenderisch, da die Strings ja schon im Programmspeicher stehen. Wie kann man das verhindern?
1 | void writeString(char *data); |
2 | |
3 | int main(void) |
4 | {
|
5 | writeString("Hallo"); |
6 | writeString("hier"); |
7 | writeString("Tasten"); |
8 | }
|
9 | |
10 | |
11 | void writeString(char *data) |
12 | {
|
13 | char m=0; |
14 | |
15 | while(*data != '\0') |
16 | {
|
17 | m = *data; //Hier könnte der Aufruf |
18 | data++; //zum Schreiben in ein LCD stehen |
19 | }
|
20 | }
|