Werte Freunde, Nachdem ich nun mein erstes Free-Rtos-Projekt abgeschlossen habe (LPC1768), wollte ich mich mal an Ethernet wagen. Ich benutze den ARM-GCC von Codesourcery mit einem Makefile aus dem Internet. Habe mir also, da ich mich ja mit FreeRtos bereits vertraut gemacht habe, die enthaltenen Demos angeschaut und das Makefile soweit angepasst, dass es größtenteils auch schon alles kompiliert wird. Nun stehe ich jedoch vor einem Problem: in der uip.h sind mehrere Strukturen unterschiedlichen Typs vorhanden, die alle gleich heißen. Verständlicherweise gibt das einen Fehler beim kompilieren. in den Zeilen: -1395 -1440 -1485 -1575 sind strukturen die alle PACK_STRUCT_END heißen.... Als Outpu kommt das hier: In file included from ../../../Ethernet_FreeRtos/Demo/Common/ethernet/uIP/uip-1.0/uip/uip.c:82 :0: ../../../Ethernet_FreeRtos/Demo/Common/ethernet/uIP/uip-1.0/uip/uip.h:14 73:3: error: conflicting types for 'PACK_STRUCT_END' ../../../Ethernet_FreeRtos/Demo/Common/ethernet/uIP/uip-1.0/uip/uip.h:14 29:3: note: previous declaration of 'PACK_STRUCT_END' was here ../../../Ethernet_FreeRtos/Demo/Common/ethernet/uIP/uip-1.0/uip/uip.h:15 13:3: error: conflicting types for 'PACK_STRUCT_END' ../../../Ethernet_FreeRtos/Demo/Common/ethernet/uIP/uip-1.0/uip/uip.h:14 29:3: note: previous declaration of 'PACK_STRUCT_END' was here ../../../Ethernet_FreeRtos/Demo/Common/ethernet/uIP/uip-1.0/uip/uip.h:15 77:3: error: conflicting types for 'PACK_STRUCT_END' ../../../Ethernet_FreeRtos/Demo/Common/ethernet/uIP/uip-1.0/uip/uip.h:14 29:3: note: previous declaration of 'PACK_STRUCT_END' was here Wenn ihr mir da einen Tip geben könntet, wo der Fehler liegt oder was das Problem ist, bin ich euch sehr dankbar. Grüße, Tüftler
Hi, Das "PACK_STRUCT_END" ist ein Define und ist vom Compiler abhängig. Schau mal in deinen anderen Files nach, in einem sollte das definiert sein. Hier mal ein Beispiel von lwIp:
1 | /// Compiler hints for packing lwip's structures
|
2 | #define PACK_STRUCT_FIELD(x) x __attribute__((packed))
|
3 | #define PACK_STRUCT_STRUCT __attribute__((packed))
|
4 | #define PACK_STRUCT_BEGIN
|
5 | #define PACK_STRUCT_END
|
mfg Stephan
Der Kuchen ist vermutlich schon gegessen... Im Beispiel von FreeRTOS wird das mit diesem Compilerschalter geregelt: -DPACK_STRUCT_END=__attribute\(\(packed\)\) Ich hangele mich auch gerade durch den RTOS/uip Code und die mässige UDP Unterstützung und bin daher auf diesen älteren Beitrag gestossen.
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.