Other Parts Discussed in Thread: SYSCONFIG
Tool/software:
hi teams,
my requirement need to ping 2 ip with the am2634 mcu
the below config which i had setted up

i configured the 2 NetIf in sysconfig.
appmain.c
#include <stdio.h>
#include <stdarg.h>
#include <string.h>
/* lwIP core includes */
#include "lwip/opt.h"
#include "lwip/sys.h"
#include "lwip/init.h"
#include "lwip/dhcp.h"
#include "lwip/timeouts.h"
#include <apps/tcpecho_raw/tcpecho_raw.h>
#include <kernel/dpl/ClockP.h>
#include <kernel/dpl/EventP.h>
#include <networking/enet/utils/include/enet_apputils.h>
#include <networking/enet/utils/include/enet_board.h>
#include "ti_board_config.h"
#include "ti_board_open_close.h"
#include "ti_drivers_open_close.h"
#include "ti_enet_config.h"
#include "ti_enet_open_close.h"
#include "app_cpswconfighandler.h"
#include "ti_enet_lwipif.h"
/* ========================================================================== */
/* Macros & Typedefs */
/* ========================================================================== */
static const uint8_t BROADCAST_MAC_ADDRESS[ENET_MAC_ADDR_LEN] = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF };
/* ========================================================================== */
/* Structure Declarations */
/* ========================================================================== */
/* ========================================================================== */
/* Function Declarations */
/* ========================================================================== */
static void App_printCpuLoad();//y
static void App_tcpipInitCompleteCb(void *pArg);//y
static void App_setupNetif();//y
static void App_allocateIPAddress();//y
static void App_setupNetworkStack();//y
static void App_shutdownNetworkStack();//y
static void App_netifStatusChangeCb(struct netif *state_netif);//y
static void App_netifLinkChangeCb(struct netif *state_netif);//y
static inline int32_t App_isNetworkUp(struct netif* netif_);//y
static void App_handleEvent(const uint32_t eventMask);
static uint32_t App_receiveEvents(EventP_Object* pEvent);
//****************** My Function *************************************
//void httpd_init(void);
//void udpServer_init(void);
void udpClient_connect(void);
//void tcp_client_init(void);
//void tcp_server_init();
/* ========================================================================== */
/* Global Variables */
/* ========================================================================== */
/* dhcp struct for the ethernet netif */
//static struct dhcp g_netifDhcp[ENET_SYSCFG_NETIF_COUNT];
struct netif *g_pNetif[ENET_SYSCFG_NETIF_COUNT];//y
EventP_Object hEvent;
/* Handle to the Application interface for the LwIPIf Layer
*/
LwipifEnetApp_Handle hlwipIfApp = NULL;
/* ========================================================================== */
/* Function Definitions */
/* ========================================================================== */
#define IP_ADDR_POOL_COUNT (2U)
const ip_addr_t gStaticIP[IP_ADDR_POOL_COUNT] = { IPADDR4_INIT_BYTES(192, 168, 1, 200) /* For NetifIdx = 0 */, IPADDR4_INIT_BYTES( 192, 168, 1, 201) /* For NetifIdx = 1 */};
const ip_addr_t gStaticIPGateway[IP_ADDR_POOL_COUNT] = { IPADDR4_INIT_BYTES(192, 168, 2, 1) /* For NetifIdx = 0 */, IPADDR4_INIT_BYTES(192, 168, 2, 1) /* For NetifIdx = 1 */};
const ip_addr_t gStaticIPNetmask[IP_ADDR_POOL_COUNT] = { IPADDR4_INIT_BYTES(255,255,255,0) /* For NetifIdx = 0 */, IPADDR4_INIT_BYTES(255,255,252,0) /* For NetifIdx = 1 */};
int appMain(void *args)
{
Enet_Type enetType;
uint32_t instId;
int32_t status;
status = EventP_construct(&hEvent);
Drivers_open();
Board_driversOpen();
printf("==========================\r\n");
printf(" CPSW LWIP HTTP WEB SERVER \r\n");
printf("==========================\r\n");
EnetApp_getEnetInstInfo(CONFIG_ENET_CPSW0, &enetType, &instId);
EnetAppUtils_enableClocks(enetType, instId);
EnetApp_driverInit();
status = EnetApp_driverOpen(enetType, instId);
EnetApp_initPhyStateHandlerTask(&hEvent);
if (ENET_SOK != status)
{
EnetAppUtils_print("Failed to open ENET: %d\r\n", status);
EnetAppUtils_assert(false);
return -1;
}
EnetApp_addMCastEntry(enetType,
instId,
EnetSoc_getCoreId(),
BROADCAST_MAC_ADDRESS,
CPSW_ALE_ALL_PORTS_MASK);
//call createPhyHandler here
App_setupNetworkStack();
if (ENET_SOK != status)
{
EnetAppUtils_print("Failed to construct Event: %d\r\n", status);
EnetAppUtils_assert(false);
return -1;
}
while (false == App_isNetworkUp(netif_default))
{
printf("Waiting for network UP ...\r\n");
sys_check_timeouts();
const uint32_t recvdEventsMask = App_receiveEvents(&hEvent);
if (recvdEventsMask != AppEventId_NONE)
{
App_handleEvent(recvdEventsMask);
}
}
printf("Network is UP ...\r\n");
ClockP_sleep(1);
// AppTcp_startClient();
// AppTcp_startServer();
// tcpecho_raw_init();
// httpd_init();
udpServer_init();
// tcp_client_init();
// tcp_client_init_multiple(5);
// udpClient_connect();
// tcp_server_init();
while (1)
{
sys_check_timeouts();
// udpClient_connect();
// tcp_server_init();
// tcp_client_init();
const uint32_t recvdEventsMask = App_receiveEvents(&hEvent);
if (recvdEventsMask != AppEventId_NONE)
{
App_handleEvent(recvdEventsMask);
ClockP_sleep(1);
}
}
App_shutdownNetworkStack();
EnetApp_driverDeInit();
EventP_destruct(&hEvent);
return 0;
}
static void App_handleEvent(const uint32_t eventMask)
{
// lwip raw API examples learn about
if (AppEventId_NETIFMNGR_RXPKT & eventMask)
{
LWIPIF_LWIP_rxPktHandler(g_pNetif[ENET_SYSCFG_DEFAULT_NETIF_IDX]);
}
if (AppEventId_NETIFMNGR_POLL & eventMask)
{
LWIPIF_LWIP_periodic_polling(g_pNetif[ENET_SYSCFG_NETIF_COUNT - 1]);
}
if ( AppEventId_NETIFMNGR_TXPKT & eventMask)
{
LWIPIF_LWIP_txPktHandler(g_pNetif[ENET_SYSCFG_DEFAULT_NETIF_IDX]);
}
if (AppEventId_CPSW_PERIODIC_POLL & eventMask)
{
EnetApp_phyStateHandler();
}
}
static uint32_t App_receiveEvents(EventP_Object* pEvent)
{
int32_t status = SystemP_SUCCESS;
uint32_t recvdEventsMask = AppEventId_NONE;
status = EventP_waitBits(pEvent,
AppEventId_ANY_EVENT, // bitsToWaitFor
1,
0,
SystemP_NO_WAIT,
&recvdEventsMask);
if ((status != SystemP_SUCCESS) && (status != SystemP_TIMEOUT))
{
EnetAppUtils_print("Failed to receive Event handle\r\n");
EnetAppUtils_assert(false);
}
return recvdEventsMask;
}
static void App_setupNetworkStack()
{
lwip_init();
srand(ClockP_getTicks()/1000);
App_setupNetif();
App_allocateIPAddress();
return;
}
static void App_shutdownNetworkStack()
{
return;
}
static void App_setupNetif()
{
ip4_addr_t ipaddr, netmask, gw;
ip4_addr_set_zero(&gw);
ip4_addr_set_zero(&ipaddr);
ip4_addr_set_zero(&netmask);
printf("Starting lwIP, local interface IP is dhcp-enabled\r\n");
hlwipIfApp = LwipifEnetApp_getHandle();
for (uint32_t i = 0U; i < ENET_SYSCFG_NETIF_COUNT; i++)
{
/* Open the netif and get it populated*/
g_pNetif[i] = LwipifEnetApp_netifOpen(hlwipIfApp, NETIF_INST_ID0 + i, &ipaddr, &netmask, &gw);
netif_set_status_callback(g_pNetif[i], App_netifStatusChangeCb);
netif_set_link_callback(g_pNetif[i], App_netifLinkChangeCb);
netif_set_up(g_pNetif[NETIF_INST_ID0 + i]);
}
LwipifEnetApp_startSchedule(hlwipIfApp, g_pNetif[ENET_SYSCFG_DEFAULT_NETIF_IDX], &hEvent);
}
static void App_allocateIPAddress()
{
// sys_lock_tcpip_core();
for (uint32_t netifIdx = 0U; netifIdx < ENET_SYSCFG_NETIF_COUNT; netifIdx++)
{
netif_set_addr(g_pNetif[NETIF_INST_ID0 + netifIdx],
&gStaticIP[NETIF_INST_ID0 + netifIdx],
&gStaticIPNetmask[NETIF_INST_ID0 + netifIdx],
&gStaticIPGateway[NETIF_INST_ID0 + netifIdx]);
}
// sys_unlock_tcpip_core();
return;
}
static void App_netifStatusChangeCb(struct netif *pNetif)
{
if (netif_is_up(pNetif))
{
printf("Enet IF UP Event. Local interface IP:%s\r\n",
ip4addr_ntoa(netif_ip4_addr(pNetif)));
}
else
{
printf("Enet IF DOWN Event\r\n");
}
return;
}
static void App_netifLinkChangeCb(struct netif *pNetif)
{
if (netif_is_link_up(pNetif))
{
printf("Network Link UP Event\r\n");
}
else
{
printf("Network Link DOWN Event\r\n");
}
return;
}
static int32_t App_isNetworkUp(struct netif* netif_)
{
return (netif_is_up(netif_) && netif_is_link_up(netif_) && !ip4_addr_isany_val(*netif_ip4_addr(netif_)));
}
static void App_printCpuLoad()
{
static uint32_t startTime_ms = 0;
const uint32_t currTime_ms = ClockP_getTimeUsec()/1000;
const uint32_t printInterval_ms = 5000;
if (startTime_ms == 0)
{
startTime_ms = currTime_ms;
}
else if ( (currTime_ms - startTime_ms) > printInterval_ms )
{
const uint32_t cpuLoad = TaskP_loadGetTotalCpuLoad();
printf(" %6d.%3ds : CPU load = %3d.%02d %%\r\n",
currTime_ms/1000, currTime_ms%1000,
cpuLoad/100, cpuLoad%100 );
startTime_ms = currTime_ms;
TaskP_loadResetAll();
}
return;
}
so i am trying to ping the ip address but it was not happens

like this i am facing the issue and below i will attach my log below

kindly say what i need to do i need to ping the 2 ips in am2634 mcu.