Hallo zusammen, ich möchte gerne einen Stackoverflow vermeiden. Zudem möchte ich auch nicht zuviel Ram verschenken. Ich weiß die Startadresse und Größe des Stacks. Kann ich dieses Bereich vorinitialisieren (z.B. 0xCAFEAFFE) und nach einiger Zeit (Debugger) diesen Speicherbereich lesen und dann behaupten, der Bereich, der nicht überschreiben wurde ist mein freier Stack-Bereich??? Vielen Dank im voraus! Gruß Ehren
Ehren schrieb: > Hallo zusammen, > > ich möchte gerne einen Stackoverflow vermeiden. Zudem möchte ich auch > nicht zuviel Ram verschenken. Ich weiß die Startadresse und Größe des > Stacks. > Kann ich dieses Bereich vorinitialisieren (z.B. 0xCAFEAFFE) und nach > einiger Zeit (Debugger) diesen Speicherbereich lesen und dann behaupten, > der Bereich, der nicht überschreiben wurde ist mein freier > Stack-Bereich??? Kannst du. Nur musst du sicher sein, dass dein Ermittlungs-Programmlauf so ziemlich der Worst-Case Fall ist. D.h. du überlegst, in welchem Szenario du die tiefsten Funktionsschachtelungstiefen mit der größten Stackbelastung erhalten wirst. Und den testest du dann auf jeden Fall ebenfalls. Wenn es ISR gibt, dann sollten die natürlich auch in deinen Testläufen auftauchen. Im Idealfall genau dann, wenn du die durch Funktionen erzeugte Stackbelastung auf die Spitze getrieben hast.
Karl Heinz schrieb: > Wenn es ISR gibt, dann sollten die natürlich auch in deinen Testläufen > auftauchen. Im Idealfall genau dann, wenn du die durch Funktionen > erzeugte Stackbelastung auf die Spitze getrieben hast. Genau. Besser ist evtl. den Stackbedarf der ISRs, welche gleichzeitig aktiv sein können (nested Interrupts möglich?) einfach extra dazurechnen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.