fixed pull conflict and socket ping test bug

This commit is contained in:
wlyu
2021-12-22 16:09:34 +08:00
9 changed files with 68 additions and 43 deletions

View File

@@ -32,11 +32,13 @@
* Includes
******************************************************************************/
//#if LWIP_IPV4 && LWIP_RAW
#if 1
#include <transform.h>
#include "lwip/opt.h"
#if LWIP_IPV4 && LWIP_RAW
#include "ping.h"
#include "lwip/opt.h"
#include "lwip/timeouts.h"
#include "lwip/init.h"
#include "netif/ethernet.h"
@@ -88,6 +90,8 @@
* Variables
******************************************************************************/
static pthread_t ping_demo_id = 0;
/*******************************************************************************
* Code
******************************************************************************/
@@ -95,7 +99,7 @@
/*!
* @brief Main function.
*/
int lwip_ping_test(void)
static void *lwip_ping_test(void *param)
{
struct netif fsl_netif0;
#if defined(FSL_FEATURE_SOC_LPC_ENET_COUNT) && (FSL_FEATURE_SOC_LPC_ENET_COUNT > 0)
@@ -127,8 +131,6 @@ int lwip_ping_test(void)
netif_set_default(&fsl_netif0);
netif_set_up(&fsl_netif0);
ping_init(&fsl_netif0_gw);
lw_print("\r\n************************************************\r\n");
lw_print(" PING example\r\n");
lw_print("************************************************\r\n");
@@ -140,6 +142,8 @@ int lwip_ping_test(void)
((u8_t *)&fsl_netif0_gw)[2], ((u8_t *)&fsl_netif0_gw)[3]);
lw_print("************************************************\r\n");
ping_init(&fsl_netif0_gw);
while (1)
{
/* Poll the driver, get any outstanding frames */
@@ -148,8 +152,25 @@ int lwip_ping_test(void)
}
}
void lwip_ping_thread(void)
{
int result = 0;
pthread_attr_t attr;
attr.schedparam.sched_priority = 15;
attr.stacksize = 4096;
result = pthread_create(&ping_demo_id, &attr, lwip_ping_test, NULL);
if (0 == result) {
lw_print("lwip_ping_test successfully!\n");
} else {
lw_print("lwip_ping_test failed! error code is %d\n", result);
}
}
SHELL_EXPORT_CMD(SHELL_CMD_PERMISSION(0) | SHELL_CMD_TYPE(SHELL_TYPE_CMD_MAIN) | SHELL_CMD_PARAM_NUM(0),
LwPingTest, lwip_ping_test, lwip_ping_test);
LwPingTest, lwip_ping_thread, lwip_ping_thread);
#endif

View File

@@ -63,4 +63,3 @@ int LwipUdpDemo(int argc, char *argv[])
SHELL_EXPORT_CMD(SHELL_CMD_PERMISSION(0)|SHELL_CMD_TYPE(SHELL_TYPE_CMD_MAIN),
UdpTest, LwipUdpDemo, UDP socket demo function);
#endif

View File

@@ -102,6 +102,9 @@ static u32_t ping_time;
static struct raw_pcb *ping_pcb;
#endif /* PING_USE_SOCKETS */
#define PING_THREAD_STACKSIZE 4096
#define PING_THREAD_PRIO 15
/** Prepare a echo ICMP request */
static void
@@ -354,8 +357,6 @@ ping_send(struct raw_pcb *raw, const ip_addr_t *addr)
#endif /* LWIP_DEBUG */
}
pbuf_free(p);
// lw_print("lw: [%s] send %d\n", __func__, ping_size);
}
static void
@@ -390,9 +391,6 @@ ping_send_now(void)
#endif /* PING_USE_SOCKETS */
#define PING_THREAD_STACKSIZE 4096
#define PING_THREAD_PRIO 0
void
ping_init(const ip_addr_t* ping_addr)
{
@@ -402,7 +400,7 @@ ping_init(const ip_addr_t* ping_addr)
#if PING_USE_SOCKETS
th = sys_thread_new("ping_thread", ping_thread, NULL, PING_THREAD_STACKSIZE, PING_THREAD_PRIO);
lw_print("lw: [%s] sys %d addr %#x\n", __func__, th, (*ping_addr).addr);
lw_print("lw: [%s] new thread %d addr %#x\n", __func__, th, (*ping_addr).addr);
#else /* PING_USE_SOCKETS */
ping_raw_init();
#endif /* PING_USE_SOCKETS */

View File

@@ -7,7 +7,7 @@
* PING_USE_SOCKETS: Set to 1 to use sockets, otherwise the raw api is used
*/
#ifndef PING_USE_SOCKETS
#define PING_USE_SOCKETS 0//LWIP_SOCKET
#define PING_USE_SOCKETS LWIP_SOCKET
#endif
void ping_init(const ip_addr_t* ping_addr);