0% found this document useful (0 votes)
37 views34 pages

Analyzer User

This document provides information about different types of analyzers that can be used with TRACE32-ICE, including the SA120, HA120, HAC, and ECC8. It describes the functional units, control, display and analysis capabilities of the analyzers.

Uploaded by

Nikhil Punnoose
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
37 views34 pages

Analyzer User

This document provides information about different types of analyzers that can be used with TRACE32-ICE, including the SA120, HA120, HAC, and ECC8. It describes the functional units, control, display and analysis capabilities of the analyzers.

Uploaded by

Nikhil Punnoose
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 34

ICE/FIRE Analyzer User’s Guide

TRACE32 Online Help

TRACE32 Directory

TRACE32 Index

TRACE32 Documents ...................................................................................................................... 

FIRE In-Circuit Emulator ............................................................................................................... 

ICE Analyzer System .................................................................................................................. 

ICE/FIRE Analyzer User's Guide ............................................................................................ 1

Analyzer Types ..................................................................................................................... 3


SA120 3
HA120 4
HAC 5
ECC8 6

Functional Units ................................................................................................................... 7


Trace Memory 7
Timestamp Unit 10
Performance Analyzer 10
Trigger Unit 10
External Trigger Inputs 10
Input Probe Assignments 11
Trigger Output 12
Output Probe Pin Assignment 12

Analyzer Control ................................................................................................................... 13


Basic Trace Control 13
Operation Modes 14
Automatic Trace Control 15
Special Operation Modes 16
Hypertrace Operation Modes 16

Display Trace ........................................................................................................................ 17


Display Commands 17
Search and Compare 19
Real-Time Displays 20
Saving Trace Buffers 21
Using the Trigger Unit 22
Prestore Mode 23

Statistic Analysis .................................................................................................................. 24

Time Charts ........................................................................................................................... 28


©1989-2019 Lauterbach GmbH
ICE/FIRE Analyzer User’s Guide 1
Coverage Analysis ............................................................................................................... 30

Performance Analysis .......................................................................................................... 31


Analyzer Structure 31
Commands 32
Display Results 34
Manual Address Selection 34

©1989-2019 Lauterbach GmbH


ICE/FIRE Analyzer User’s Guide 2
ICE/FIRE Analyzer User’s Guide

Version 25-Oct-2019

Analyzer Types

TRACE32-ICE can be equipped with 4 different types of analyzers:

• SA120 (all TRACE32-ICE delivered before 1994)

• HA120 (full featured analyzer)

• HAC (compact analyzer for 8-32 bit CPUs)

• ECC8 (compact analyzer for all 8-bit CPUs)

SA120

The SA120 state analyzer is divided into three sections. The basic unit offers the real-time trace storage.
The optional TRACE32-TSU (Timestamp Unit) supplies time stamps and a real-time performance analyzer.
The TRACE32-STU (System Trigger Unit) is a complex state machine for triggering. The HA120, HAC and
ECC8 units contain reduced versions of all three units.

SA120
Ext.trigg.
input A
0-7 Timestamp Trigger unit

Ext.trigg.
input B
8-15

External
trace bus Performance coax. B
analyzer
coax. A
Trigger
output coax.RUN-
Trace memory unit

©1989-2019 Lauterbach GmbH


ICE/FIRE Analyzer User’s Guide 3
HA120

The HA120 analyzer system includes all three units (Trace, Trigger, Timestamp) on one board. It can be
extended by the 'Hypertrace' unit, an long-time trace with 1 or 4 MFrames trace length.

Some emulation modules contain an additional 'Flowtrace' module. This module can track the program flow
even when the processor is executing code out of the cache.

Ext.trigg. Trigger unit


HA120
input A Timestamp unit
0-7 Performance analyzer
Trace memory unit
Ext.trigg.
input B
8-15 Hypertrace
unit

Extension slot TCYCLE

coax. A
Trigger
output coax.RUN-

©1989-2019 Lauterbach GmbH


ICE/FIRE Analyzer User’s Guide 4
HAC

The HAC 32-bit Compact Controller (ECC32) is a subset of the HA120. The HAC is an option mounted
inside the ECC32 module. The ECC32 can also work without the HAC. If a HAC and a HA120 are plugged
in the emulator system at the same time, the HAC will be disabled automatically by software and the more
powerful HA120 analyzer will be used.

ECC32
*)

*) (Emulation Trigger unit *) Emula-


memory) Timestamp unit tion
Ext.trigg. control
Trace memory unit
input A unit
0-7

*)
*)

coax.OutA
*)
*)

*)=not for trace analyzer

©1989-2019 Lauterbach GmbH


ICE/FIRE Analyzer User’s Guide 5
ECC8

The ECC8, the emulation controller for the TRACE32-Compact ICE for 8 bit CPUs, contains also the
analyzer unit.

ECC8
*) *) (Emulation control unit)

Trace memory unit


Trigger unit
Ext.trigg. Timestamp unit
input A Performance analyzer
0--7
*) (Emulation memory)
*)
*)

coax.outA
*)
*)

*)=not for trace analyzer

©1989-2019 Lauterbach GmbH


