Hello,
A project that I'm working on requires UDP and TCP streaming of audio data over a Local Area Network. We're using the EVM6678L for development. I'm trying to use the client_evm6678l project that accompanies the ndk (network developers kit) and CCS. I can compile, load and run the code, but the DSP does not appear to register an IP address over my network. The output at the terminal is shown below:
[C66xx_0] QMSS successfully initialized
[C66xx_0] CPPI successfully initialized
[C66xx_0] PA successfully initialized
[C66xx_0]
[C66xx_0] TCP/IP Stack Example Client
[C66xx_0] Configuring DHCP client
[C66xx_0] PASS successfully initialized
[C66xx_0] Ethernet subsystem successfully initialized
[C66xx_0] Ethernet eventId : 48 and vectId (Interrupt) : 7
[C66xx_0] Verify_Init: Expected 0 entry count for gRxQHnd= 704, found 22 entries
[C66xx_0] Verify_Init: Expected 0 entry count for Queue number = 704, found 22 entries
[C66xx_0] Verify_Init: Expected 0 entry count for Queue number = 4095, found 21 entries
[C66xx_0] Warning:Queue handler Verification failed
[C66xx_0] Registration of the EMAC Successful, waiting for link up ..
[C66xx_0] Service Status: DHCPC : Enabled : : 000
[C66xx_0] Service Status: Telnet : Enabled : : 000
[C66xx_0] Service Status: HTTP : Enabled : : 000
[C66xx_0] Service Status: DHCPC : Enabled : Running : 000
[C66xx_0] Service Status: DHCPC : Enabled : Fault : 002
[C66xx_0] Service Status: DHCPC : Disabled : : 000
[C66xx_0] Service Status: DHCPC : Enabled : : 000
[C66xx_0] Service Status: DHCPC : Enabled : Running : 000
[C66xx_0] Service Status: DHCPC : Enabled : Fault : 002
[C66xx_0] Service Status: DHCPC : Disabled : : 000
[C66xx_0] Service Status: DHCPC : Enabled : : 000
[C66xx_0] Service Status: DHCPC : Enabled : Running : 000
[C66xx_0] Service Status: DHCPC : Enabled : Fault : 002
[C66xx_0] Service Status: DHCPC : Disabled : : 000
[C66xx_0] Service Status: DHCPC : Enabled : : 000
[C66xx_0] Service Status: DHCPC : Enabled : Running : 000
These messages appear to be printed by the following line(s) of code:
static void ServiceReport( uint Item, uint Status, uint Report, HANDLE h ){
platform_write( "Service Status: %-9s: %-9s: %-9s: %03d\n",
TaskName[Item-1], StatusStr[Status],
ReportStr[Report/256], Report&0xFF );
...
}
It's unclear to me what Fault: 002 refers to. Can anyone shed some light on this? If this is a DHCP error and it can be resolved by configuring a static IP that would be fantastic, as our project does not require DHCP. So, I have essentially two questions:
Also, to circumvent what appears to be a DHCP issue, I attempted to configure the code to use a static IP. I've used the following settings:
char *HostName = "tidsp";
char *LocalIPAddr = "192.168.1.12";
char *LocalIPMask = "255.255.255.0"; // Not used when using DHCP
char *GatewayIP = "192.168.1.1"; // Not used when using DHCP
char *DomainName = "demo.net"; // Not used when using DHCP
char *DNSServer = "0.0.0.0"; // Used when set to anything but zero
The mask and gateway settings are known to work with my desktop, which has registered a static IP at 192.168.1.11. The output at the console for this code:
[C66xx_0] QMSS successfully initialized
[C66xx_0] CPPI successfully initialized
[C66xx_0] PA successfully initialized
[C66xx_0]
[C66xx_0] TCP/IP Stack Example Client
[C66xx_0] PASS successfully initialized
[C66xx_0] Ethernet subsystem successfully initialized
[C66xx_0] Ethernet eventId : 48 and vectId (Interrupt) : 7
[C66xx_0] Verify_Init: Expected 16 entry count for gTxFreeQHnd queue 736, found 30 entries
[C66xx_0] Verify_Init: Expected 0 entry count for gRxQHnd= 704, found 37 entries
[C66xx_0] Verify_Init: Expected 0 entry count for Queue number = 704, found 37 entries
[C66xx_0] Verify_Init: Expected 0 entry count for Queue number = 4095, found 23 entries
[C66xx_0] Warning:Queue handler Verification failed
[C66xx_0] Registration of the EMAC Successful, waiting for link up ..
[C66xx_0] Network Added: If-1:192.168.1.12
[C66xx_0] Service Status: Telnet : Enabled : : 000
[C66xx_0] Service Status: HTTP : Enabled : : 000
It would be nice if more of these demos worked 'out of the box' as opposed to requiring troubleshooting to get the code working. The demonstration application that comes flashed into the EVM's NOR flash acquires a DHCP address perfectly fine, while (ostensibly) the same application that comes pre-built with the MCSDK does not. I've come across several posts that indicate some DHCP discovery problems are associated with a (possibly) inappropriate choice of the SZOPTIONS macro in dhcp.h, which was modified in the 2.00 release of the NDK (Network Development Kit). Following those forum posts I've rebuilt the NDK with the suggested SZPTIONS (changed from 512 -> 312) and am still running into the same issues. I'm completely stuck and would really appreciate some help in just getting this demonstration application running.
Here's a link to the DaVinci forum, where users have experienced similar errors:
http://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/99/p/6182/226520.aspx?PageIndex=1
In an attempt to troubleshoot my network I configured my linux PC with the following /etc/networking/interfaces
auto eth0
iface eth0 inet static
address 192.168.1.11
network 192.168.1.0
netmask 255.255.255.0
broadcast 192.168.1.255
gateway 192.168.1.1
This works. I would like to implement something similar on my Evaluation Kit.
So, I have two questions:
1.) What is the source of the DHCP errors and what can be done to resolve it?
2.) How do I configure a static IP for use with this example code?
Thanks,
-Brant