mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ARM Instruction Set


Autor: Dietmar (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nach Wechsel des alten nicht mehr weiter geführten Keil-Compilers CARM
zum bei Keil nun aktuellen und von ARM übernommenen RealView-Compiler
für ARM7, hier Philips LPC2129, entdeckte ich in der Startup.s (für
RealView) folgenden Befehl, zusätzlich zu den alten Startup-Dateien, am
Ende, 2 Zeilen vor dem Sprung nach main():

    SUB     SL, SP, #USR_Stack_Size

SL ist sicher ein Register und mir unbekannt, habe aber dazu keine
Beschreibung gefunden, keine PDF, weder bei Keil noch bei ARM.

Bevor ich die Frage bei Keil poste:

Wer kann mir da mal helfen?

Gruß

Dietmar

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
SL = Stack Limit. Synonym für R10. ARM Procedure Calling Standard.

Autor: Dietmar (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke A.K. !

Wo (in welchem PDF, ARM, Keil) ist der Begriff SL dokumentiert?

R10 hat in meiner Software bisher nichts ausgemacht oder gestört.

Üblerweise, ist es mir ganz nebenbei mal zufällig aufgefallen, als ich
die alte Keil Startup mit der neueren RealView Startup verglich.

R10 wird meines Wissens im Folgenden auch nicht weiter verwendet.

Aber, was bedeutet das letztendlich jetzt für mich?

Gruß

Dietmar

Autor: Dietmar (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Andererseits, bevor dieser Befehl ausgeführt wird:

SUB     SL, SP, #USR_Stack_Size

müßte R10 doch schon mal mit einem definierten Wert beschrieben worden
sein, sonst macht das keinen Sinn?

Gruß

Dietmar

Autor: Dietmar (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
müßte R10 doch schon mal mit einem definierten Wert beschrieben worden
sein....

Sorry, war jetzt ein Irrtum von mir, da von bekanntem SP der
USR_Stack_Size subtrahiert und in SL gespeichert wird, unabhängig wie
der Wert in SL vorher war.

Gruß

Dietmar

Autor: Dominic R. (dominic)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es gibt eine ganze Menge an calling-conventions, die auch die Bennenung
der Register festlegen. Einen Überblick gibt z.B.

http://www.heyrick.co.uk/assembler/apcsintro.html

Der (aktuelle?) APCS wird hier beschrieben,
http://www.arm.com/miscPDFs/8031.pdf, jedoch geht das PDF nicht auf die
Benennung der Register ein.

Viel wichtiger als die Bennenung der Register ist aber die
Vereinbarung, wer sich um das Sichern welcher Register kümmern muss,
und welche Behandlung des Stacks erwartet wird, also auch von r10. Das
sollte in dem PDF beschrieben werden.

Gruss,

Dominic

Autor: Dietmar (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Um was man sich doch noch alles kümmern muß, haben Compilerhersteller
und neuere Schriften über Softwareentwicklung doch mal in Aussicht
gestellt, daß man sich immer mehr nur noch auf den reinen C-Sourcecode
konzentrieren kann...

Pustekuchen. Wunschdenken.

Das war früher eher einfacher, nicht umgekehrt.

Und das alles wegen ein paar Erweiterungen in der Startup-Datei.

@Dominic:

Begriffe wie APCS muß man für ARM Assembler natürlich kennen, keine
Frage.

R10 wird tatsächlich im weiteren Verlauf der Software nie mehr
verwendet, da im USER Mode. Möglicherweise dient es einer anderen
Anwendung mit der selben Startup.s.

Danke

Dietmar

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.