ICE/FIRE Analyzer User’s Guide 6
Functional Units

Trace Memory

The trace memory unit stores all specified lines in real-time.

The SA120 and ECC8 units are limited to a bus cycle time of 150 ns. Wait states must be inserted, if the
cycle time is shorter than 150 ns.

The smallest bus cycle time for the HA120 and the HAC unit is 50 ns.

The analyzer can sample one record per CPU cycle only.

Sampling of data on each CPU clock edge is not possible. The timing analyzer unit can be used for these
purposes.

All important processor signal lines, such as address, data and status lines, are connected to the trace
memory via the emulation bus. The maximum trace memory depth is 32767 records. The optional
Hypertrace unit of the HA120 has a memory depth of 1 or 4 million records. The width depends on the
processor type and the configuration. Additional trace lines are provided by the ICE-Base if required. The
total width can vary between 88 bits (HAC without extensions) and 376 bits (SA120, TSU, ICE-166, Port
Analyzer).

The trace can only be read and displayed when the analyzer idle. Real-time emulation can be continued,
while the analyzer is stopped.

The following channels are recorded in the analyzer unit:

ECC8:

24 Bit Addresses
8 Bit Data
8 Bit Status signals
24 Bit Universal channels
2 Bit 4 trigger levels
8 Bit External trigger inputs
1 Bit DMA access
2 Bit Trace markers
11 Bit Internal control signals

©1989-2019 Lauterbach GmbH


ICE/FIRE Analyzer User’s Guide 7
HAC:

24 Bit Addresses
4 Bit Address spaces/memory classes
16 Bit Data
8 Bit Status signals
4 Bit Bank-access signals
12 Bit Universal channels
3 Bit Markers
2 Bit 3 trigger levels
8 Bit External trigger inputs
1 Bit DMA access
6 Bit Internal control signals

HA120:

24 Bit Addresses
4 Bit Address spaces/memory classes
16 Bit Data
8 Bit Status signals
4 Bit Bank-access signals
24 Bit Universal channels
3 Bit Markers
3 Bit 8 trigger levels
16 Bit External trigger inputs
1 Bit DMA access
9 Bit Internal control signals

©1989-2019 Lauterbach GmbH


ICE/FIRE Analyzer User’s Guide 8
SA120:

24 Bit Addresses
4 Bit Address spaces/memory classes
16 Bit Data
8 Bit Status signals
4 Bit Bank-access signals
16 Bit Universal channels
8 Bit Flags
4 Bit Markers
6 Bit 64 trigger levels
16 Bit External trigger inputs
1 Bit DMA access
9 Bit Internal control signals

©1989-2019 Lauterbach GmbH


ICE/FIRE Analyzer User’s Guide 9
Timestamp Unit

Each record in the trace memory is marked with a timestamp, allowing the measurement of timing relations
between recorded events. They are also used for detailed statistic and performance analysis functions. The
following table shows the technical data of the timestamp units:

Analyzer Max. Time Resolution

ECC8 15 hours 100 ns


HAC 200 seconds 100 ns
HA120 75 days 25 ns
SA120 150 days 5 ns

Performance Analyzer

The performance analyzer allows the continuous display and measurement of the program execution time.
The analysis can be done on function base, predefined areas or fixed address spaces.

This functionality is not available with the HAC.

The performance Analyzer of the SA120 unit it can also be coupled to the Trigger Unit.

Trigger Unit

The analyzer trigger unit can control the trace memory and other parts of the emulation system. This unit is
different from the emulators trigger unit (command TriggerMain), but both units can trigger each other.

The analyzer trigger unit is used to make complex trigger sequences based on events of the target program
and can be controlled by address or data events, bus cycles, external triggers or emulator internal signal.
Event and time counters are available to count bus cycles and monitor time windows. The programming of
the trigger unit is done interactive by a special programming language described in the Analyzer
Programming Guide.

External Trigger Inputs

The external trigger inputs 'A' (0-7) and 'B' (8-15, only on SA120/HA120) can supply external lines to the
trigger unit. The lines are connected to external hardware via an input probe (CIN8). Each individual input
can be switched to the universal counter by the Count commands.

©1989-2019 Lauterbach GmbH


ICE/FIRE Analyzer User’s Guide 10
Input Probe Assignments

LED O O O O O O O O

Pin 15 13 11 9 7 5 3 1

o o o o o o o o
o o o o o o o o

Pin 16 14 12 10 8 6 4 2

Pin 1 Line 0 Data 0

Pin 3 Line 1 Data 1

Pin 5 Line 2 Data 2

Pin 7 Line 3 Data 3

Pin 9 Line 4 Data 4

Pin 11 Line 5 Data 5

Pin 13 Line 6 Data 6

Pin 15 Line 7 Data 7

Pin 2, 4, 6, 8, Ground
10, 12, 14, 16

©1989-2019 Lauterbach GmbH


ICE/FIRE Analyzer User’s Guide 11
Trigger Output

