Hallo, wenn ich einen Zeiger in ein Integer umwandeln, bekomme ich eine Fehlermeldung. "Warning [2054] suspicious pointer conversion" in der *.c #pragma romdata eedata_scn=0xf00000 rom unsigned char eedata_TransferFehler[MaxTransferFehler]; #pragma romdata //int x = 42; int adr; // // ---->>>> Zeiger in Integer umwandeln //int* ptr = (unsigned int*)(void*)&eedata_TransferFehler[0]; oder int* ptr = &eedata_TransferFehler[0]; //int* ptr = &x; adr = (int)ptr; bei "int x = 42" in der *.c oder *.h kommt keine Warnmeldung. Die berechnung ist in Ordnung. Gruß Siegfried
schwer zu sagen, weil das offenbar kein Standard-C ist. Oder ist rom ein Makro? Wenn es ein Qualifier ist dann sollte es so gehen:
1 | rom int * ptr = (rom int*) &eedata_TransferFehler[0]; |
Hallo, Danke für die schnelle Info, funktioniert einwandfrei. das ganze kommt davon, das ich folgende Zeilen #pragma romdata eedata_scn=0xf00000 rom unsigned char eedata_TransferFehler[MaxTransferFehler]; #pragma romdata bei einem PIC18F242 nicht in der *.h anlegen konnte, wobei bei einem PIC18F4680 funktioniert. Man hat mir geschrieben, das das in der *.c sei soll. Gruß Siegfried guten Rutsch ins Jahr 2009
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.