PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Stack beim ATtiny15



SiDe
24.03.2007, 18:58
Hallo Ihr da,

ich arbeite mich gerade in die µCs von ATMEL (wie spricht man das überhaupt?) ein. Bis jetzt habe ich nur par kleinere Tests mit dem ATTiny2313 gemacht.

Heute nun wollte ich einen ATtiny15 programmieren. Irgendwie verstehe ich nicht, wie ich bei dem Typ den Stack initialisiere.
Das er einen hat, steht im Datenblatt. Wie er initialisiert wird, das finde ich aber nirgends.

Ein RET springt somit wieder zum Programmanfang und kehrt nicht zum RCall zurück. (Logisch eigentlich) Da ich der englischen Sprache eher wenig mächtig bin, stehe ich ganz schön auf dem Schlauch.

Könnte mich bitte mal jemand aufklären?

Danke!!

linux_80
24.03.2007, 19:16
Hallo,

der Tiny15L hat ja kein SRAM und deshalb auch keinen Stack wie man das von den anderen AVR her kennt. Es gibt nur 3 Zeiger, die die letzten 3 Sprünge aus RCall oder eines IRQ merkt. Heißt deshalb auch Hardwarestack, weil man sonst damit nix anfgangen kann.
Zum Programmanfang sollte nach dem RET trotzdem nicht gesprungen werden, falls es nicht mehr als 3 RCalls verschachtelt waren.

Steht auf S.9 im DB

uwegw
24.03.2007, 19:25
Der tiny15 hat kein RAM, und daher auch kenen herkömmlichen Stack im RAM mit Stackpointer etc, wie bei AVRS mit RAM. Er hat stattdessen einen "Hardware Stack", der allerdings nur drei Rücksprungadressen aufnehmen kann. Siehe Datenblatt Seite 9. Von einer Initalisierung steht im ganzen Datenblatt nichts. Müsste eigentlich automatisch gehen. Bei den AVRs mit RAM muss man ja auch eigentlich nur manuell initalisieren, damit man den Beginn des Stacks selbst festlegen kann.

SiDe
24.03.2007, 19:30
Danke für die Antworten. Unter "select Platform and Device" war noch der ATTiny2313 eingestellt. Jetzt funktioniert alles.

Ciao SiDe