For the stimulation of the target hardware or other analyzers, output lines are available at the output probe
(COUT8). Some of these lines can be programmed without restrictions by the trigger unit. One output is
reserved for providing a synchronous signal with the CPU cycle. At the back of the analyzer chassis three
additional coaxial trigger outputs are available, where "coax B" (only SA120) can be programmed by the
trigger unit as a normal output line, and "coax A" as a bi-directional input/output line. The output line
"Run-" offers an emulator active/inactive signal.

The trigger output lines for the socket "OUT" at the front of the chassis can be accessed via an output probe.
The output probe's pin assignment is as follows:

Output Probe Pin Assignment

LED O O O O O O O O

Pin 15 13 11 9 7 5 3 1

o o o o o o o o
o o o o o o o o

Pin 16 14 12 10 8 6 4 2

HA120:

Pin 1 Trigger output C high-active


Pin 3 Trigger output D high-active
Pin 5 Not assigned
Pin 7 Not assigned
Pin 9 Not assigned
Pin 11 Not assigned
Pin 13 Cycle signal (synchr. signal to CPU)
Pin 15 Not assigned

Pin 2,4,6,8,10,12,14,16 GND

SA120:

Pin 1 Trigger output F high-active


Pin 3 Trigger output F low-active
Pin 5 Trigger output E high-active
Pin 7 Trigger output E low-active
Pin 9 Trigger output D high-active
Pin 11 Trigger output C high-active
Pin 13 Cycle signal (synchr. signal to CPU)
Pin 15 Not assigned

Pin 2,4,6,8,10,12,14,16 GND

©1989-2019 Lauterbach GmbH


ICE/FIRE Analyzer User’s Guide 12
Analyzer Control

Basic Trace Control

The trace buffer can either sample information or display the results. In the Arm state it samples bus cycles.
The trace can be displayed in the Off or Break state.

Condition: OFF
Analyzer.OFF
Analyzer disabled or break after
AutoArm

Analyzer.Arm or AutoArm
and program start

Condition: ARMED
Analyzer.Arm
Analyzer and Trigger enabled or AutoArm and
program start

Trigger Unit or STACK mode trace


Break reached and trace full

Condition: BREAKED

Analyzer and Trigger disabled

Analyzer Operation States

Analyzer.Arm Arm the analyzer


Analyzer.Init Clear the trace buffer and restart the trigger unit and it's
counters
Analyzer.OFF Turn off the analyzer
Analyzer.RESet Restore all setting to the default values
Analyzer.SIZE Defines the size of the trace buffer
Analyzer.state Show the analyzer state window

©1989-2019 Lauterbach GmbH


ICE/FIRE Analyzer User’s Guide 13
All basic functions of the analyzer can be controlled by the analyzer state window.

E::Analyzer
state used analyzer program file
OFF G:\AND\POD\M68K\MICROTEC\t1. edit browse
 Arm 32767.
break SIZE symbol flag counter level
32767. LEVEL1
commands OCCURRED 12.000us
RESet Mode CO1 46500. trigger.a
Init  Fifo DELAY 10234.
TEST Stack trigger.b
 AutoArm Prestore
AutoTEST  SLAVE
AutoInit  PrePost
AutoStart MasterBrk
PC SlaveBrk

The window displays information about the actual state, the mode and the number of records in the trace
buffer. It also shows information about the trigger unit, like logical trigger level and counters.

Operation Modes

The behavior of the analyzer can be changed by the Analyzer.Mode command. The basic operation mode
for the trace storage can be FIFO or STACK.

Analyzer.Mode Fifo FIFO operation mode, the analyzer records the last
cycles before the recording is stopped
Analyzer.Mode Stack STACK operation mode, the analyzer stops recording,
when the trace buffer is full

©1989-2019 Lauterbach GmbH


ICE/FIRE Analyzer User’s Guide 14
Automatic Trace Control

To simplify the control of the analyzer, different automatic control options are available. As a default the
AutoArm option is active, i.e the analyzer will be armed automatically when the user program is started, and
switched to off, after the program has been stopped.

Analyzer.AutoArm Arm the analyzer before starting the user program, switch off after
stopping
Analyzer.AutoInit Clear the trace buffer before starting the user program

©1989-2019 Lauterbach GmbH


ICE/FIRE Analyzer User’s Guide 15
Special Operation Modes

More operation options are available for special purposes.

Analyzer.Mode Prestore In prestore mode the analyzer samples the last opfetch
address before a selective data record was traced.
Analyzer.Mode SLAVE When active the analyzer samples only cycles while the
user program is running. Not sampled are the
background program and the emulation monitor.
Analyzer.Mode PrePost When active, the analyzer always samples the first and
the last cycle of the user program, regardless of the
analyzer trigger program.

Hypertrace Operation Modes

The Hypertrace unit (option for the HA120 analyzer) is an reduced analyzer. It only samples address and
cycle information to trace the program flow. It can operate in three different modes:

Analyzer.Mode HT Trace The Hypertrace samples all cycles. This is the default.
Analyzer.Mode HT Prestore The last 64 cycles before each regular trace record are
sampled.
Analyzer.Mode HT Selective The Hypertrace samples the same cycles like the regular
analyzer.

©1989-2019 Lauterbach GmbH


ICE/FIRE Analyzer User’s Guide 16
Display Trace

