Schaut ruhig mal auf meiner Homepage vorbei:
http://kampis-elektroecke.de
Oder folge mir auf Google+:
Daniel Kampert
Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.
Gruß
Daniel
Ok dann nächste Frage
Wenn man sich auf Seite 11 das Register zum Stackpointer anguckt sieht man ganz unten auf der Seite (4.5.1) das SPL oder Stack Pointer Low Register.
Dort steht, dass das Register als Initial Value 1001 1111 (was 9F bzw. 159 entspricht) hat.
Wenn man sich dann in dem datenblatt auf Seite 16 die Memory Map anschaut, sieht man, dass das letzte Feld des RAMs bei 9F ist.
Warum macht man sich dann die Mühe und lädt den Stackpointer mit einem Wert den er eh schon beim "einschalten" hat
Oder verstehe ich den Begriff "Initial Value" falsch?
Schaut ruhig mal auf meiner Homepage vorbei:
http://kampis-elektroecke.de
Oder folge mir auf Google+:
Daniel Kampert
Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.
Gruß
Daniel
Eine für mich plausible Erklärung wäre Sicherheit. In größeren Anwendungen stelle ich meist auch beim Eintritt in das Hauptprogramm sicher, dass der Watchdog und die Interrupts deaktiviert sind. Also einfach nur sicherstellen, dass die Voraussetzungen für das Programm erfüllt sind.
Hast du mal in ein Datenblatt eines älteren Controllers geschaut? Kann ja auch gut sein, dass es sich aus Erfahrung eingebürgert hat. Soweit ich mich erinnere werden die meisten Register mit 0x00 initialisiert, was das Laden des Stackpointers auch erklären würden.
Siehe ATmega8 Datenblatt Initialwert für den Stack ist 0x00 und die Adresse ist 0x0060.
Geändert von ePyx (15.03.2012 um 08:24 Uhr)
Grüße,
Daniel
Hab ich auch schon vermutet, dass es wahrscheinlich einfach nur dafür da ist klar deffinierte Zustände zu bekommen.
Datenblätter von älteren Controllern hab ich mir noch nicht angeschaut. Die ganzen Fragen sind mir erst in den Sinn gekommen als ich das Datenblatt vom Tiny gelesen habe (ist nicht ganz so lang wie das von den Megas)
Und ja die anderen Register werden alle mit 0x00 initialisiert.
Schaut ruhig mal auf meiner Homepage vorbei:
http://kampis-elektroecke.de
Oder folge mir auf Google+:
Daniel Kampert
Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.
Gruß
Daniel
Beim Einschalten oder HW-Reset ist das SP-Laden wohl nicht notwendig. Aber wenn im Programm ein Sprung auf RESET durchgeführt wird, steht der SP ja gerade irgendwo, also daher.
Und ausserdem, auch ein Compiler ist nur ein Mensch, der hat ein allgemeines "initial sequenz"-Muster, das er nicht je nach Prozessor ändert.
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
>>Als pauschale Aussage falsch<<
*grmpf*
reden wir hier vom Tiny13 oder nicht ?
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
Lesezeichen