I've implemented on my board the UDP packet server as a task for a board which has to support ethernet, but nothing is defined for the interface. So far so good. I send UDP packets to it and it receives and echoes them, running LWIP as a low-priority task.
I was asked to add BIT functionality to the ethernet. What I want to do is basically send UDP packets to myself while turning on the internal loopback of the PHY and see that I get and echo them. This is not working. I started to work backwards, just implmenting UDP packet sending without receiving. I find that this, too, is not working.
Initializations are as before , when I want to test the ethernet interface I call
struct udp_pcb *udpb = udp_new();
then (local_ip is built using IP4_ADDR(192,168,0,1))
udp_connect(udpb (const struct ip_addr *)local_ip, 7);
and finally (several times)
udp_send(udpb, p) where p is allocated from the pool.
If I try to send this in my echo server callback routine, it works, I already have the call to connect and send, I add the allocation of the fixed buffer I am trying to send and send it as well, and I can see on the PC side with Wireshark both the echo then the data sent. But doing it just like this doesn't even tickle the PC - nothing seems to come out. Is there something I am missing?