www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Nach Sprung in Funktion gehen Übergabewerte von Parametern verloren


Autor: Samuel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
Ich habe das Problem dass bei einer Funktion nach dem Einsprung der 
Inhalt von Paramtern verloren geht, bzw. auf Null gesetzt wird. Ich 
programmiere mit KEIL Entwicklungsumgebung auf ADuC70xx mit ARM7 kern.
Ich habe mir den zugehörigen Assemblercode einmal angeschaut, und 
festgestellt, dass beim Übergang von folgenden beiden Zeilen der Inhalt 
von Parametern verloren geht:

STMDB     R13!,{R0-R11,R14}
SUB       R13,R13,#0x0000006C

R13 ist beim ARM7 das Stackpointer register. Also ich interpretiere die 
erste Zeile so, dass R0 bis R11 auf den Stack gerettet wird.
Wieso wird dann anschließend das Stackpointerregister verändert?
Was ist das Problem dass die Inhalte der Parameter verloren gehen?
Gruß
Samuel

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der SUB Befehl schafft Platz für lokale Daten auf dem Stack. Zu den 
Parametern lässt sich mangels Info nichts sagen. Es wäre immerhin 
wichtig, ob die auf dem Stack oder in Registern übergeben wurden, und ob 
sich Deklaration und Implementierung der Funktion möglicherweise 
unterscheiden.

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.