Hallo,
ich bin gerade an der Portierung von uIP auf einen LPC2387 und stehe vor 
einem Problem.
uIP kopiert empfangene Daten in einem Array uint8_t uip_buf[LEN]. In der 
main-Schleife wird dann folgendermaßen auf dieses Array zugegriffen, um 
die Art des empfangenen Pakets zu bestimmen:
| 1 | if((uint16_t)BUF->type == htons(UIP_ETHTYPE_IP))
 | 
wobei BUF so definiert ist:
| 1 | #define BUF ((struct uip_eth_hdr *)&uip_buf[0])
 | 
Schließlich noch uip_eth_hdr:
| 1 | struct uip_eth_hdr {
 | 
| 2 |   struct uip_eth_addr dest;
 | 
| 3 |   struct uip_eth_addr src;
 | 
| 4 |   u16_t type;
 | 
| 5 | };
 | 
uip_eth_addr sind jeweils 6 uint6_t Werte für die MAC-Adressen.
Wenn im uip_buf folgendes enthalten ist:
| 1 | 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
 | 
| 2 | 0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,
 | 
| 3 | 0x08,0x06
 | 
Dann gehe ich davon aus, dass BUF->type mir 0x0806 liefert. Das tut es 
aber nicht, BUF->type gibt mir nur 0x08 zurück, das zweite byte wird 
anscheinend nicht gelesen.
Kommt jemand dieses Problem bekannt vor?
Vielen Dank,
Laurenz