This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具/软件:Code Composer Studio
您好!
我正在尝试创建一个套接字、用于与具有 Tiva TM4C1294XL Launchpad 的服务器进行通信。 我已将 LWIP 与 FreeRTOS 一起用于 TCP 堆栈和线程。
一旦 LWIP TCP 堆栈初始化后、链路就会启动、PC 的'ping'命令会响应。
真正的问题是:
使用 lwip_socket() API 创建套接字后,没有 ping,也找不到创建的套接字。
代码片段...
int16_t sockfill;
/*创建套接字*/
sockkfd = lwip_socket (AF_iNet、SOCK_STREAM、0);
LWIP_assert ("sockfd >=0"、sockfd >=0);
返回的早餐;
在 tcp_callback()函数处理程序中使用完成套接字创建。 tcp_callback()在 lwip_init()函数之后完成。
这是 代码流
lwipTaskInit (空)
{
。
、
lwIPInit (g_ui32SysClock、pui8MAC、ip_address.addr、net_mask.addr、gateway.addr、 ipaddr_use_static);
//
//在 TCP/IP 线程的上下文中设置其余服务。
//
TCPIP_callback (SetupServices、0);
返回0
}
SetupServices (void *pvArg)
{
uint8_t pui8MAC[6];
uint32_t ui32Loop;
//
//设置设备定位服务。
//
LocatorInit();
lwIPLocalMACGet (pui8MAC);
LocatorMACAddrSet (pui8MAC);
LocatorAppTitleSet ("EK-TM4C1294XL Enet_S2E");
。
。
。
//
ConfigWebInit();
HubClientISockCreate();
}
int HubClientSockCreate (空)
{
uint16_t sockfd;
/*创建套接字*/
sockkfd = lwip_socket (AF_iNet、SOCK_STREAM、0);
LWIP_assert ("sockfd >=0"、sockfd >=0);
返回的早餐;
}
注:我已禁用 DHCP 并使用静态 IP。 LWIP 选项集为
//
#define HOST_TMR_INTERVAL 40 //默认值为0
//#define DHCP_EXPIREE_TIMER_ms (10 * 1000)
#define LWIP_HTTPD_SSI 1.
#define LWIP_HTTPD_CGI 1.
#define LWIP_HTTPD_MAX_CGI_PARAMETERS 20 //默认为16
#define LWIP_HTTPD_DYNAL_HEADers 1.
//#define HTTPD_DEBUG LWIP_DBG_ON
#define EMAC_PHY_CONFIG (EMAC_PHY_TYPE_INTERNAL | EMAC_PHY_INT_MDIX_EN |\
EMAC_PHY_AN_100B_T_FULL_DUPLEX)
#define PHY_PHY_ADDR 0
#define NUM_TX_descriptors 24.
#define NUM_RX_descriptors 8.
#define LWIP_DHCP 0
#define LWIP_AUTOIP 0 //默认值为0
#define LWIP_DHCP_AUTOIP_COOP ((LWIP_DHCP)&&(LWIP_AUTOIP)
//默认为0
#define LWIP_DHCP_AUTOIP_COOP_TESes 5 //默认值为9
#define LWIP_TCP 1.
//#define tcp_TTL (IP_DEFAULT_TTL)
#define tcp_WND 4096 //默认值为2048
//#define tcp_MAXTX 12.
//#define tcp_SYNMAXRTX 6.
//#define tcp_queue_OOSEQ 1.
#define tcp_MSS 1500 //默认为536
//#define tcp_calculate_EFF_send_MSS 1.
#define tcp_snd_BUF (4 * tcp_mss)
#define LWIP_EVENT_API 0
#define LWIP_callback_API 1.
//#define LWIP_NETIF_HOSTNAME 0
//#define LWIP_NETIF_API 0
//#define LWIP_NETIF_STATUS_CALLMACK 0
//#define LWIP_NETIF_LINK_CALLMACK 0
//#define LWIP_NETIF_HWADDRHINT 0
#define LWIP_TCPIP_CORE_LOCK_LOCING_0
#define LWIP_NETCONN 1 //默认值为1
#define LWIP_Socket 1 //默认值为1
#define LWIP_COMPAT_Sockets 0
#define LWIP_POSIX_Sockets _IO_Names 1.
#define LWIP_tcp_keepalive 0
#define LWIP_SO_RCVTIMEO 0
#define LWIP_SO_RCVBUF 0
#define SO_reuse 0
#define LWIP_SOCKET_OFFSET 5.
#define LWIP_SO_SNDTIMEO 0
#define LWIP_SO_SNDRCVTIMEO_NONSTANDARD 0
#define LWIP_SO_Linger 0
#define LWIP_tcp_close_timeout_MS_default 20000
#define SO_REUSE_RXTOALL 0
#define LWIP_FIONREAD_LINUXMODE 0
#define LWIP_IPv4 1.
请参阅随附的 lwipopts.h filee2e.ti.com/.../1258.lwipopts.h
请说明 lwip_socket 创建有什么问题?
此致
Rajesh Kumar V