Hi Folks,
I created some simple send/receive TCPIP code in visual c++. It is bare-bones simple and it works great on all systems on my home network. The goal is to talk to my MicroZED board but that is not working yet.
I started with the LWIP example available through the Xilinx SDK GUI. Using WireShark, I can see that it is generating its gratuitous ARP onto my network. When I try to send to the MicroZED via other systems on the network, MicroZED does not respond with a targeted ARP (as the successful systems do). That actually makes sense because, in the LWIP example code, ARP response is not enabled for NO_SYS (bare metal) use. So... I assume the next step is to set up the code to work with Linux so that I can enable the ARP response. Here is what I think I should be doing. Comments, direction, suggestions, are all welcome.
1) I think I need to disable NO_SYS and enable XENV_LINUX. Anything else?
2) What settings should I use under project, properties, build, settings, linker, general.
-Do not use standard start files?
-Do not use default libraries?
-No startup or default libs?
Are any of these necessary?
3) Then clean and compile the code so that it will work with Linux. Is that the right thing to do? Anything else?
4) I need to manually move the executable to the SD card on the MicroZED to test. Is there a better way move the file without removing and replacing the SD card? Perhaps using ftpd in busybox (please suggest syntax if you know it) Also, do I need to put the file in a particular directory or just the root directory or ???
5) I tried copying the bare metal version of the .elf file to the root directory of the SD card. When I type "./lwip_mrl.elf", the MicroZED responds with "Illegal instruction". I hope that is either permissions or the fact that I am trying to run a bare metal program from linux.
As you can see, I am poking around, trying to get this to work. If anyone has any guidance or suggestions, please respond.
Thanks!
mrl