Feste Adressierung C30 Compiler

Gast #1137607
Lesenswert?

Hallo,

da es hier wahrscheinlich am Besten reinpasst schildere ich euch mal 
meine Frage:

Im muss eine feste Adressierung meiner RAM-Variablen vornehmen (aus 
Kompatibilitätsgründen)

das sieht dann ungefähr so aus:
1
#define UCHAR     unsigned char
2

3
UCHAR StatusFlag     __attribute__ (address(0x800));//  ;Word der Status-Flag's
4
UCHAR JBStatus      __attribute__ (address(0x801));//  ;Jumper-Status-Flag's
5
UCHAR Stoerung       __attribute__ (address(0x802));//  ;enthaelt Stoerungs-Ursache

Meine Frage ist nun, sollte man es so machen? Oder ist die Compiler 
unabhängige Variante besser?
1
#define StatusFlag(* (unsigned char *)0x800)

Meine Frage zielt darauf ab:
Wenn man ein #define macht, dann kann der Compiler die Variable ja nicht 
richtig verwalten, da er ja eigentlich nur einen Bezeichner für eine 
RAM-Adresse erstellt, richtig?

In MPLAB kann man ja ein Watch Fenster nutzen, welches aber anscheinend 
dann nur mit Variante 1 geht.

Was haltet ihr für besser/sinvoller?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren