PSTR und SRAM-Speicher

OP #1419879
Servus Leute!

Hänge grad an einem kleinen Projekt wo mir Dir SRAM wieder mal ausgehen 
zu scheint, wohl wegen vieler Text-Meldungen u. Ä.

Hier im Forum habe ich gelsen, dass man mit avr-size main.out den 
benutzen Speicher zusammen zählt (.text + .bs +.data). Bei mir kommen da 
allerdings über 5KB zusammen obwohl der ATMEGA32 nur 2K SPeicher hat. 
Kann also irgendwie nicht sein? Hat jemand eine bessere Idee?

Jetzt möchte ich außerdem mit PSTR() einen Großteil der 
(String-)Meldungen in den Flash auslagern.
Die meisten Meldungen sehen aber aus wie USART_TransmitStr("depp."); 
Dazu will ich mir eine USART_TransmitStr_P(PSTR("depp.")); schreiben:

void USART_TransmitStr_P(PGM_P flashStr) _ATTR_CONST_;
void USART_TransmitStr_P(PGM_P flashStr)
{
  strcpy_P(buf , flashStr);
  USART_TransmitStr(buf);
}

Dazu hab ich einen Vorschlag aus dem Forum verwendet. Der Compiler hat 
damit kein Problem, nur sind alle USART_TransmitStr_P()-Ausgaben nun 
leer. Außerdem kommt der µC jetzt besonders aus dem Tritt.

Woran liegts? So schwer kann das doch nicht sein.

Nachdem ich so sämtliche Meldungen bearbeitet habe, hab ich außerdem 
bemerkt dass er nun weniger auf den Flash schreibt (lt. avrdude). Wie 
kann das sein? Eigentlich müsste er doch mehr schreiben. Dafür ergibt 
die Summer aus avr-size nun fast 1KB weniger?

Kann's mir jemand erklären? Oder ist es einfach schon zu spät?

Viele Grüße,

  Sebi

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.