lwip-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[lwip-users] LWIP Porting issues to 8086


From: Robert Morse
Subject: [lwip-users] LWIP Porting issues to 8086
Date: Fri, 6 Apr 2007 14:55:22 -0400

Hi,
I am in the process of porting the LWIP stack from the CVS Tree, over to a
Turbo86 architecture. (Think back to the 8086 days.)

I have created my Device driver for the ethernet chip, (An AM79C960), and have created all the routines for the OS integration. I have made a few modification to the source to handle the limitation of having a segmented address space. (Pointer comparision and additions/subtractions can be a problem if the offset gets close to 0xffff or 0x0000, as you have to watch the wrap around, or the segments don't match.) I am setup to use the socket
interface.

Ok, I have everything working, and I can bring up my webpages, and any other ethernet item I want to do, for a little while. After a while the system just stops responding. After turning on the debugging flags and looking, the only thing strange I can see is with the
tcp_enqueue: queuelen. (See end of email).

I know the queue length is a unsigned byte, but I do not understand why it should be wrapping from 0 to 255. I don't know if I have a memory problem where something is gettting over written, as this is an embedded design all I have is the ability to output
data to a serial port.

        Any suggestions on places to look, would be great.

Robert
Here is a snip, of what I am seeing.

tcp_enqueue: queuelen: 0
tcp_enqueue: queueing 6532:6533 (0x12)
tcp_enqueue: 1 (after enqueued)
tcp_receive: queuelen 1 ... 0 (after freeing unacked)
tcp_enqueue(pcb=04BA2528, arg=01654F36, len=1460, flags=0, copy=1)
tcp_enqueue: queuelen: 0
tcp_enqueue: queueing 6533:7933 (0x0)
tcp_enqueue: queueing 7933:7993 (0x0)
tcp_enqueue: 2 (after enqueued)
tcp_receive: queuelen 2 ... 1 (after freeing unacked)
tcp_enqueue(pcb=04BA2528, arg=01654F36, len=1460, flags=0, copy=1)
tcp_enqueue: queuelen: 1
tcp_enqueue: queueing 7993:9393 (0x0)
tcp_enqueue: queueing 9393:9453 (0x0)
tcp_enqueue: 3 (after enqueued)
tcp_enqueue(pcb=04BA2528, arg=01654F36, len=1460, flags=0, copy=1)
tcp_enqueue: queuelen: 3
tcp_enqueue: queueing 9453:10853 (0x0)
tcp_enqueue: queueing 10853:10913 (0x0)
tcp_enqueue: 5 (after enqueued)
tcp_enqueue(pcb=04BA2528, arg=01654F36, len=1020, flags=0, copy=1)
tcp_enqueue: queuelen: 5
tcp_enqueue: queueing 10913:11933 (0x0)
tcp_enqueue: chaining segments, new len 1080
tcp_enqueue: 6 (after enqueued)
tcp_receive: queuelen 6 ... 5 (after freeing unacked)
tcp_receive: queuelen 5 ... 4 (after freeing unacked)
tcp_receive: queuelen 4 ... 255 (after freeing unacked)
tcp_enqueue(pcb=04BA2528, arg=01B80032, len=440, flags=0, copy=1)
tcp_enqueue: queuelen: 255
tcp_receive: queuelen 255 ... 254 (after freeing unacked)
tcp_receive: queuelen 254 ... 252 (after freeing unacked)

[After this point the stack no longer responds.]

tcp_enqueue(pcb=04BA2528, arg=01B80032, len=440, flags=0, copy=1)
tcp_enqueue: queuelen: 252
tcp_enqueue(pcb=04BA2528, arg=01B80032, len=440, flags=0, copy=1)
tcp_enqueue: queuelen: 252
tcp_enqueue(pcb=04BA2528, arg=01B80032, len=440, flags=0, copy=1)
tcp_enqueue: queuelen: 252
tcp_enqueue(pcb=04BA2528, arg=01B80032, len=440, flags=0, copy=1)
tcp_enqueue: queuelen: 252





reply via email to

[Prev in Thread] Current Thread [Next in Thread]