Forum: Mikrocontroller und Digitale Elektronik uIP FreeRtos, Problem mit uip.h


von Tueftler (Gast)


Angehängte Dateien:

Lesenswert?

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

von Stephan W. (sir_wedeck)


Lesenswert?

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

von JojoS (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.