lwip-users
[Top][All Lists]
Advanced

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

[lwip-users] LPC2468 with lwIP 1.4.x corrupting memory


From: Mikael Eiman
Subject: [lwip-users] LPC2468 with lwIP 1.4.x corrupting memory
Date: Mon, 12 Nov 2012 18:51:11 +0100

Hi,

I'm having trouble in a project where I'm using lwIP 1.4.x (tried 1.4.1 and 
1.4.0). I get my memory corrupted, and I can't figure out what I'm doing wrong. 

The problem is easiest to reproduce when I'm unable to connect to the server, 
after just a few tries I get stuck in a failed assert somewhere deep in lwIP, 
or in a DAbt handler after malloc() runs off a cliff. Since this happens 
without any data flowing around, the possible places where things can go wrong 
should be limited.

I'm using FreeRTOS, but all the code that calls lwIP functions is contained in 
a single task, which is why I'm using NO_SYS.

If I switch to the non-malloc() variants of memory handling the code runs 
better, but still crashes sooner or later - the corruption is probably still 
happening but contained to the lwIP static buffers it's less likely to cause 
general mayhem.

Has anyone had a similar problem, or any suggestions for what kind of errors I 
should be looking for in my code?

regards,
        Mikael


My lwIP configuration:

#define NO_SYS                      1
#define SYS_LIGHTWEIGHT_PROT        1
typedef int sys_prot_t;

#define MEM_LIBC_MALLOC             1 // Don't make this 1, or malloc() will be 
all fucked up
#define MEMP_MEM_MALLOC             1 // Don't make this 1, or malloc() will be 
all fucked up
#define MEM_ALIGNMENT               4
#define MEM_SIZE                    (8 * 1024)
#define MEMP_NUM_PBUF               64
#define MEMP_NUM_UDP_PCB            4
#define MEMP_NUM_TCP_PCB            4
#define MEMP_NUM_TCP_PCB_LISTEN     2
#define MEMP_NUM_TCP_SEG            32
#define MEMP_NUM_REASSDATA          8
#define MEMP_NUM_ARP_QUEUE          10
#define MEMP_NUM_SYS_TIMEOUT        5
#define PBUF_POOL_SIZE              32

#define LWIP_ARP                    1
#define IP_REASS_MAX_PBUFS          8
#define IP_FRAG_USES_STATIC_BUF     0
#define IP_DEFAULT_TTL              255
#define IP_SOF_BROADCAST            1
#define IP_SOF_BROADCAST_RECV       1
#define LWIP_ICMP                   1
#define LWIP_BROADCAST_PING         0
#define LWIP_MULTICAST_PING         0
#define LWIP_RAW                    1
#define LWIP_AUTOIP                 0
#define TCP_MSS                     1460
#define TCP_WND                     (4 * TCP_MSS)
#define TCP_SND_BUF                 (6 * TCP_MSS)
//#define TCP_SND_QUEUELEN            128 //(4 * (TCP_SND_BUF/TCP_MSS)) 
#define TCP_LISTEN_BACKLOG          0
#define LWIP_NETIF_STATUS_CALLBACK  1
#define LWIP_NETIF_LINK_CALLBACK    1
#define LWIP_NETIF_HWADDRHINT       1
#define LWIP_NETCONN                0
#define LWIP_SOCKET                 0
#define ETHARP_TRUST_IP_MAC         0
//#define ETH_PAD_SIZE                2
#define LWIP_CHKSUM_ALGORITHM       2

#define LWIP_TCP_KEEPALIVE          1

// Keepalive values, compliant with RFC 1122. Don't change this unless you know 
what you're doing
#define TCP_KEEPIDLE_DEFAULT        10000UL // Default KEEPALIVE timer in 
milliseconds
#define TCP_KEEPINTVL_DEFAULT       2000UL  // Default Time between KEEPALIVE 
probes in milliseconds
#define TCP_KEEPCNT_DEFAULT         9U      // Default Counter for KEEPALIVE 
probes

#define LWIP_STATS                  1
#define LWIP_STATS_DISPLAY          1
#define MEM_STATS                   1
#define SYS_STATS                   1
#define MEMP_STATS                  1
#define LINK_STATS                  1



reply via email to

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