Hallo Board.. ich bekomme ein Warning nicht weg.. in der IO Struktur gibt es einen Void Pointer struct st_exdmac0 { void *EDMSAR; }; dieser wird befüllt mit der Startadresse eines ExDMA Transfers: unsigned short *LCDdataPTR = (unsigned short*)0x06000002UL; EXDMAC0.EDMDAR = (unsigned long) LCDdataPTR; // set the source address es funktioniert zwar, dh im EDMSAR steht 0x06000002UL jedoch will der KPIT Gnu Compiler noch einen Cast von mir und ich komme nicht dahinter: warning: assignment makes pointer from integer without a cast kann mir jemand helfen? lg Mike
:
Verschoben durch Admin
EXDMAC0.EDMDAR = (unsigned long) LCDdataPTR; --> EXDMAC0.EDMDAR = LCDdataPTR; An einen void-pointer kann man eigentlich jeden anderen Pointer-Typ zuweisen, du castest aber erst auf eine vorzeichenlose Ganzzahl (Warum eigentlich?).
Wenn überhaupt musst du auch auf (unsigned long*) casten und nicht auf (unsigned long). An sonsten wandelst du deinen Pointer erst in eine Ganzzahl um und danach durch die Zuweisung auf einen (void*) wieder in einen Pointer. Über letzteres beschwert sich der Compiler dann auch zurecht, weil das (außer in deinem Spezialfall) meist Schwachsinn ist. Und wie bereits von test gesagt, auf einen (void*) kannst du eigentlich alle anderen Pointer direkt zuweisen.
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.