lwIP 1.4.0
GCC
ARM Cortex-M3 target

I have been developing on the above platform for some time quite
successfully without optimisation.  Recently I turned on optimisation
and found the raw httpd server (from lwIP contrib) stopped functioning
correctly when serving jpg files that didn't fit in a single Ethernet
frame.  The jpg loaded very slowly, and a wireshark log appear to show
junk being spewed onto the wire in between frames (at least, there were
frames appearing that were of a protocol unknown to me, and wireshark
seemed a bit confused too, and I am only using a point to point connection).

My first suspect was the Ethernet driver, as I always suspect my code
first ;o) and this problem appeared to have the symptom of a missing
volatile qualifier on a variable close to the hardware.  Many hours
later I did what I should probably have done to start with, and try to
isolate which file being optimised was causing the problem.

This experiment would appear, at least, to point to inet_chksum.c,
although I'm still open to anything being the actual cause.

inet_chksum.c was configured with LWIP_CHKSUM_ALGORITHM 2.

I can compile my entire project with optimisation turned up to -Os, and
manually set inet_chksum.c to use -O0, and everything runs fine.

Likewise, I can set the entire project to use optimisation -O0, and
manually set just inet_chksum.c to -O1 (the lowest optimisation) and the
problem is present.

The code does not crash, and the jpg does load eventually.  Setting
LWIP_CHKSUM_ALGORITHM to 1 does not change the behaviour.



Does this make any sort of sense?  A quick scan of the C file does not
show any obvious reason.

Have I run into a know problem here?  I cannot see anything in the bug
list.  Can you suggest any options I should try?


Regards,
Richard.

+ http://www.FreeRTOS.org
Designed for Microcontrollers.
More than 7000 downloads per month.




_______________________________________________
lwip-users mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/lwip-users

Reply via email to