www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik #pragma - Was passiert da?


Autor: Jörg (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi zusammen,

ich habe in dem Headerfile, in dem Special-Function-Register festgelegt 
werden, viele Zeilen in folgender Form:

#pragma ADDRESS  c0ctlr_addr 0210h  /* CAN0 control register (Low) (6N) 
*/


Jetzt ist die Frage, was die Direktive #pragma bewirkt?


Gruß
Jörg

Autor: Timmo H. (masterfx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Pragma ist eine Preprozssor-Direktive, die den Compiler dazu anweist 
etwas "compilerspezifisches" zu tun. Diese Pragmas sind also je nach 
Compiler und Prozessor anders.
In diesem Fall wird der Compiler wohl dazu angewiesen die 
Speicheradresse 0210h über den namen c0ctlr_addr ansprechbar zu machen 
um die Lesbarkeit im Quellcode zu verbessern. Andere Compiler z.B. für 
AVR lösen dies eher über #defines
Bei Microsoft C++ kann man über Pragmas z.B. auch libs einbinden, was 
bei gcc hingegen nicht geht. Darum sind diese Pragmas zwecks 
Portabilität immer mit Vorsicht genießen und nach Möglichkeit nur 
einsetzen wenn es nicht anders geht.
In deinem Fall ist es aber egal, da es ja nur eine art Namenszuweisung 
ist.

Autor: Jörg (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die super Antwort!

Weiter so!

Autor: Volker Zabe (vza)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du kannst auch in das PDF-File nc30ue.pdf im Kapitel B.7.3 schauen.
Wird mit jeder Instalation mitgeliefert.

Volker

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.