mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Stack - AVRstudio - RAMend


Autor: Burt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo!

Hab versucht ein kleines testprog zu schreiben um die Sache mit dem
Stack richtig zu verstehen!
Aber alleine schon die 16-Bit addresse macht mir zu schaffen....

hab wie im Tutorial die befehle   ldi tempvar, low(ramend).....
benutzt. wenn der simulator die stack-initialisierung durchgelaufen ist
steht im StackPointer 0x10ff = 4351. Im DB steht aber dass der ram bei
4096 endet???

... und außerdem zeigt der Stack Monitor im Simulator während des
gesamten Prog. ablauf    Stack monitor disabled....

es gab schonmal nen thread
(http://www.mikrocontroller.net/forum/read-1-248885.html#new)
aber ohne ergebnis!

Danke, Burt

Autor: Jadeclaw Dinosaur (jadeclaw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Welcher Controllertyp?
für den ATMega8 muss das so aussehen:
 RESET: ldi r16,high(RAMEND); Main program start
 out SPH,r16 ; Set Stack Pointer to top of RAM
 ldi r16,low(RAMEND)
 out SPL,r16

Nach der Initialisierung steht der Stack bei 0x045F (ATMega8)
Bei grösseren Controllern entsprechend höher.
Zu bemerken ist, dass das Highbyte zuerst geladen wird.
Ausserdem ist der Simulator im AVRStudio nicht ganz frei von
Einschränkungen. (Controllerabhängig)

Gruss
Jadeclaw.

Autor: Burt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
danke für die schnelle antwort....

Den typ sollte ich natürlich angeben.....
Ich arbeite mit dem ATmega128 und der hat eben ein 4k ram....
woher kommt der wert? ist ja nichtmal auf 8er basis??!!

Danke, Burt

Autor: Jadeclaw Dinosaur (jadeclaw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Wert ist immer etwas höher als die SRAM-Angabe in den technischen
Daten, da der IO-Bereich noch dazu kommt.
Wenn wir uns mal die MemoryMap auf Seite 18 des Datenblatss ansehen
(Memory Configuration A), dann sehen wir, dass das SRAM praktisch
hintendranhängt.
Und da sehen wir auch, das 0x10FF der korrekte Endwert ist.
Dieses Hintendranhängen des SRAM ist übrigens bei allen AVR mit Ram
so.
Achja, und daran denken, die ATMega103-Fuse auf 1 setzen, sonst fehlt
dem Teil einige Funktionalität.
Da RamEnd im .def-File fix eingetragen ist, gibt es bei gesetzter
103er-Fuse Probleme. (Seite 289/Table 117).

Gruss
Jadeclaw.

Autor: Burt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
.....  :-\   .... da sollte man selber drauf kommen.... hab halt erst
mal auf der ersten seite des DB gelesen 4kByte internen sram und im
AVRstudio wird unter info für das sram ebenfalls 4096 Byte
angegeben..... peinlich

Die Atmega128 "komische sachen" liste hab ich schon kennengelernt
sonnst würde ich hier sitzen und fragen warum meine ISP schaltung nicht
funktioniert (MOSI und MISO ist nicht gleich MOSI und MISO :-))

warum aber mein stack-monitor disabled ist kannste mir nicht zufällig
sagen? im simulator wird das erste call korrekt ausgeführt und es wird
auch an die richtige adresse zurückgesprungen. aber trotzdem ist der
stack monitor disabled!?

Danke für die bemühungen Jadeclaw

Burt

Autor: Hartmut Gröger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Soweit ich mich erinnern kann funktioniert der Stackmonitor nur bei
bestimmten Emulatoren (JTEG) und nicht im Simulator.

MfG HG

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.