C/C++ Display

C/C++ compilers are available for most embedded microprocessors. More and more embedded system code is written in a high-level language rather than assembly. Our C/C++ Display Plug-Ins display data captured from an embedded microprocessor processor using the original, high-level source code.

The GoLogic™ demonstration software includes a C/C++ example created using a Keil® compiler and trace data captured from an 8051. The demo software is available on our Downloads page.

C/C++ Display Plug-Ins

$500.00 (includes 2 Plug-Ins)

  • Source Code Display Plug-In

  • Function Profiler Plug-In

All prices in US dollars. Shipping and taxes not included. Price and specifications subject to change without notice. GoLogic™ sold separately.

What is the purpose of the source code tools?
  • A software break-point in a debugger halts the microprocessor. In contrast, logic analyzers do not interfere with the real-time execution. When the logic analyzer detects a trigger, the processor’s execution is captured until the logic analyzer memory is full. This provides an unobtrusive, real-time, "snap-shot" of the program execution. The captured data is downloaded from the logic analyzer to the PC where it is mapped back to the original source code.
     
  • Software debuggers often cannot determine why your target system is "locking up". Placing a break point immediately before the crash determines its location, but you can't see what’s going wrong because the target has crashed. In contrast, a logic analyzer's real-time "snapshot" of the crash continues even after the target system fails. The logic analyzer exposes the code leading up to the crash and what section of memory the processor was accessing.
     
  • Real-time embedded systems often need precise verification of how long a function takes to execute. Logic analyzers reveal exactly how much time is spent in each function with nanosecond resolution. Software profilers and emulators cannot provide such precision.
     
  • Software debuggers and emulators do not expose how hardware interrupts affect real-time program execution.
How do I use the source code tools?

#1) Load a symbol table
The GoLogic software allows a symbol table to be loaded into any channel group. This permits the WaveForm and Numeric windows to display symbols instead of numbers when a symbolic-match is found...

In order for the source code tools to work, a special debug symbol file must be loaded into the channel group that represents the address bus. The symbol file must contain a line-map database which relates each source code line to a specific address bus value. This database is created by your C/C++ compiler and tells the GoLogic software the source file name and which text line to display for any given address bus value. This line-map database also permits you to click on a line of source code to define trigger events on the address bus.

#2) Trigger on source code
Once a symbol file containing line-map data is loaded into the address channel group, you can select a line of source code to trigger the GoLogic...

Triggers can be placed on any source code line with a single mouse click just like a debugger...

Once the line is selected, the GoLogic software automatically finds the actual address bus value and adds it to the trigger setup...

#3) Source Code Display
Once a trace has been captured, the Source Code Plug-In maps the address bus values back to the original source code. When an address bus value in the trace data matches an entry in the line-map database, we open the original source code file and scroll to the correct line of text. The effect is that the source code can be scrolled forwards and backwards to animate the program execution...

#4) Source Code Profiler
The Source Code Profiler Plug-In displays statistical information on the functions captured in the trace data. All address values in the trace capture are compared to the symbolic debug information. The Plug-In sums the statistics any time an address values falls inside a function's range. When this process is done, a bar graph is displayed which indicated which functions appeared in the trace data, the number of calls made to each function, the average time spent in each function, and the total time spent in each function...

Which microprocessors and programming languages are supported?

Any programming language and processor is supported if the following considerations are met...

  • The GoLogic must be able to capture your processor's address bus values. If the address pins are not physically available to the GoLogic, or the processor's clock speed exceeds the GoLogic's maximum rate of 125 MHz, then we cannot support your processor.
     
  • The GoLogic™ must have enough channels to capture the address bus. The GoLogic-36™ is adequate to capture 8 or 16-bit processors while the GoLogic-72™ is needed for 32 or 64-bit processors.
     
  • Your compiler must create a symbolic debug file which the GoLogic software can read. The file formats we support are listed below. If your compiler's debug file format is supported, our source trigger and display tools support any programming language including C, C++, Pascal, Fortran, ADA, etc.
Which compilers are supported?

The following compilers have been tested with our software. Other compilers may work if they output the ELF/DWARF 2.0 debugging file formats...

ELF/DWARF 2.0 Format

MetaWare's High C/C++/EC++ Embedded Development Tool Suite supports ARC, ARM, PowerPC, MIPS, x86 and other processors.
The ARM Ltd. ARM Developer Suite (ADS) supports all ARM core processors.
Green Hills Optimizing C++ Compiler supports ARM, PowerPC, 68K, x86, CPU32 and other processors.
The IAR Embedded Workbench supports ARM, 68HC11, Z80, and other processors.
Mentor Graphics Microtec C and C++ Compilers from supports the ARM, PowerPC, ColdFire, 68K and other processors.
Wind River's Diab C/C++ compiler suites supports PowerPC, MIPS, 68K and other processors.
Texas Instruments Code Composer Studio supports their C6000, C5000 DSP and microprocessors.

OMF-51 Format

Keil compilers support the 8051, 251, and C66/ST10 micro-controller families.
 
]Home