Stacks/Frame dimensionieren

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    Aufgrund technischer Veränderungen ist der Mailverkehr innerhalb des Forums (Private Nachrichten) nur noch eingeschränkt möglich. Die Einschränkung ist notwendig, um zusätzliche Betriebskosten für das Forum zu vermeiden. Näheres zu den Hintergründen im Thread "Aktuelles zum Forum".Wir bitten um Verständnis.

    Hinweis kann nach Kenntnisnahme deaktiviert werden!

    • Beim hwstack wird ein interrupt nicht berücksichtigt, also der Platz, die zum Registersichern beim Aufrufen der isr gebraucht werden. Daher würde ich den einfach um 32 byte vergrößern.

      Bascom 2.08 und dessen code-explorer
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • ist es eigentlich schädlich, wenn man diese Kenngrößen, wie SWStack HWStack und Frame (hoffnungslos) überdimensioniert?
      Ich lese immer, daß die Programmierer hier versuchen, eine Punktlandung hinzubekommen:
      "Das Programm könnte eventuell mit ISR 68 byte HWSTACK brauchen...hm...ui ui ui.., na dann runde ich mal auf 70 auf- mehr aber nicht!"
      Kann man nicht einfach allen Parametern 500 byte spendieren, Ruhe im Karton und viel Spaß damit?
      Also vorausgesetzt man hat die Kapazität noch über und der Controller hat viel mehr flash als benötigt.
    • Wenn reichlich Speicher vorhanden ist, kann man den Stack ohne Schaden sehr großzügig dimensionieren
      Als nächstes kannst Du auch Variablen großzügig dimensionieren. Warum mit Byte abgeben, wenn Word auch nicht mehr Geld kostet?
      Ich denke, zum einen kommt der Optimierungsdrang aus den Zeiten, als Speicher immer extrem knapp war und zum anderen ist es eine Sache der „Sportlichkeit“, nicht zu verschwenderisch zu sein - selbst, wenn man es sich vom Speicherplatz her erlauben könnte. Man kann auch alles mit Lochrasterplatinen machen, statt sich mit Platinenlayout und Ätzen/Ätzen lassen zu beschäftigen.
      Und oft ist der Speicher auch tatsächlich knapper als in Deiner Annahme und dann muss man den Stack tatsächlich optimieren.

      Ich möchte noch auf den Lexikonartikel hinweisen:
      Speicheraufbau
      Nun nimm einmal an, Du hast einen Attiny13 ... da musst Du Dir dann schon Gedanken machen und kannst nicht so großzügig mit den Stackwerten sein.
    • ichbinsmoin schrieb:

      ob man nach Fertigstellung des Programms den restlichen Speicher einfach auf die Stacks verteilen kann- ohne sich dadurch Nachteile einzufangen.
      Wenn du libs verwendest, werden da auch mitunter Variablen angelegt, die man nicht auf Anhieb erkennt. ZB. die 'rainbow.lib', die ja für die Leds etliche bytes braucht. Also ein bisschen überlegen sollte man schon.

      stefanhamburg schrieb:

      Warum mit Byte abgeben, wenn Word auch nicht mehr Geld kostet?
      braucht aber dann mehr Rechenzeit? Auch beim 'dimmen' von Variablen wäre ich nicht so 'großzüging', auch hier ist eine Überlegung über den Wertebereich angebracht.
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • tschoeatsch schrieb:

      braucht aber dann mehr Rechenzeit?
      @tschoeatsch: Du hast meinen Unterton nicht verstanden. Da fehlte wohl ein entspechende Smiley. Ich plädiere natürlich nicht dafür, alles einfach (zu) groß zu dimensionieren.
      Bezüglich der Rechenzeit könnte übrigens der nächste sagen: In den meisten Programmen langweilt sich der Mikrocontroller sowieso die meiste Zeit - also ist es auch nicht nötig, auf Rechenzeit zu achten. Und dann sind wir auch schon fast bei der Diskussion 'warum denn nicht Goto - sieht ja von außen sowieso niemand...'.