'unary *'

Gast #366869
Lesenswert?
• ▲
▼
Eine dumme Frage eines absoluten GNU Neulings.

Was bedeutet bitte beim GCC

  error: invalid type argument of 'unary *'

Das kenne ich von meinem bisherigen Compiler nicht. Er compiliert das
ohne zu meckern.

Hier die Zusammenhänge die den Fehler verursachen.
....
 #define PCB_PINSEL0     (*(REG32 (0xE002C000)))
....
 PCB_PINSEL0=0xB0C51505;   // hier wird Fehler gemeldet.

Danke
Gast #366870
Lesenswert?
• ▲
▼
unary operator ist doch ein operator mit einem operand
in dem Fall ist Operand ein Zeiger

int i = 0, * p = &i;
//
*p = 1;  // hier Operator angewendet

was ich mir in deinem Fall vorstellen kann ist, dass
Compiler es nicht mag wenn du ihm anstelle vom Zeiger
eine Konstante gibst. Und was macht REG32 makro?
Moderator Persönliche Seite #366872
Lesenswert?
• ▲
▼
Müsste eigentlich compilieren.

Schicke das Ganze mal nur durch den Präprozessor: alle normalen
Compileroptionen (insbesondere alle -D, -U und -I-Optionen, die
du sonst auch nimmst), aber statt des -c nimmst du ein -E, und
hinter -o gibst du einen Ausgabedateinamen an, der per Konvention
auf .i (preprocessed C source) enden sollte.

Dann pick mal die Stelle raus und sieh sie dir genau an.  Wenn
du's nicht selbst erkennen kannst, poste die entsprechende
Zeile hier.
Gast #366873
Lesenswert?
• ▲
▼
Habe die Ursache gefunden. Die REG32 Definition war dummerweise
in einem falschen def Zweig und nicht aktiv. Dummer Fehler, aber
es ist mein allererste Projekt mit GNUARM und die Fehlermeldungen
sind mir noch völlig ungeläufig.

Ich bedanke mich bei euch für die Unterstützung.

Grüße

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