AVR Studio 5 Stackgröße einstellen

Gast #2512281
Hallo,

ich habe vom freien 4kb IAR Compiler auf das AVR Studio 5 mit dem 
AVR-GCC gewechselt. Habe da allerdings Probleme mit dem Stack. Ich 
steuere ein Display mit einer eigenen putchar Routine an und die 
Stackgröße reicht nicht aus. Jetzt weiß ich allerdings nicht wo ich die 
Stackgröße einstellen kann.
Kann mir da evtl. jemand helfen. Ich benutze kein Makefile sonder die 
Projekteinstellen vom Studio.
Michael schrieb:
> Jetzt weiß ich allerdings nicht wo ich die
> Stackgröße einstellen kann.

Man kann die Stackgröße nicht einstellen. Die Anordnung der Daten im RAM 
ist so gewählt, dass der Stack immer automatisch die maximal mögliche 
Größe hat. Wenn dir der Stack also überläuft, dann braucht dein Programm 
insgesamt zu viel RAM. Wie merkst du denn überhaupt, dass der Stack zu 
klein ist?
Gast
Ich merke es dadurch, dass meine putchar Funktion den richtigen 
Buchstaben übergeben bekommt, auf dem Display aber nur kryptische 
Zeichen dargestellt werden. Der Zeichensatz für das Display liegt im 
Flashspeicher. Früher hatte ich bei dem IAR Compiler immer ähnliche 
Probleme. Das lies sich immer mit der Größe des Stacks beheben. Sram für 
eigene Variablen benutze ich eigentlich kaum(20 Byte)
Gast
Der Zeichensatz wurde so abgelegt:

unsigned char PROGMEM Font6x8[] = {
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // "(space)"
  0x00, 0x00, 0x06, 0x5F, 0x06, 0x00, // "!"
  0x00, 0x07, 0x03, 0x00, 0x07, 0x03, // """
  0x00, 0x24, 0x7E, 0x24, 0x7E, 0x24, // "#"
  0x00, 0x24, 0x2B, 0x6A, 0x12, 0x00, // "$"
        usw. ...
Gast
Hallo,

beim Aufruf wird auf das richtige Zeichen übergeben, also ch ist 
richtig.
Kann es sein das bei "unsigned char *fontptr" noch etwas hinzugefügt 
werden muss?

int lcd_putchar(char ch, FILE *stream)
{

  unsigned char *fontptr;
  unsigned char x;

  fontptr = Font6x8;

  if((ch >= 32) && (ch < 126))
  {
    fontptr = fontptr+6*(ch-32);

    for(x = 0; x < 6; x++)
    {
     SendData(*fontptr++);
    }
  }
  return ch;
}

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 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.