C30 Compiler Bitfeld mit fester Adressierung

Gast #1137359
Hallo,

im Thread vorher wurde mir erklärt wie ich mit dem C30 C-Compiler(16Bit 
PIC24F) ein Bitfeld deklariere.

Jetzt habe ich eine weitere Problematik, bei der ihr mir hoffentlich 
helfen könnt.

Es wird in meinem Programm eine feste Adressierung benötigt,
deswegen gehe ich wie folgt vor:
1
UWORD eineVariable __attribute__ ((address(0x800))); //auf Adresse 800hex

wie kann ich jetzt ein Bitfeld festadressieren?

habe folgendes Probiert, das hat der Compiler aber abgewiesen:
1
struct bar {
2
  unsigned char A:1;
3
  unsigned char B:1;
4
  unsigned char C:1;
5
};
6
struct bar y __attribute__ ((address(0x899 ));

Danke euch schonmal im Vorraus!!!

Gruß
CManiac
Gast
Habe nur eine generelle Frage,

da ich mich gerade in die Geschichte mit den Compilerdirektiven von dem 
GCC einarbeite (habe vorher auf 8051 Basis [Keil] programmiert).

Wenn ich das über define mache, dann kann ich aber die Variable nicht 
ins Watchfenster übernehmen, richtig?

Würdest du, es generell mit define Anweisungen machen, oder über die 
__attribute (adress) Anweisung???

Der Nachteil von define wäre wohl, das der Compiler es nicht überwacht, 
da man direkt adressiert, oder?

Danke schonmal vorab :-)

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.