Moin moin..
Wie kann ich verhindern (bei STM32F4 + Eclipse[JUNO] + Yagarto) das mir
bei der Optimierung Os die Zeilen
1 | for (unsigned int i=0; i<length; i++)
|
2 | {
|
3 | *(unsigned char *)&raus[i] = Funktion(parameter);
|
4 |
|
5 | }
|
meinen Code um gute 20K wachsen lässt????
während
1 | for (unsigned int i=0; i<length; i++)
|
2 | {
|
3 | *(unsigned char *)&raus[ 0 ] = Funktion(parameter);
|
4 |
|
5 | }
|
20K kleiner ist.
Lediglich die Änderung von raus[i] zu raus[0] spart 20K....ich brauche
aber raus[i]. Der Funktionskopf sieht so aus:
1 | unsigned short Funktionskopf(unsigned int parameter, char *raus, unsigned int length)
|
i und length waren vorher vom Typ unsigned char. Änderungen auf int
brachten Teilerfolge beim Herumspielen mit den Optimierungsstufen.
Der Linker bindet mir ein Haufen von Libfunktionen ein z.B. svfprintf,
welche ich nie benutze bzw. im gesamten Quelltext nicht enthalten sind.
Änderungen an den Optimierungssettings waren nicht sehr erfolgreich.
Kann ich dem Linker sagen, dass er genau diese svfprintf weglassen
soll??