We have FreeRTOSPlusTCP Server application (developed using FreeRTOS Socket API) is running on NXP LPC1768 and modified FreeRTOSPlusTCPMinimalWindowsSimulator program runs as Client application on Dell Windows 10 Laptop. LAN card of LPC1768 is directly connected using cross-over cable with Laptop Live Tech USB 2.0 LAN Ethernet card.

D-Link Router is used only for Internet connection purpose using WiFi mode. An static IP and Port (ip 192.

168.1.211 and port 27754) and MAC address are assigned to LPC1768 by Server application running on it. Static IP address(192.168.1.210) is assigned to LAN card of the Laptop. LPC1768 application has been developed on Eclipse MARS platform using GNU Tools ARM Embedded, 5.3 2016q1 GCC Cross-compiler. FreeRTOSPlusTCPMinimalWindowsSimulator program runs on Visual Studio 2015 environment. We have been expecting Laptop Client application to send data to the waiting Server application ready to receive data on LPC1768. But there is absolutely no data exchange between them. On using cmd NETSTAT –ano command on Laptop we never see any port of LPC1768 with status LISTENING.

ARP –a command shows IP address (192.168.1.211) of LPC1768 for few seconds and as soon as FreeRTOSaccept start executing (if fact FreeRTOSaccept just hangs and does not connect with Laptop client application) the IP address disappears from Laptop ARP cache. The advance IP scanner (Free third party utility) always show LPC1768 IP (192.168.1.211) with correct MAC address.

We are not able to PING LPC1768 from Laptop. We get message either Request Timed Out or Destination Host Unreachable. We think that NetworkInterface program developed by us for LPC1768 seems to be working. We have explored on many possible options during the last 3 months to solve the connection problem between LPC1768 and Laptop but not successful at all.

Community

So as a last resort we are sending this SOS note to the FreeRTOS forum. When we run Adam Dunkell’s UIP webserver application on LPC1768 we can PING LPC1768 from Laptop. Also we are able to connect with 192.168.1.211 from Laptop Chrome web-browser.

This eliminates any physical network connection problem between LPC1768 and Laptop. Looks like it may be a problem related to the FreeRTOS TCP-IP Stack. Consulted network engineer to check on our networking arrangements and no problem found in any physical connection related issues. Used Wireshark to monitor ARP and TCP transactions. When we use Adam Dunkell’s UIP Webserver we see TCP & ARP & IP transactions in Wireshark.

But we see only gratuitous ARP entries only from 192.168.1.211. Checked Networkinterface.c and lpc17xxemac.c programs but not able to find problems with them. Tried 3 versions of Networkinterface.c but none of them work as expected. FreeRTOSTCPPlus are sourced from FreeRTOS+TCP Labs Build 160112. Any help and guidance from the forum members will be highly appreciated. The gist of the Server Application code on LPC1768 are as follows. Int main( void ).

#define EMACMAXBLOCKTIMEMS 100ul endif / When a packet is ready to be sent, if it cannot be sent immediately then the task performing the transmit will block for niTXBUFFERFREEWAIT milliseconds. It will do this a maximum of niMAXTXATTEMPTS before giving up. / define niTXBUFFERFREEWAIT ( ( TickTypet ) 2UL / portTICKRATEMS ) define niMAXTXATTEMPTS ( 5 ) / Default the size of the stack used by the EMAC deferred handler task to 4x the size of the stack used by the idle task - but allow this to be overridden in FreeRTOSConfig.h as configMINIMALSTACKSIZE is a user definable constant. / ifndef configEMACTASKSTACKSIZE. LPCEMAC-MCFG = MCFGCLKDIV20 MCFGRESMII;// 1000 0000 0001 1000::::::::::::::: //LPCEMAC-MCFG = MCFGCLKDIV20; for (tout = 100; tout; tout-); LPCEMAC-MCFG = MCFGCLKDIV20; / Enable Reduced MII interface. / LPCEMAC-Command = CRRMII CRPASSRUNTFRM CRPASSRXFILT;// 0010 1100 0000 / Reset Reduced MII Logic.

