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
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.
Du kannst auch in das PDF-File nc30ue.pdf im Kapitel B.7.3 schauen. Wird mit jeder Instalation mitgeliefert. Volker
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.