Zitat Zitat von Kampi Beitrag anzeigen
Meine Vermutung ist jetzt das die Zahl "Low(RAMEND)" quasi die letzte Zelle des Flashspeichers ist, da die erste Adresse des Stacks laut Datenblatt ja die letzte Adresse des Speichers ist und die zweite Adresse des Stacks die vorletzte Adresse des Speichers usw.
Stimmt das so oder hab ich einen Fehler in meiner Überlegung?
Fast...

RAMEND ist nicht das Ende des Flash-Speichers, sondern das Ende des RAMs. Sonst hieße es ja FLASHEND. Flash-Speicher und RAM sind unterschiedliche Speicher, nicht durcheinanderwerfen.
Als Stack wird das RAM verwendet, und zwar beginnend mit dem letzten Byte. Am Anfang des RAMs sind die Register gemappt, danach I/O-Zellen, erst dann kommt das "echte" RAM. Jedenfalls, wenn ich das Datenblatt richtig verstanden habe...

Beim Tiny13 ist low(RAMEND) übrigens gleichbedeutend mit RAMEND, weil die Zahl RAMEND kleiner als 256 ist. Trotzdem ist es üblich, low() zu benutzen, weil diese Form bei größerem RAM notwendig ist (nebst high(RAMEND), z.B. beim ATtiny85) - man gewöhnt sich gleich dran.