Forum: Compiler & IDEs UIP uip_timedout()


von Netzwerkfan (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,
ich versuche mich gerade am uIP Stack von Adam Dunkel in der Version 
1.0, bzw. dessen Portierung für AVR von:
http://code.google.com/p/avr-uip
Uart Bibliothek ist von Peter Fleury und

Das ganze läuft auf dem AVR-NetIO von Pollin mit einem Atmega644P 
(besser gesagt es sollte darauf laufen).

Die Beispiele mit telnet und dem einfachen Webserver funktionieren und 
nach dem Start wird beim Ping die ersten 1-2x Time Out gemeldet, danach 
funktioniert pingen aber bis zum nächsten Reset einwandfrei.
Das eigentliche Problem liegt beim eigenständigen Aufbau einer 
Verbindung zu einem anderen PC. Nach dem uip_connect(...) wird als 
nächstes das Flag von uip_timout() gesetzt und Wireshark zeigt auch 
keine Packete mit einem Verbindungsversuch an.

Der Compiler (AVR Studio V. 4.18 Build 700, WinAVR 20100110) spuckt 
folgende Fehler/Warnungen aus:
1
../main.c: In function 'main':
2
../main.c:48: warning: integer overflow in expression
3
../main.c:49: warning: integer overflow in expression
4
../main.c:53: warning: missing braces around initializer
5
../main.c:53: warning: (near initialization for 'mac.addr')
6
../psock.c: In function 'psock_send':
7
../psock.c:188: warning: pointer targets in assignment differ in signedness
8
../psock.c: In function 'psock_readto':
9
../psock.c:276: warning: pointer targets in passing argument 2 of 'buf_setup' differ in signedness
10
../psock.c: In function 'psock_readbuf':
11
../psock.c:303: warning: pointer targets in passing argument 2 of 'buf_setup' differ in signedness
12
../psock.c: In function 'psock_init':
13
../psock.c:334: warning: pointer targets in passing argument 2 of 'buf_setup' differ in signedness
14
../uip.c:1847: warning: label 'ip_send_nolen' defined but not used
Alle Warnungen beziehen sich auf Code-Fragmente die vom uIP Stack direkt 
oder dessen Portierung stammen und von mir übernommen wurden. Ein 
möglicher Fehler könnte die Zeit (Integer Overflow bei CLOCK_SECOND) 
sein mit der der Stack in main über Timer aufgerufen wird, empfohlen 
werden so wie ich das verstanden habe 500ms. Durch den Overflow liegt 
das eher bei 1<ms, aber auch wenn ich über #define die Konstante manuell 
setze (auf 16M/(1024*255) = 61 ) erhalte ich nur uip_timedout() ohne 
Pakete im Äther.
Ein Stack-Überlauf erscheint unwahrscheinlich:
1
AVR Memory Usage
2
----------------
3
Device: atmega644p
4
5
Program:   14096 bytes (21.5% Full)
6
(.text + .data + .bootloader)
7
8
Data:       1222 bytes (29.8% Full)
9
(.data + .bss + .noinit)

Im Anhang sind die relevanten C-Dateien, ich hoffe jemand findet die 
Zeit mir bei meinem Problem zu helfen.

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.