moin C-Freaks, ich blicke nicht mehr durch. Für eine Anwendung auf einem RX Controller von RENESAS gibt es eine RENESAS-API, die ich mit dem RENESAS Compiler auch problemlos und fehlerlos kompilieren kann. Da jedoch der Compiler nur begrenzt verfügbar ist (Begrenzung auf 64k) habe ich den GNU-Compiler verwendet und dort tritt mir dann beim Compilieren der obigen API an dieser Stelle: " /* A pointer to the CAN peripheral registers memory map structure. */ typedef volatile struct st_can __evenaccess * can_st_ptr; " folgende Fehlermeldung auf: " error: expected '=', ',', ';', 'asm' or '__attribute__' before '*' token " Kann mir jemand erklären, was beim "tydef..." dort vor sich geht? Ich verstehe es so, dass die Struktur von "st_can" auf "__evenaccess" kopiert wird, oder ist das auch schon falsch gedacht? Und was passiert dann mit "__evenaccess" im Bereich der Pointerzuweisung? Soweit ich weiß, hält sich GNU ziemlich an den ANSI Standard - wurde der hier von RENESAS vernachlässigt? Für Erklärungen, die auch ich verstehen kann, wäre ich sehr dankbar. Rudi
Rudi S. schrieb: > Kann mir jemand erklären, was beim "tydef..." dort vor sich geht? Ich > verstehe es so, dass die Struktur von "st_can" auf "__evenaccess" > kopiert wird, oder ist das auch schon falsch gedacht? Ja. Der neu angelegte Typ heißt "can_st_ptr" und ist ein Zeiger auf ein "volatile struct st_can __evenaccess". Der Knackpunkt ist das __evenaccess darin. Das stellt wohl eine zusätzliche Eigenschaft der Struktur (struct st_can) dar. Bring in Erfahrung, was genau das bedeutet (der Name lässt es allerdings schon erahnen), und dann musst du das in was entsprechendes für den GCC überführen. Oder es stellt sich raus, dass du es für den GCC gar nicht brauchst.
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.