Tool/software: TI-RTOS
I am trying to get the Industrial Ethernet/IP demo working on the AM5728IDK, but I have run into several issues during this process. When I ran the EIP app out of the box (by following the instructions here: http://processors.wiki.ti.com/index.php/Industrial_Protocol_Package_Getting_Started_Guide#Building_and_Running_Sample_Application), the app tried to read the Ethernet configs from SPI Flash, but instead it just got back all 1's (garbage). I assumed that I was missing a step and I should have somehow programmed the SPI Flash with correct config values, although I am unsure what those should be and how to do that. In an effort to get something working quickly, I set the configurations in code, like IP address (forced DHCP), subnet mask, gateway, ACD, etc. This appeared to work because I was able to get a valid IP address, which confirmed that DHCP was working. I was also able to ping the port and when I opened up the Molex EIP Scanner Windows app, I could see that the TI/Molex Ethernet adapter showed up in the app. At this point I assumed all was well, but when I went to read some of the attributes using the EIP Scanner tool, I kept getting a timeout error on the scanner side. I further confirmed this using wireshark. The only form of a response that I saw from the adapter was an ACK whenever I sent a TCP message. There was no response when using UDP.
I did a lot of troubleshooting with break points and print statements through the entire EIP initialization process. Through this I discovered that the issue appears to occur in eip_main.c > EIPAPP_main() > EIPAPP_init() > EIPAPP_initSample() > EIP_Online(pstEipOnline). This returns "false" just before printing the app menu. Consequently, the EIPAPP_initSample() returns "false" and EIPAPP_init() function returns "-1". The return value is not caught in EIPAPP_main(), and as a result, the program continues on like everything is normal. It eventually hangs in IO_SetModeRun() and never gets past this point. Unfortunately, both EIP_Online() and IO_SetModeRun() appear to be closed-source, pre-compiled functions with just header files available, so we cannot troubleshoot the source code of these functions. I have reached out to TMG yesterday who I was referred to by Molex and is now maintaining the SW stack after Molex. I have not heard back from them yet, so I figured I would post here in hopes that someone else has encountered this issue as well and can help me out. I have attached a copy of the Ethernet/IP application which I have made a number of minor alterations (manually set network configs, add print statements, and comments). Please let me know if you need any more information.