www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik PSTR und SRAM-Speicher


Autor: Sebastian B. (sebi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.