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.
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.
|
|