avr-gcc wie gehts richtig mit PSTR

#4952047
Lesenswert?

aus
sprintf(s_out_str, "hellxx (%d)-(%d)", MIN_BL, MAX_BL);

sprintf_P(s_out_str, "hellxx (%d)-(%d)", MIN_BL, MAX_BL);
oder
sprintf_P(s_out_str, PSTR("hellxx (%d)-(%d)"), MIN_BL, MAX_BL);
oder
sprintf(s_out_str, PSTR("hellxx (%d)-(%d)"), MIN_BL, MAX_BL);

???
welche Version ist richtig, funktioniert und spart SRAM?

Ich versuche alle Möglichkeiten, mal wird der Code zu groß, mal geht mir 
das SRAM aus
#4952087
Lesenswert?

danke für deine Antwort

gebrachts hats mir leider (noch) nichts

flash
alle mit sprintf
30.690 Bytes (von einem Maximum von 30.720 Bytes)
alle mit sprintf_P
30.904 Bytes (von einem Maximum von 30.720 Bytes)

ich habe ein flash & SRAM Problem nur deswegen vom nano328p auf den 
mighty_mini1284p gehen möchte ich (noch) nicht.
#4952190
Lesenswert?

Also wenn sowohl dein Flash, als auch dein RAM komplett voll sind, dann 
musst du entweder schauen, ob du irgendwelche großen Speicherfresser 
hast, die du ersetzen kannst oder einen größeren µC nehmen. Es hat doch 
keinen Zweck, mit verschiedenen sprintf-Varianten zu jonglieren, in der 
Hoffnung, noch drei Bytes einsparen zu können, damit's passt.
Beitrag #4952221 wurde von einem Moderator gelöscht.
#4952365
Lesenswert?

nun ja ich bin ja schon am aufräumen, das muss reinpassen

ich kann ja noch reichlich an Texten sparen und an Variablen

man fängt halt mal einfach gemütlich an

dann stellt man fest das man weniger Variablen braucht -> schmeisst die 
also raus
dann Texte müssen nicht so ausführlich sein -> gekürzt reicht auch


ich bin auf einem guten Weg.....

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