/ LPCEMAC-SUPP = SUPPRESRMII SUPPSPEED; for (tout = 100; tout; tout-); LPCEMAC-SUPP = SUPPSPEED; / Put the PHY in reset mode / writePHY (PHYREGBMCR, 0x8000); for( tout = 1000; tout; tout- ); / Wait for hardware reset to end. / for (tout = 0; tout. There is way too much here to go over in one go, and I'm confused trying to understand it all, so lets start with the basics and work from there. We have FreeRTOSPlusTCP Server application (developed using FreeRTOS Socket API) is running on NXP LPC1768 Ok - there is a +TCP server running on the LPC1768, lets start there. Are the TCP basics working on the LPC1768? For example, if you configure the most simple case as follows:. Use a static IP address that is compatible with the IP address used on your Windows machine.

So is set to 0, and the static IP address is passed into. Use a point to point cable to connect directly between the LPC1768 and the Windows machine. Are you able to establish an Ethernet link between the LPC1768 and the Windows machine - if so will be called with its eNetworkEvent parameter set to eNetworkUp. If an Ethernet link is established, and the network event hook is being called, are you then able to ping the LPC1768 from the Windows machine? If the basics are working as above on the LPC1768 we look at the basics on the Windows machine. The output screen on com3 port terminal utility is as follows. WELCOME TO RTOS PROJECT WORLD: Network UP SERVER IP.: 192.168.1.211 SERVER NET MASK: 255.255.255.0 GATEWAY IP.: 192.168.1.210 DNS IP.: 192.168.1.210 FreeRTOSPlusTCP Server Task Created Succesfully uIP SendReceive R 9 257 4 IDLE R 0 70 2 IP-task B 14 247 1 EMAC B 15 281 3 Server Socket Created Successfully.

For Mac Address And Rdb1768cmsis2_uip Nxp Community Login

Server Bind AT PORT 27754 Successful. Listening for Client. SERVER IP.: 192.168.1.211 Waiting For Accepting From 192.168.1.210 KG Assert called:./FreeRTOSLibrary/Source/portable/MemMang/heap4.c: 316:(null) So above ensures that the basic setup are working fine.

For Mac Address And Rdb1768cmsis2_uip Nxp Community Services

/FreeRTOSLibrary/Source/portable/MemMang/heap4.c: 316:(null) I am trying to find out cause of this heap4.c error Most asserts are fatal errors - you cannot ignore them. A memory allocation failure is not a fatal error if it is handled - and in the TCP/IP stack, if using bufferallocation2.c, then it could be that you see many memory allocation failures that are handled correctly by the TCP/IP stack itself IF the assert is occurring from pvPortMalloc being called inside the stack. I always get reply ping on 192.168.1.210 on Laptop Do you mean you can ping the FreeRTOS+TCP code that is running on the laptop and get a reply? Where are you pinging it from (it should be possible to ping it from a DOS prompt on the same laptop)?. Attaching modified Simulator code for your reference. The network interface is selected propery (no.2 ). The IP address in Main.c (192.168.1.210) of simulator is compatible with LPC1768 (192.168.1.211).

I can attach entire project file if required. No, please don't, I'm happy to provide assistance through the forum but I'm not going to start working on your project. The output on Laptop of Simulator is as follows. IP Address: 192.168.1.210 Subnet Mask: 255.255.255.0 Gateway IP Address: 192.168.1.210 DNS server IP Address: 192.168.1.210 1.

'I always get reply ping on 192.168.1.210 on Laptop Do you mean you can ping the FreeRTOS+TCP code that is running on the laptop and get a reply? Where are you pinging it from (it should be possible to ping it from a DOS prompt on the same laptop)?' I am not getting ping reply once simulator application runs on Laptop. I use Laptop cmd (MS-Dos) or PowerShell to ping either LPC1768 or 192.168.1.210 (Lancard of PC).

First thing I think you should do is run the built in test, you do this by pressing the top left button labeled test, this will make the cto cut a square with a circle in it. Kingcut ct630 driver software.

The ipconfig /all response of Laptop is as follows. I am not getting ping reply once simulator application runs on Laptop. I use Laptop cmd (MS-Dos) or PowerShell to ping either LPC1768 or 192.168.1.210 (Lancard of PC). So you can ping the +TCP code running on the LPC, but you cannot ping the +TCP code running on the Windows machine - which would make me think your first problem is on the PC, not the LPC. I did change the MAC address configMACADDR0/5 to 00-E0-4C-36-10-1C for the Simulator Laptop program and now it is the same MAC address of LAN card (KG-ETHERNET in cmd ) of Laptop (LAN card ip 192.168.1.210).

It needs to be different. Both the MAC address and the IP address of the +TCP stack running on the laptop MUST BE DIFFERENT to the MAC address and IP address of the laptop on which they are running.

These are two different network interfaces and you cannot duplicate MAC addresses on the same network. When you set both the MAC address and the IP address used by +TCP on the laptop so they are different to the MAC address and IP address used by Windows on the same laptop, then try opening a DOS prompt on the laptop and pinging the IP address assigned to the +TCP stack (192.168.1.215 by the looks of it). You will be pinging from the IP address used by Windows to the IP address used by +TCP.

The network must be 'up' for this to work - so keep the point to point cable plugged in even though at this point we are not talking to the LPC part. Do you get a ping reply?