LPC4088 EthernetInterface and LWIP are broken in latest

03 Jul 2014

I was having an issue with the Mbed,EthenetInterface and LWIP downloaded from GitHub (latest dated 20140525). When the "connect" method is called in the Ethernet i/f the system hard faults. It appears to happen when the OS semaphores are waiting and then "rx_packet()" gets called. Funny thing is that the ethernet cable is not connected.

Anyways, I wanted to work it back to the problem and used TCPSocket_HelloWorldTest to compile and download from your site. It hard faults immediately.

I downloaded the project and tried to compile it. You get architecture issues with the "crti.o" file found in the LPCXpresso toolchain. It appears to be giving me a different architecture error. It is a ".o" so I can't do anything about it. I've checked the project settings and they are all set to use the Cortex-M4 architecture. You do get an "axf" file but you can not load it using the debugger.

I really need the Ethernet i'f to work and I've been hitting all sorts of road blocks using my LCP4088 with your code base.

I have seen this example program work in earlier versions (about 3 weeks ago) but when I try to tell the browser IDE to not update just use the code it will not compile.

Cheers!!

07 Jul 2014

I was able to track down the "architecture issue" by making sure I used the Architecture setting for floating point as "FPv4-SP (Hard ABI).

This does not fix the hard fault issue, it just fixes the architecture error.

Cheers!!

07 Jul 2014

Hello,

I use the "FPv4-(Soft ABI) for the architecture setting in LPCXpresso.There are four locations for the architecture setting.

Regards!

07 Jul 2014

Tom,

Thanks for your input. I tried it and it does compile but so does the setting for the "Hard ABI". Are you aware of a reason why I would use soft over hard? Since I'm using an LPC-4088 I would assume "Hard" is the better choice.

In fact, I've done 2 changes, your Architecture change and I've changed where in my app that I call the EthernetInterface "connect()" method. I now call it in a console command so that I can wait until after all of the other i/f and System clock initialization is done. Now when I call the "connect()" method the system does not hard fault.

I'm going to do some more investigation to see if I can narrow down exactly why these changes do what the do.

Now why does the demo app not work?

Any other insights or observations you may have Tom would be greatly appreciated.

Cheers!!

07 Jul 2014

John,

I also have a EA LPC4088 and I am developing an application the uses the Ethernet as the interface to external systems. The issue with the FPv4 "soft" versus "hard" settings is an issue related to how the mbed libraries are built. According to Embedded Artists, the "soft" setting is correct. The MBED LPCXpresso export tool incorrectly sets the "hard" setting. However, I believe that this may be in the process of being fixed. I am running the BETA version of the MBED IDE and the LPCXpresso export setting appears to have been updated to now set the architecture correctly for the DEBUG settings. The RELEASE settings are still all messed up.

With regards to the demo app, I have not taken the time to look at your issue. However, all of my test apps and my app under development are working fine with the EthernetInterface class.

Regards,

Tom

07 Jul 2014

Thanks Tom.

I'll just carry on with my development. Good to know that you have confidence in the EthernetInterface class since I have to rely on it as well.

Cheers!!