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) ?
1 | uint16_t StackPtr = SP; |
oder wenn du gleich einen "richtigen" Pointer haben möchtest:
1 | uint8_t *StackPtr = (uint8_t*)SP; |
1 | uint16_t *StackPtr = &SP; |
so oder - wie gesagt, ich brauch für das ausgeben die ADRESSE des SP; nicht den SP selber.
>die ADRESSE des SP;
Die Adresse des SP, oder die Adresse, wo der SP aktuelle hinzeigt?
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 ...
Re To wrote:
>
1 | 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.
Wer es gern portabel zwischen verschiedenen GCCs hat: __builtin_frame_address(0)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.