Before asking for NDK support
From Texas Instruments Embedded Processors Wiki
Translate this page to
This page is intended to guide you through support issues and help debugging NDK issues.
Note: as of September 2009, TI provides the NDK on an 'as is' basis with no support.
To help customers solve any issues found, the NDK 2.00 source code is available as a no-charge download at:
Contents |
Was your question already answered in one of the external resources?
- Check the troubleshooting section of the NDK User's Guide SPRU523
- Check the NDK FAQ page for general questions and bug descriptions;
- Check the NDK Licensing and Availability page for a description about the support and licensing model and supported platforms;
- New for 2010! Check the SDOWP online bug database!
- Check the external community forums.
- Please check the NDK Starter Guide (SPRAAX4) that covers the basics of NDK and includes a step-by-step tutorial on how to develop an application using NDK.
A useful cleanup check:
- Have the device drivers been modified? Modifications are unsupported (see more below) and several issues are usually caused by modifications to the device drivers. This is common for custom platforms.
- If the issue is an overall malfunction (stack does not start, configuration APIs return zero, etc) please walk through section 3.4 of NDK User’s Guide and the resources at this wiki;
- Have you ever received in the past a patch from TI for NDK? This is a common situation that can cause several issues, especially if the patch was intended to workaround a previous issue;
- Are you using the proper toolset for the NDK release? This is a common scenario since after the release of CCS3.3 and its updated toolset, old NDK releases are usually not compatible with newer DSP/BIOS and Code Generation Tools;
Common pitfalls:
- Be aware of the system-related issues. Check if the source of the issue is something related to NDK (lower layers) or to your own application (upper layers).
- Upper layers are usually your application: cluster servers, video/audio streaming servers, video surveillance issues, etc. These issues usually are related to NDK misconfiguration so no bug here, only a debugging process.
- It may be a networking issue if it involves UDP or TCP delays, connection drops, not connecting to multicast address, malformed packets, routing issues, etc. These issues may or may not be related to bugs in the NDK, but they usually require a description of the problem, a diagram of your network system and an ethereal debug file (extension .CAP) for further analysis.
- Set your performance expectations correctly. No networked system can run at a peak speed even if it is running in a confined environment - i.e., achieving 100Mbps in a 100Mbps network. There's always some overhead at each network node, not to mention potential packet collisions that will affect throughput. Therefore carefully examine your system for bottlenecks and check the NDK FAQ and the NDK Benchmarks page for directions.
In general:
- Several issues are better investigated by using DOS command line utilities: ping, tracert and route. Also, it’s useful to use telnet to open the console application in the NDK and obtain lots of info from there. Check the NDK User’s guide (SPRU523 ).
- Be careful if you experience difficult connections through a gateway or router – most of the home use off-the-shelf routers have several drawbacks that impose severe limitations to TCP/IP connectivity, especially with ICMP (ping) and IGMP (multicast) capabilities;
- All the API calls are located on the NDK Programmer’s guide (SPRU524).
- Any questions about HAL drivers or custom boards: there's no native support for external MAC/PHY devices anymore, so please check if your hardware is different than the one shipped in TI's boards. Further reference is found on the NDK Platform Porting guide (SPRU523):
- Natively supported PHYs throughout NDK releases:
- SMSC LAN91C111 and Macronix MX98728 MAC/PHY devices (if using C67x or C6416 boards)
- Intel LXT971ALC PHY device on DM642 and DSK/EVM6455 boards
- Broadcom BCM5464 on EVM6455 Mezzanine card
- Micrel KSZ8893 on OMAPL137/C6474 boards
- Marvell 88E1111 on DM648 boards
- Marvell 88E6122 on C6474 boards
- Natively supported PHYs throughout NDK releases:
- The page below contains several guidelines and "things to look for" when modifying the NDK device drivers to support PHYs not currently supported out-of-the-box.
If nothing else works:
Useful information to provide together with a description of the issue:
- NDK release;
- Toolset: CGT and DSP/BIOS releases;
- Platform and DSP used (Custom Hardware? Development boards?)
- If the issue happens with a specific entity (socket, file descriptor, service, etc) please provide the source code used to configure it.
- If the issue happens with the regular network communications (malformed packets, timing issues, unexpected packets), a Wireshark (or Ethereal) network trace is absolutely crucial. Keep in mind that the more the better: sometimes an issue is caused by something that occurred when the board was booting up, therefore be advised that a complete capture may have several MB.
