I'm having problems with NDK and can't figure out how to track down the cause.
The goal is to have a PC use Ethernet TCP/IP to exchange data with core 0 in a evm6678l board.This data will be sent from the PC to core 0 and then to other cores using IPC. The processed data will be sent back to core 0 and then to the PC over the same socket.
I have hacked the hua_evmc6678l demo program to contain the network code for my server (a basic socket-based server) and it works OK looping the data back to the PC. It works in both static IP and DHCP modes.
So I added the networking code to the program that exchanges the data with other cores. I copied the setup code for QMSS, CPPI, and PA. I copied with some modifications (no web server, for example) the NDK configuration code. The .cfg file was a challenge because there was no way to do a direct comparison of my .cfg with that of the demo program to see what I needed to add, but I think I got it all.
The final program sort of starts to work and then fails (the NDK code stops sending ACK packets) when running with a static IP. Sometimes the failure comes after a lot of TCP retransmits, but other times it fails after the first set of TCP packets with no retransmit. After this happens, the board does not respond to a ping. If I set it up so that the 6678 only sends packets to the PC, then it works fine. If I set it up so the 6678 only receives packets from the PC then it fails. It even fails if I severely restrict the rate that the PC is sending data (1024 bytes every 100 ms).
With DHCP it appears to get an IP address but ping from the PC can't see it using either the host name or the IP address, and the PC program fails to connect. I added DHCP to the code so that I could test using our house ethernet. The static IP configuration uses a USB to Ethernet adapter (I can't use static IP addresses on our house ethernet) and I wanted to get the adapter out of the loop in case it was the problem.
The ROV logs don't show anything obvious to me. All of the tasks are waiting on semaphores. There's plenty of heap left, and no stack has overflowed. No error message is written to the console.
So, where do I start looking for the cause of these problems?
Thanks,
Fred