Display Commands

The trace buffer can be displayed in tabular form, as mnemonics, with source code or in graphical form.

Analyzer.List Displays trace in table format, optional with mnemonics


or source text
Analyzer.Timing Displays channels as wave form graphics
Analyzer.View Display all information for one record

The analyzer list window can display the contents of the trace memory in several formats. The displayed
columns and disassembled information can be configured very flexible. The command Analyzer.List
without arguments creates a window with an assortment of usually interesting parts of the trace.

E::Analyzer.List

Setup … Goto … Find… Set Ref Set Zero View More Less

record run address cycle d.w symbol ti.back


movea.l #0x2774,a1
-000062 f SP:00001792 rd-word 7200 \\mcc\mcc\sieve+0x0A 0.375us
register int i, prime, k;
int count;

559 count = 0;
moveq #0x0,d1
-000061 f SP:00001794 rd-word 7400 \\mcc\mcc\sieve+0x0C 0.375us

561 for ( i = 0 ; i <= SIZE ; flags[ i++ ] = TRUE ) ;


moveq #0x0,d2
-000060 f SP:00001796 rd-word 2042 \\mcc\mcc\sieve+0x0E 0.375us

trigger record to cursor record


trigger record to cursor time
reference record to cursor record
reference record to cursor time
absolute time
C-T -000326 -25.250us C-R: -000019 -12.750us C-Z: 25.755us

©1989-2019 Lauterbach GmbH


ICE/FIRE Analyzer User’s Guide 17
Each entry is classified by a record number. Usually the most recent entry is numbered as -1. If a trigger
point is available, the trigger point itself is marked with a "T" and its record number is 0.

Extending the command line with configuration items the display format can be modified. The following
examples enforces the display of the assembler program flow:

E::a.l -177. %len 20. run spare a cy d l.label l.asm l.comment l.nofetch
record run spare address cycle d.l
bra $1776
jsr $1788 ; $sieve
-000181 f SD:0000FECC wr-long 0000177A
sieve: movem.l [a2,a3,d2-d4],-(a7)
-000179 f SD:0000FEC8 wr-long 00002540
-000178 f SD:0000FEC4 wr-long 00002550
-000177 f SD:0000FEC0 wr-long 00000000
-000176 f SD:0000FEBC wr-long 00000000
-000175 f SD:0000FEB8 wr-long 0000000B
movea.l #2774,a1 ; #flags,a1
moveq #0,d1 ; #0,count
moveq #0,d2 ; #0,i

Displaying the trace in an HLL format is also possible. The intermediate program fetch cycles can be
suppressed. Accesses to variables can be displayed as an HLL assignment expressions:

E::a.l -325. run address cycle data var list.hll list.nofetch


