Hello All,
Given below is my code as i posted earlier
#define IP_ADDR_OCT1 172
#define IP_ADDR_OCT2 17
#define IP_ADDR_OCT3 10
#define IP_ADDR_OCT4 5
#define SUBNET_OCT1 255
#define SUBNET_OCT2 255
#define SUBNET_OCT3 0
#define SUBNET_OCT4 0
#define GATEWAY_IP_OCT1 172
#define GATEWAY_IP_OCT2 17
#define GATEWAY_IP_OCT3 0
#define GATEWAY_IP_OCT4 3
struct ip_addr *udpDestIpAddr;
struct udp_pcb *pcb;
struct udp_pcb *g_upcb1;
int i,j;
unsigned long index;
unsigned char buffer[1440];
unsigned char *UDPData;
unsigned char gain;
/*
uint32_t *ip_addr ="172.17.10.5";
uint32_t *subnet_addr ="255.255.0.0";
uint32_t *gateway_addr = "172.17.0.3" */
//unsigned char u8_EtherNodeId = 0;
unsigned char puci8MACArray[8];
//unsigned char u8_EthNode;
uint32_t IP_AddrOct1;
#define SYSTICKHZ 100
#define SYSTICKMS (1000 / SYSTICKHZ)
#define SYSTICK_INT_PRIORITY 0x80
#define ETHERNET_INT_PRIORITY 0xC0
void
lwIPHostTimerHandler(void)
{
}
//*****************************************************************************
//
// The interrupt handler for the SysTick interrupt.
//
//*****************************************************************************
void
SysTickIntHandler(void)
{
//
// Call the lwIP timer handler.
//
lwIPTimer(SYSTICKMS);
}
void my_udp_tx(u32_t *data, u32_t len)
{
if(g_upcb1->remote_port != (unsigned short)0)
{
struct pbuf *p = pbuf_alloc(PBUF_TRANSPORT,len, PBUF_RAM);
memcpy(p->payload, data, len);
udp_send(g_upcb1, p);
pbuf_free(p);
}
}
void my_udp_rx(struct udp_pcb *upcb,struct ip_addr *addr, u32_t port,u32_t *buf)
{
/* process the payload in p->payload */
udp_connect(g_upcb1, addr, port); /* connect to the remote host */
my_udp_tx(buf,1456);
free(buf); /* don't leak the pbuf!*/
}
// UDP initialization ......................................
void my_udp_init(void)
{
g_upcb1 = udp_new();
udp_bind(g_upcb1, IP_ADDR_ANY,778 );
udp_sendto(g_upcb1,&my_udp_tx,IPADDR_USE_STATIC,777);
}
//*****************************************************************************
//
// This example demonstrates the use of the Ethernet Controller.
//
//*****************************************************************************
int
main(void)
{
uint32_t IP_addr,subnet_addr,gateway_addr;
char p[100];
char b[100];
char c[100];
uint8_t pui8MACArray[8];
//
SysCtlMOSCConfigSet(SYSCTL_MOSC_HIGHFREQ);
g_ui32SysClock = MAP_SysCtlClockFreqSet((SYSCTL_XTAL_25MHZ |
SYSCTL_OSC_MAIN |
SYSCTL_USE_PLL |
SYSCTL_CFG_VCO_480), 120000000);
{
}
}
puci8MACArray[0] = 0x00;
puci8MACArray[1] = 0x00;
puci8MACArray[2] = 0x00;
puci8MACArray[3] = 0x00;
puci8MACArray[4] = 0x00;
puci8MACArray[5] = 0x03;
//catorInit();
LocatorMACAddrSet(puci8MACArray);
sprintf(p,"%ul.%ul.%ul.%ul\n",IP_ADDR_OCT1,IP_ADDR_OCT2,IP_ADDR_OCT3,IP_ADDR_OCT4);
sprintf(b,"%ul.%ul.%ul.%ul\n",SUBNET_OCT1,SUBNET_OCT2,SUBNET_OCT3,SUBNET_OCT4);
sprintf(c,"%ul.%ul.%ul.%ul\n",GATEWAY_IP_OCT1,GATEWAY_IP_OCT2,GATEWAY_IP_OCT3,GATEWAY_IP_OCT4);
IP_addr = inet_addr("172.17.10.5");
subnet_addr = inet_addr("255.255.0.0");
gateway_addr = inet_addr("172.17.0.3");
// lwIPNetworkConfigChange( (&ip_addr),(&subnet_addr),(&gateway_addr),IPADDR_USE_STATIC);
lwIPInit(g_ui32SysClock,puci8MACArray, IP_addr, subnet_addr, gateway_addr, IPADDR_USE_STATIC );
udpDestIpAddr = (struct ip_addr *)malloc(sizeof(struct ip_addr));
/
//udpDestIpAddr = (&ip_addr);
//lwIPLocalIPAddrGet(IP_addr);
printf("%u \n",udpDestIpAddr);
//
// Setup the device locator service.
my_udp_init ();
//
while(1)
{
}
}
The problem occuring is Inet is obtaining ip but when its obtaining subnet or gateway address all are becoming equal.When its passed to lwip library then IP ADDRESS,SUBNET AND GATEWAY ADDRESS ARE SHOWING 0.
Any forum member please help.
Regards,
Krishnan