Real-Time Data Capture Exposes Toughest Real-Time Bugs in DSP-based Systems
Texas Instruments has partnered with EWA Blackhawk to deliver the XDS560T Trace module, a non-intrusive, hardware-based trace tool offering advanced visibility and capabilities for debugging the specialized problems that arise in high-performance, real-time embedded applications, as well as for fine-tuning code performance and cache optimization of complex multi-channel applications. Real-time visibility and a high-speed interface provide developers with the detailed information they require to determine where and why complex, intermittent problems occur.
The ability to record a code flow in real time to the depth enabled by Trace is extremely helpful in solving hard real-time problems, said Eli Shoval, DSP Group Manager, Research and Development, Audiocodes. We've used TI's trace technology to enhance the quality and maturity of our
products while maintaining a short design cycle. TI's technology has made our development process significantly easier and more efficient.
The XDS560 Trace module is comprised of the XDS560 high-speed USB emulator developed by Blackhawk, a division of EWA, and TI's Trace module design with high-density (HD), 60-pin header connector. Specialized watchpoints based on hardware-based state machines enable
complex, real-time advanced event triggers to start and stop data capture. The Trace module non-intrusively extends full, real-time visibility of registers and counters, requires no special drivers, and
is fully supported by TI's Code Composer StudioT Integrated Development Environment.
Real-time bugs are typically extremely complex and difficult to track down. Because they appear intermittently and are extremely sensitive to the overall system context, they can appear almost invisible to developers. Bugs of this nature include race conditions, crashes, scheduling conflicts, runaway code and false interrupts. Typically developers will use a watchpoint to detect that an error has occurred. However, without a comprehensive execution history, little information is available as to which line of code caused the error or why.
When TI asked developers what frustrated them most, the clear winner was how much time they spent debugging complex, context-sensitive real-time bugs, said Stephen Lau, emulation technology product manager, TI. We designed this trace technology to provide the key capabilities
developers need to quickly identify and resolve these types of errors as well as maximize application performance.
The XDS560 Trace module is well-suited for identifying and resolving these types of bugs, employing a circular buffer to build a complete history of application execution with a completely non-intrusive,
real-time data capture. Integrated timestamping, and the ability to correlate data values to the processor's Program Counter and enables a developer to step backwards through time to reconstruct errors.
One challenge with real-time bugs is that an application can continue running for some time before an error manifests itself, often masking the root cause behind potentially millions of lines of code. Many trace systems can only track tens to thousands of program branches, limiting the usefulness of trace capture. The XDS560 Trace module specifically addresses this issue through the ability to trace back over millions of program branches, guaranteeing that the root cause will be captured
within the trace buffer.
The XDS560 Trace module is also capable of profiling an application with a high degree of accuracy. Traditionally, developers wanting to profile code must either use a simulator or intrusively instrument code with breakpoints. Simulators run thousands of times slower than actual applications, limiting their coverage and instrumenting code with breakpoints flushes caches, significantly altering code performance and therefore accuracy.
With the XDS560 Trace module, developers can non-intrusively capture every cycle count for every line of code, enabling them to first determine which function or block of code is performing poorly and then
optimize overall operation. For example, two functions that use the same cache line can create contention. Trace provides complete code visibility enabling developers to pinpoint the exact program line causing contention and quickly resolve it. Additionally, given that the accuracy of code coverage and performance profiling increases with the number of samples taken, Trace offers superior accuracy compared to debuggers with more limited buffers.
The XDS560 Trace module utilizes a high-density header 60-pin connector, as well as compression technology, to increase the effective bandwidth available for capturing real-time data values. While requiring approximately the same board space as a standard JTAG connector and providing full JTAG capabilities, the HD connector is also capable of interfacing directly to the integrated trace module on 17 of TI's currently available DSPs, and future processors will be trace enabled as well. Because Trace operates without instrumenting code, developers have unparalleled visibility and control of even devices deployed in the field. This is especially important when resolving intermittent
problems which are difficult to reproduce in a lab as it allows developers to capture information at a customer site.
The XDS560 Trace development tool includes the Blackhawk XDS560 USB emulator and TI's Trace pod, and is compatible with the TMS320C6455 SRIO EVM, TMS320DM642 EVM and TMS320C6416T DSK. XDS560 Trace costs $9,995 and is available now through TI's worldwide distribution channels and
directly from BlackHawk.