record run address cycle d.w var
520 flags[ k ] = FALSE;
-000340 f SD:002620 rd-byte 01 flags[16] = 1
-000338 f SD:002620 wr-byte 00 flags[16] = 0
521 k += primz;
522 }
523 anzahl++;
513 {
514 if ( flags[ i ] )
-000326 f SD:002612 rd-byte 01 flags[2] = 1
515 {
516 primz = i + i + 3;

©1989-2019 Lauterbach GmbH


ICE/FIRE Analyzer User’s Guide 18
Search and Compare

Several commands allow to search for specific events, or to compare the trace against a reference:

Analyzer.GOTO Track the display window to a new record


Analyzer.Find Search for records matching the pattern
Analyzer.ComPare Compare two traces or the trace buffer against a file
Analyzer.REF Set reference record for timing measurements

The Find command allows to search for the occurrence of an address or data pattern:

; search for matching address range and data range in complete trace
; memory

Analyzer.Find , address 0x2774++20. data.b 0x01

; search for specific data in limited record range

Analyzer.Find (-1000.)--(-700.) Data.W 0x4a1b

; search for rising edge of the NMI signal

Analyzer.Find , NMI ON AT -1. NMI OFF

; search for different data bytes in the complete trace memory

Analyzer.Find , Data 0x33--0x44 OR Data 0x55

; search for next occurrence

Analyzer.Find

The ComPare command can compare the current trace with a reference trace saved to a file:

Analyzer.LOAD x1
Analyzer.List /Track ; display current trace
Analyzer.List /Track /FILE ; display reference trace
Analyzer.ComPare , , Address Data /FILE ; compare address and data
; with file (complete trace
; memory)

Analyzer.ComPare ; compare next entries

©1989-2019 Lauterbach GmbH


ICE/FIRE Analyzer User’s Guide 19
Real-Time Displays

The information recorded by the analyzer can be displayed, while the analyzer is sampling information.

Analyzer.Get Display the current state of all channels


Analyzer.PC Displays the address of the last instruction fetch

The commands Get and PC will display the information currently sampled by the analyzer, without stopping
the analyzer.

E::A.GET
record run address cycle wait d.w d.b d.b0 d.b1 d.0 d.1 d.2
direct f SP:000000 rd-word 0000 00 00 LOW LOW LOW
d.3 d.4 d.5 d.6 d.7 d.8 d.9 d.10 d.11 d.12 d.13 d.14 d.15
LOW LOW LOW LOW LOW LOW LOW LOW LOW LOW LOW LOW LOW
address symbol paddress
SP:000000
psymbol -wr -uds -lds -vma ir -ipl.0 -ipl.1
HIGH LOW LOW HIGH HIGH HIGH
-ipl.2 -br -bg -bgack -berr -halt dma -res -vpa ti.fore ti.back
HIGH HIGH HIGH HIGH HIGH HIGH LOW HIGH HIGH
trigger ti.ref ti.zero level flag.all flag.0 flag.1 flag.2
411.242s (00) -------- LOW LOW LOW
flag.3 flag.4 flag.5 flag.6 flag.7 mark m.a m.b m.c m.d t.a t.0 t.1
LOW LOW LOW LOW LOW ---- LOW LOW LOW LOW 00 LOW LOW
t.2 t.3 t.4 t.5 t.6 t.7 t.b t.8 t.9 t.10 t.11 t.12 t.13 t.14 t.15
LOW LOW LOW LOW LOW LOW 00 LOW LOW LOW LOW LOW LOW LOW LOW
stream
02

©1989-2019 Lauterbach GmbH


ICE/FIRE Analyzer User’s Guide 20
Saving Trace Buffers

The contents of the trace buffer can be saved on disk and recalled at a later time. The recalled trace buffer
can be accessed by all regular analyzer commands, adding the option /FILE.

Analyzer.SAVE Save the contents of the trace buffer


Analyzer.LOAD Load a saved trace buffer as a reference

Saving a part of the trace buffer can be done by the following command:

Analyzer.SAVE test (-1000.)--0.

The trace can be recalled and viewed again by the Load command:

Analyzer.LOAD test
Analyzer.List /FILE

Comparing the file against a newly recorded trace listing is possible with the ComPare command:

Analyzer.LOAD test
Analyzer.ComPare (-1000.)--0. -1000. Address Data WR /FILE

©1989-2019 Lauterbach GmbH


ICE/FIRE Analyzer User’s Guide 21
Using the Trigger Unit

If a trigger unit is not available or not programmed, the analyzer samples all processor cycles. For selective
recording or complex triggering, the trigger unit has to be programmed. The command Analyzer.Program
opens a special editor window for entering an analyzer trigger program. The input is guided by softkeys
and the context selective help.

Analyzer.Program Write a program for the trigger unit, interactive with softkey support
Analyzer.ReProgram Load a program into the trigger unit without interactive window
Analyzer.LeVel Select the trigger level manually
Analyzer.state Displays the name of the trigger program and the values of counters
and flags
Analyzer.PROfile Displays counters graphically

E::Analyzer.Program test1

Save Save As … Save+Close Quit+Close Save+Comp Compile

ADDRESS AlphaBreak V.RANGE(flags)


Sample.Enable if AlphaBreak

decl glob inst loc instr previous

If the editing of the program is completed a short click with the left mouse button on the compile button will
start the trigger language compiler. When the compilation is error-free, the message “Compiled
successfully” is displayed. The name of the program is shown in the analyzer state window. The analyzer
is now ready to perform the programmed actions.

©1989-2019 Lauterbach GmbH


ICE/FIRE Analyzer User’s Guide 22
Prestore Mode

If a selective data trace is made, it may be essential to know, which part of the program has made the
specific access. Usually this information is not recorded, when data transfers have been sampled only. Using
the prestore mode of the analyzer the address of the last program fetch cycle before the recorded data cycle
can be stored, enabling to identify the module and function, which has made the access. With the
Hypertrace unit (HA120 option) the entire program flow before the specifically interesting cycle can be
traced.

Analyzer.Mode Prestore In prestore mode the analyzer samples the last opfetch
address before a selective data record has been traced

The source or disassembler code can be tracked to the analyzer window to identify the relevant program:

E::Data.List /track
addr/line source
563 for ( i = 0 ; i <= SIZE ; i++ )
{
565 if ( flags[ i ] )
{
567 prime = i + i + 3;
568 k = i + prime;

E::Analyzer.List %LEN 12. Address CYcle Data.L Var PAddress PsYmbol


record address cycle d.l var paddress psymbol
-000011 SD:00002784 wr-byte 00 flags[16] = 0 SP:000017C4 cc\sieve+3C
-000010 SD:00002777 rd-byte 00 flags[3] = 0 SP:000017AC cc\sieve+24
-000009 SD:00002778 rd-byte 01 flags[4] = 1 SP:000017AC cc\sieve+24
-000008 SD:00002783 wr-byte 00 flags[15] = 0 SP:000017C4 cc\sieve+3C
-000007 SD:00002779 rd-byte 01 flags[5] = 1 SP:000017AC cc\sieve+24
-000006 SD:00002786 wr-byte 00 flags[18] = 0 SP:000017C4 cc\sieve+3C
-000005 SD:0000277A rd-byte 00 flags[6] = 0 SP:000017AC cc\sieve+24
-000004 SD:0000277B rd-byte 01 flags[7] = 1 SP:000017AC cc\sieve+24
-000003 SD:0000277C rd-byte 01 flags[8] = 1 SP:000017AC cc\sieve+24
-000002 SD:0000277D rd-byte 00 flags[9] = 0 SP:000017AC cc\sieve+24
-000001

The tracking, based on the record number, is possible between different analyzer windows. The tracking of
different analyzers, based on the absolute time, is possible, e.g. Port Analyzer to State Analyzer. The
address of the bus cycle or the prestore address allows tracking of address oriented windows, like Data.List
or Data.View.

©1989-2019 Lauterbach GmbH


ICE/FIRE Analyzer User’s Guide 23
Statistic Analysis

The statistic analysis of the trace buffer can make a detailed run-time analysis, and statistics about data
streams or conditions of a program. As most measurements are the result of the combination of different
emulator commands, the statistic can be used very flexible.

A detailed function performance analysis is done by sampling the function entries and function exits and
calculating the time using the timestamps in the trace buffer. Therefore, the entries and exits are marked with
Alpha and Beta breakpoints, which can be set either manually or by the command Break.SetFunc. In this
case the trigger unit of the analyzer is programmed for sampling only these cycles and marking them in the
trace buffer with 'A' and 'B'.

Analyzer.STATistic.Func Detailed function run time analysis


Analyzer.STATistic.TREE Same as above, but call tree oriented
Analyzer.STATistic.LINKage Detailed analysis of one function
Analyzer.STATistic.TASKFunc Detailed task selective function analysis
Analyzer.STATistic.TASKTREE Same as above, but call tree oriented
Analyzer.STATistic.TASK Detailed task runtime analysis
Analyzer.STATistic.TASKState Detailed task state analysis
Analyzer.STATistic.PreFetch Select prefetch treatment
Analyzer.STATistic.Sort Define the display order
Break.SetFunc Set markers for function analysis
Data.TAGFunc Generate tags for function analysis or function parameter
trace and trigger

The following emulator commands will prepare a statistic performance analysis:

Break.SetFunc ; set Alpha/Beta breakpoints


Analyzer.ReProgram ~~\ts\perf ; program the trigger unit
Analyzer.Init ; clear the trace
Break.Set sieve ; set a breakpoint to stop emulation
Go ; run user program
Analyser.STATistic ; display results

©1989-2019 Lauterbach GmbH


ICE/FIRE Analyzer User’s Guide 24
After some time, needed for calculating, the statistic window will display the results:

E::Analyzer.STATistic.func
total: 10.932ms intr: 200.450us
range time time.min time.max average include iaverage exclude entrys ratio
main+4 10.9ms 10.9ms 10.9ms 10.9ms 2.2ms 2.2ms 8.7ms 1. 20.264%
unc2+6 137.1us 137.1us 137.1us 137.1us 128.1us 128.1us 9.0us 1. 1.172%
unc1+4 21.0us 3.0us 3.0us 3.0us 21.0us 3.0us 0.0 7. 0.192%
unc4+4 14.3us 14.3us 14.3us 14.3us 14.3us 14.3us 0.0 1. 0.131%
unc3+6 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1. 0.000%
unc5+6 12.8us 12.8us 12.8us 12.8us 12.8us 12.8us 0.0 1. 0.117%
unc6+4 3.8ms 3.8ms 3.8ms 3.8ms 3.8ms 3.8ms 0.0 1. 35.299%
unc7+4 3.9ms 3.9ms 3.9ms 3.9ms 3.9ms 3.9ms 0.0 1. 35.791%
unc8+4 99.8us 99.8us 99.8us 99.8us 99.8us 99.8us 0.0 1. 0.913%
unc9+6 55.1us 55.1us 55.1us 55.1us 43.1us 43.1us 12.0us 1. 0.394%
nc10+6 474.7us 474.7us 474.7us 474.7us 474.7us 474.7us 0.0 1. 4.342%
uc13+4 329.0us 26.8us 137.3us 82.2us 137.3us 34.3us 191.6us 4. 1.256%

The Analyzer.STATistic.LINKage command can be executed by clicking to one function line.

The time spent for a function and the function nesting can be displayed by the analyzer list command with
the FUNC item:

E::Analyzer.List -29. func funcr ti.func ti.funcex


record func funcr ti.func ti.funcex
-000036 func10+6 -000035 206.000us 0.000
-000035 func10+192 -000036 206.000us 0.000
-000034 func10+192 -000037 210.495us 206.000us
-000033 func10+192 -000038 215.245us 210.495us
-000032 func13+6 -000025 128.500us 93.875us
-000031 func13+6 -000026 93.875us 58.995us
-000030 func13+6 -000027 58.995us 24.125us
-000029 func13+6 -000028 24.125us 0.000
-000028 func13+46 -000029 24.125us 0.000
-000027 func13+46 -000030 58.995us 24.125us
-000026 func13+46 -000031 93.875us 58.995us
-000025 func13+46 -000032 128.500us 93.875us
-000024 func13a+4 -000003 241.980us 175.745us
-000023 [func1g+4 -000023 0.000 0.000

©1989-2019 Lauterbach GmbH


ICE/FIRE Analyzer User’s Guide 25
The distribution of times spent for different states of a program, or the response time required by a program
function can be analyzed by the following commands:

Analyzer.STATistic.DURation Statistic analysis of the time between two different


events, e.g. time between interrupt request and program
response
Analyzer.STATistic.DIStance Statistic analysis of the time between events, e.g. transfer
rates, interrupt rates
Analyzer.STATistic.Line Statistic analysis of time spent in different HLL source
lines
Analyzer.STATistic.DistriB Statistic analysis of the distribution of events and time of
the events

The duration analysis displays the time between an event 'A' and an event 'B' in the trace buffer. Both events
must be signed with 'A' or 'B' markers.

E::Analyzer.STATistic.DURation 5.0us 2.5us


samples: 17. average: 496.059us
up to count ratio
< 5.000us 9. 52.941%
7.500us 0. 0.000%
10.000us 1. 5.882%
12.500us 0. 0.000%
15.000us 2. 11.764%
17.500us 0. 0.000%
20.000us 0. 0.000%
22.500us 0. 0.000%
25.000us 0. 0.000%

©1989-2019 Lauterbach GmbH


ICE/FIRE Analyzer User’s Guide 26
The distribution analysis can display the distribution of any item recorded in the trace buffer. It can analyze
the data distribution of i/o devices, the time required by an operation system to execute a specific function or
the time an interrupt is pending. The following window shows the distribution of a data byte within the trace
storage:

E::Analyzer.STATistic.DistriB Data.B0
total: 1.552ms
class time time.min time.max average count ratio
d.b0=56 1.005us 1.005us 1.005us 1.005us 1. 0.064%
d.b0=7C 14.755us 7.375us 7.380us 7.377us 2. 0.950%
d.b0=90 247.390us 6.625us 108.510us 12.369us 20. 15.936%
d.b0=5E 352.745us 1.745us 96.355us 12.163us 29. 22.722%
d.b0=0EE 3.625us 3.625us 3.625us 3.625us 1. 0.233%
d.b0=0 440.360us 2.620us 205.470us 110.090us 4. 28.366%
d.b0=75 51.505us 2.250us 9.500us 6.438us 8. 3.317%
d.b0=20 13.875us 13.875us 13.875us 13.875us 1. 0.893%
d.b0=82 210.750us 2.250us 206.000us 70.250us 3. 13.575%
d.b0=2F 105.620us 24.120us 27.250us 26.405us 4. 6.803%
d.b0=30 110.750us 27.500us 27.750us 27.687us 4. 7.134%

©1989-2019 Lauterbach GmbH


ICE/FIRE Analyzer User’s Guide 27
Time Charts

The time spend in different functions or tasks or the state of tasks can be displayed in time charts. The
calculation algorithm of a time chart is identical with the corresponding statistic command. The function chart
is done by sampling the function entries and function exits and calculating the time using the timestamps in
the trace buffer. Therefore, the entries and exits have to be marked with Alpha and Beta breakpoints. This
can be done manually or by the command Break.SetFunc. The trigger unit of the analyzer has to be
programmed for sampling these cycles only and sign them in the trace buffer with the 'A' and 'B'
markers.

Analyzer.Chart.Func Function analysis


Analyzer.Chart.TASKFunc Task selective function analysis
Analyzer.Chart.TASK Task runtime analysis
Analyzer.Chart.TASKState Detailed task state analysis
Analyzer.Chart.DistriB Shows the state of any values or bit combinations as a
timechart
Analyzer.Chart.Line Shows the address accesses symbolically as lines
numbers in a timechart
Analyzer.Chart.Draw Graphical display of data or address values as
x-t diagram
Break.SetFunc Set markers for function analysis
Data.TAGFunc Generate tags for function analysis

The task runtime analysis can display, when each task was active:

E::Analyzer.Chart.TASK
-190.000ms -180.000ms -170.000ms -160.000ms -150.0
range
(root) ______________________________________________________
\mcc\main ______________________________________________________
\mcc\sieve ______________________________________________________
\mcc\func2 ______________________________________________________
\mcc\func3 ______________________________________________________

©1989-2019 Lauterbach GmbH


ICE/FIRE Analyzer User’s Guide 28
E::Analyzer.Chart.Draw , %Signed Data.B
-190.000ms -180.000ms -170.000ms -160.000ms -150.0
range
00000030
00000020
00000010
00000000
-00000010
-00000020
-00000030

©1989-2019 Lauterbach GmbH


ICE/FIRE Analyzer User’s Guide 29
Coverage Analysis

The analyzer can be used to make code coverage analysis. Compared with the hardware based method
(Flag commands) this has the advantage to be not fooled by prefetches and to be able to make a 'C1' code
coverage. The coverage analysis can be made incremental, always testing some part of the code and
adding the coverage results to the database.

COVerage.ADD Process the analyzer contents


COVerage.RESet Clear the coverage database
COVerage.SAVE Save the database to file
COVerage.LOAD Load the database from file
COVerage.List Display the coverage results on low level
COVerage.ListFunc Display the coverage results on high level
COVerage.Set Manually mark parts as executed
COVerage.Delete Manually mark parts as not executed

©1989-2019 Lauterbach GmbH


ICE/FIRE Analyzer User’s Guide 30
Performance Analysis

The real-time performance analyzer can display the percentage of time spent by a program in different
functions or modules of a program. This functionality isn’t available on the HAC. On the SA120 this analyzer
can be connected to the levels or flags of the trigger unit too, to show their time relations.

Analyzer Structure

The standard measurement method for TRACE32-ICE is Hardware.

If the measurement method Hardware is use, the performance analyzer can be seen as an array of time
counters. Only one counter is getting the clock to count, all other counters are stopped. The resolution of the
counters is 1 us. Counter clocks can be enabled either by the six upper breakpoint bits (Spot, Read, Write,
Alpha, Beta, Charly), the level of the trigger unit (STU) or the flags of the trigger unit (only SA120).

When using the breakpoint bits, either all CPU bus cycles can change the selection of the counter, or the
program fetch cycles changes the counter selection only. The first case is used for memory access profiling,
the second one for performance analysis.

selection signal (6)

breakpoints or levels or flags


pass counter
counter
DEMUX
time-clock counter

1 us counter
time
... counter ... (64/32 counters)

Twin counters are used, to read and display the results without losing time information. The entry of a
counter level is sampled by an extra 'pass' counter (only SA120).

The measurement is made in intervals, after each interval the results in the display windows are refreshed.
The default interval is one second. All results can be displayed for the complete measurement, or for the last
interval (dynamic display). As the time clock stops when the program stops, it is also possible to measure
only one short run of the target program, maybe one pass of the main loop.

The address ranges can be defined either by entering the function names or address ranges in a definition
window, or by an automatic programming system, which can be based on the symbol tables of the program
or in a fixed address raster (screening). The address range of this functions can be limited by
PERF.Address. If the number of symbols exceeds the number of counters (64 on SA120/HA120, 32 on
ECC8), the analyzer will go into a scanning mode. There are two different scanning modes: address
scanning and performance scanning. The modes are distinguished by the selection of the PERF.Sort
command. If the sorting is OFF, the address scanning is activated, this allows scrolling through the entire
symbol list. The analyzer programs only a part of the symbols and proceeds to the next symbols when
©1989-2019 Lauterbach GmbH
ICE/FIRE Analyzer User’s Guide 31
required. If Ratio sort is selected, the performance scanning will be active. In this mode the analyzer
programs the upper half of its counter array to a part of the list, makes a measurement, sorts the results by
'ratio' and continues with the next symbols. As a result the analyzer filters the most time consuming functions
in the lower half of the counters (the first 16 or 32).

The trigger system and spot system are turned off, when the performance analyzer is active. The
breakpoints are reserved for the performance analyzer during the measurement.

Commands

The following commands define the operation mode of the performance analyzer.

PERF.state Display the control window


PERF.Mode Selects the operation mode of the performance analyzer
PERF.AnyAccess Selects memory access profiling mode instead of
performance analyzer mode
PERF.PreFetch Make covered ranges smaller, to ignore prefetched
cycles
PERF.Entry Split ranges to measure the average function execution
time
PERF.Init Clear the time counters of the performance analyzer
PERF.Address Limits the address range for automatic programmed
modes
PERF.Gate Define measurement intervals
PERF.Sort Define display sort order and scanning modes
PERF.RESet Restore all settings to the default

©1989-2019 Lauterbach GmbH


ICE/FIRE Analyzer User’s Guide 32
All functions of the performance analyzer can be controlled by the performance analyzer state window:

E::PERF
Mode commands performance program file
OFF List edit browse
Program Init
LINE RESet Sort Address
Function OFF SP:0x0--0xFFFFFFFF
Module options Address
FuncMod AnyAccess sYmbol scans done
LABEL PreFetch  Ratio no scan
S10 Entry curr.scan
S100 SCAN METHOD
S1000 Hardware cov.time
LeVel Gate BusSnoop 100.000%
FLAGs 1.000s PCSnoop

For most applications it is sufficient to select one the of predefined modes and display the results by an
performance list window. The Function mode will analyze the time spent in different functions. The
covered address range can be limited to one module by the PERF.Address command. The PERF.Sort will
determine the display of the results.

©1989-2019 Lauterbach GmbH


ICE/FIRE Analyzer User’s Guide 33
Display Results

The results can be displayed in different formats.

PERF.List Display the results in a table format


PERF.View Display all the result values of one address range
PERF.Sort Define display sort order

E::PERF.List
1 2 5 10 20 50 100
symbolname ratio
(other) 43.001%
func0 0.000%
func1 1.056%
func2 4.357%
func3 0.044%
func4 0.968%
func5 0.396%
func6 1.584%
func7 2.068%
func8 9.991%
func9 2.772%
func10 20.158%

Manual Address Selection

Besides the automatic modes, it is possible to define the covered address ranges manually. The ranges are
entered in a text file. The file can consist of function names, module names or regular address ranges.

PERF.Program Interactive definition of the monitored address ranges


PERF.ReProgram Load the definition of the monitored address ranges from a batch scripts

©1989-2019 Lauterbach GmbH


ICE/FIRE Analyzer User’s Guide 34

You might also like