mikrocontroller.net

Forum: Compiler & IDEs auslesen des der StackpointerPos.


Autor: Re To (toobatch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
tagschön --

möchte die aktuelle StackPointerposition ausgeben ...

dafür brauch ich die adresse! des StackPointers außerdem ist die 
Übertragung byteweise .

adresse des Stackpointers ist dann sicher  "&SP" (winAvr) . oder ?

und der highwert dann (&SP)+1 oder &(SP+1) ?

Autor: Stefan Ernst (sternst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
uint16_t StackPtr = SP;

oder wenn du gleich einen "richtigen" Pointer haben möchtest:

uint8_t *StackPtr = (uint8_t*)SP;

Autor: Re To (toobatch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
uint16_t *StackPtr = &SP; 

so oder - wie gesagt, ich brauch für das ausgeben die ADRESSE des SP; 
nicht den SP selber.

Autor: Matthias Lipinsky (lippy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>die ADRESSE des SP;

Die Adresse des SP, oder die Adresse, wo der SP aktuelle hinzeigt?

Autor: Re To (toobatch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Adresse des SP,  die ausgabe ist so realisiert ---

klappt auch soweit,

nun suche ich nur nochwas wo ich ca.  die ausdehnung des heaps erkennen 
kann.

hier: http://www.nongnu.org/avr-libc/user-manual/malloc.html

heißt die Variable "brkval" ...   aber die geht im prog. nicht ...



bin bei fehlersuche ...    und weiß nicht mehr weiter an was das liegen 
soll das das programm einfach immer nur blödsinn veranstaltet, deswegen 
diese kontrollausgaben ...

Autor: Stefan Ernst (sternst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Re To wrote:
>
uint16_t *StackPtr = &SP; 
>
> so oder - wie gesagt, ich brauch für das ausgeben die ADRESSE des SP;
> nicht den SP selber.

Nein, was du brauchst, ist der Inhalt des Stackpointers. Die Adresse 
des Stackpointers ist konstant und für dich völlig uninteressant.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wer es gern portabel zwischen verschiedenen GCCs hat:
  __builtin_frame_address(0)

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.