MC6833x Emulation/Analysis Graphical User Interface

MC6833x Emulation/Analysis Graphical User Interface
User’s Guide for the
Graphical User Interface
HP 64782
MC6833x Emulation/Analysis
Notice
Hewlett-Packard makes no warranty of any kind with regard to this material,
including, but not limited to, the implied warranties of merchantability and
fitness for a particular purpose. Hewlett-Packard shall not be liable for errors
contained herein or for incidental or consequential damages in connection
with the furnishing, performance, or use of this material.
Hewlett-Packard assumes no responsibility for the use or reliability of its
software on equipment that is not furnished by Hewlett-Packard.
© Copyright 1994 Hewlett-Packard Company.
This document contains proprietary information, which is protected by
copyright. All rights are reserved. No part of this document may be
photocopied, reproduced or translated to another language without the prior
written consent of Hewlett-Packard Company. The information contained in
this document is subject to change without notice.
HP is a trademark of Hewlett-Packard Company.
OSF/Motif and Motif are trademarks of the Open Software Foundation in the
U.S. and other countries.
SunOS, SPARCsystem, OpenWindows, and SunView are trademarks of Sun
Microsystems, Inc.
UNIX® is a registered trademark in the United States and other countries,
licensed exclusively through X/Open Company Limited.
Hewlett-Packard
P.O. Box 2197
1900 Garden of the Gods Road
Colorado Springs, CO 80901-2197, U.S.A.
RESTRICTED RIGHTS LEGEND Use, duplication, or disclosure by
the U.S. Government is subject to restrictions as set forth in
subparagraph (c) (1)(ii) of the Rights in Technical Data and Computer
Software Clause at DFARS 252.227-7013. Hewlett-Packard Company,
3000 Hanover Street, Palo Alto, CA 94304 U.S.A. Rights for non-DOD
U.S. Government Departments and Agencies are as set forth in FAR
52.227-19(c)(1,2).
2
Printing History
New editions are complete revisions of the manual. The date on the title
page changes only when a new edition is published.
A software code may be printed before the date; this indicates the version
level of the software product at the time the manual was issued. Many
product updates and fixes do not require manual changes, and manual
corrections may be done without accompanying product changes. Therefore,
do not expect a one-to-one correspondence between product updates and
manual revisions.
Edition 1
B3092-97000, July 1994
Safety, Certification and Warranty
Safety and certification and warranty information can be found at the end of
this manual on the pages before the back cover.
3
6833x Emulation and Analysis
The HP 64782 6833x emulators replace the microprocessor in your
embedded microprocessor system, also called the target system, so that you
can control execution and view or modify processor and target system
resources.
The emulator requires an emulation analyzer that captures 64 channels of
emulation processor bus cycle information synchronously with the
processor’s clock signal. The HP 64703 Emulation Bus Analyzer meets this
requirement.
The HP 64703 Emulation Bus Analyzer also has an an external analyzer that
captures up to 16 channels of data external to the emulator. You can also use
the HP 64704 or HP 64794 Emulation Bus Analyzer which has 80 channels;
however, these analyzers do not have external analysis channels.
With the Emulator, You Can ...
• Plug into 6833x target systems.
• Download programs into emulation memory or target system RAM.
• Display or modify the contents of processor registers and memory
resources.
• Run programs, set up software breakpoints, step through programs, and
reset the emulation processor. For information about your emulator clock
speed, refer to the 6833x Installation/Service/Terminal Interface Guide.
With the Analyzer, You Can ...
• Trigger the analyzer when a particular bus cycle state is captured. States
are stored relative to the trigger state.
•
•
•
•
Qualify which states get stored in the trace.
Prestore certain states that occur before each normal store state.
Trigger the analyzer after a sequence of up to 8 events have occurred.
Capture data on signals of interest in the target system with the external
analyzer.
• Cause emulator execution to break when the analyzer finds its trigger
condition.
4
With the HP 64700 Card Cage, You Can ...
• Use the RS-422 capability of the serial port and an RS-422 interface card
on the host computer (HP 98659 for the HP 9000 Series 300) to provide
upload/download rates of up to 230.4K baud.
• Easily access and use the emulator over a Local Area Network by
connecting it to the LAN.
• Easily upgrade HP 64700 firmware by downloading to flash memory.
With Multiple HP 64700s, You Can ...
• Start and stop up to 16 emulators at the same time (up to 32 if
modifications are made).
• Use the analyzer in one HP 64700 to arm (that is, activate) the analyzers
in other HP 64700 card cages or to cause emulator execution in other
HP 64700 card cages to break.
• Use the HP 64700’s BNC connector to trigger an external instrument (for
example, a logic analyzer or oscilloscope) when the analyzer finds its
trigger condition, or you can allow an external instrument to arm the
analyzer or break emulator execution.
With the Graphical User Interface, You Can ...
• Use the emulator and analyzer under an X Window System that supports
OSF/Motif interfaces.
• Enter commands using pull-down or pop-up menus.
• Enter, recall, and edit commands using the command line pushbuttons.
• Enter file names, recalled commands, recalled values, etc., using dialog
boxes.
• Set breakpoints by pointing the mouse cursor on a line in the mnemonic
memory display and clicking.
• Create action keys for commonly used commands or command files.
With the Softkey Interface, You Can ...
• Use the emulator and analyzer with a terminal or terminal emulator.
• Quickly enter commands using softkeys, command recall, and command
editing.
5
In This Book
This book documents the Graphical User Interface and the Softkey Interface
when used with the HP 64782 6833x emulators and the HP 64703/4 analyzer.
It is organized into five parts whose chapters are described below.
Part 1. Quick Start Guide
Chapter 1 presents an overview of emulation and analysis and quickly
shows you how to use the emulator and analyzer.
Part 2. User’s Guide
Chapter 2 tells where to find information about plugging the emulator
into a target system.
Chapter 3 shows you how to start and exit the HP 64700 interfaces.
Chapter 4 shows you how to enter commands.
Chapter 5 shows how to configure the emulator.
Chapter 6 shows how to use the emulator.
Chapter 7 shows how to use the analyzer.
Chapter 8 shows how to use the Software Performance Measurement
Tool (SPMT) with the analyzer.
Chapter 9 shows how to use the external state analyzer.
Chapter 10 shows how to make coordinated measurements.
Chapter 11 shows how to change X resource settings.
Part 3. Reference
Chapter 12 describes emulator/analyzer interface commands.
Chapter 13 lists the error messages that can occur.
Part 4. Concept Guide
Chapter 14 contains conceptual information on various topics.
Part 5. Installation Guide
Chapter 15 outlines the installation of the Graphical User Interface.
Chapter 16 shows you how to install or update emulator firmware.
Follow these instructions if you have ordered the HP 64782 emulator
and the HP 64700 Card Cage separately.
6
Contents
Part 1 Quick Start Guide
1 Getting Started
The Emulator/Analyzer Interface — At a Glance 24
The Getting Started Tutorial 31
Step 1. Start the demo 32
Step 2: Display the program in memory 33
Step 3: Run from the transfer address 34
Step 4: Step high-level source lines 35
Step 5: Display the previous mnemonic display 36
Step 6: Run until an address 37
Step 7: Display data values 38
Step 8: Display registers 39
Step 9: Step assembly-level instructions 40
Step 10: Trace the program 41
Step 11: Display memory at an address in a register 43
Step 12: Patch assembly language code 44
Step 13: Exit the emulator/analyzer interface 48
Part 2 User’s Guide
2 Plugging into a Target System
Plugging the Emulator into a Target System 52
3 Starting and Exiting HP 64700 Interfaces
Starting and Exiting HP 64700 Interfaces 54
Starting the Emulator/Analyzer Interface 55
To start the emulator/analyzer interface 55
To start the interface using the default configuration 57
To run a command file on interface startup 57
7
Contents
To display the status of emulators 57
To unlock an interface that was left locked by another user 58
Opening Other HP 64700 Interface Windows 59
To open additional emulator/analyzer windows 59
To open the high-level debugger interface window 60
To open the software performance analyzer (SPA) interface window 60
Exiting HP 64700 Interfaces 61
To close an interface window 61
To exit a debug/emulation session 62
4 Entering Commands
Entering Commands 64
Using Menus, the Entry Buffer, and Action Keys 65
To choose a pulldown menu item using the mouse (method 1) 65
To choose a pulldown menu item using the mouse (method 2) 66
To choose a pulldown menu item using the keyboard 66
To choose popup menu items 68
To place values into the entry buffer using the keyboard 68
To copy-and-paste to the entry buffer 68
To recall entry buffer values 71
To use the entry buffer 71
To copy-and-paste from the entry buffer to the command line entry area 72
To use the action keys 72
To use dialog boxes 73
To access help information 76
Using the Command Line with the Mouse 77
To turn the command line on or off 77
To enter a command 78
To edit the command line using the command line pushbuttons 79
To edit the command line using the command line popup menu 79
8
Contents
To recall commands 80
To get help about the command line 81
Using the Command Line with the Keyboard 82
To enter multiple commands on one command line 82
To recall commands 83
To edit commands 83
To access on-line help information 84
Using Command Files 85
To start logging commands to a command file 88
To stop logging commands to a command file 88
To playback (execute) a command file 88
Using Pod Commands 89
To display the pod commands screen 90
To use pod commands 90
Forwarding Commands to Other HP 64700 Interfaces 91
To forward commands to the high-level debugger 92
To forward commands to the software performance analyzer 92
5 Configuring the Emulator
Configuring the Emulator 94
Using the Configuration Interface 95
To start the configuration interface 96
To modify a configuration section 98
To apply configuration changes to the emulator 98
If apply to emulator fails 99
To store configuration changes to a file 100
To change the configuration directory context 101
To display the configuration context 101
To access help topics 102
9
Contents
To access context sensitive (f1) help 103
To exit the configuration interface 103
To load an existing configuration file 103
Modifying the General Items and Monitor Setup 104
When Modifying the Microprocessor Clock Source 105
When Restricting the Emulator to Real-time Runs 105
Reconfiguring the Emulator Copy of the SIM Registers 107
To define values for the emulator copy of the SIM registers 108
Mapping Memory 109
To add memory map entries 111
To modify memory map entries 115
To delete memory map entries 116
To characterize unmapped ranges 116
To map memory ranges that use function codes 117
Setting the Debug/Trace Options 120
When Configuring Breaks on Writes to ROM 120
When Configuring the Trace Mode 121
Setting Simulated I/O 122
Verifying the Emulator Configuration 123
To display information about chip selects 123
To display information about bus interface ports 125
To display information about the memory map 126
To display information about the reset mode configuration 128
To display assembly language instructions for setting up the SIM 129
To check for configuration inconsistencies 130
10
Contents
6 Using the Emulator
Using the Emulator 134
Using the EMSIM Registers 135
To view the SIM register differences 138
To synchronize to the 6833x SIM registers 139
To synchronize to the EMSIM registers 139
To restore default values in the EMSIM registers 139
Loading and Storing Absolute Files 140
To load absolute files 140
To load absolute files without symbols 141
To store memory contents into absolute files 142
Using Symbols 143
To load symbols 143
To display global symbols 144
To display local symbols 145
To display a symbol’s parent symbol 149
To copy-and-paste a full symbol name to the entry buffer 150
Using Context Commands 151
To display the current directory and symbol context 152
To change the directory context 152
To change the current working symbol context 153
Executing User Programs 154
To run programs from the current PC 154
To run programs from an address 155
To run programs from the transfer address 155
To run programs from reset 155
To run programs until an address 156
To stop (break from) user program execution 157
To step high-level source lines 157
11
Contents
To step assembly-level instructions 158
To reset the emulation processor 159
Using Execution Breakpoints 160
Setting execution breakpoints in RAM 161
Using temporary and permanent breakpoints 161
To enable execution breakpoints
162
To disable an execution breakpoint
163
To set a permanent breakpoint 164
To set a temporary breakpoint
165
To clear an execution breakpoint 166
To clear all execution breakpoints 168
To display the status of all execution breakpoints 168
Displaying and Modifying Registers 170
To display register contents 170
To modify register contents 171
Displaying and Modifying Memory 172
To display memory 172
To display memory in mnemonic format 173
To return to the previous mnemonic display 173
To display memory in hexadecimal format 174
To display memory in real number format 175
To display memory at an address 176
To display memory repetitively 177
To modify memory 177
Displaying Data Values 178
To display data values 178
To clear the data values display and add a new item 179
To add items to the data values display 179
Changing the Interface Settings 180
To set the source/symbol modes 180
12
Contents
To set the display modes 181
Using System Commands 183
To set UNIX environment variables 183
To display the name of the emulation module 183
To display the event log 184
To display the error log 184
To edit files 185
To copy information to a file or printer 188
To open a terminal emulation window 189
Using Simulated I/O 190
To display the simulated I/O screen 190
To use simulated I/O keyboard input 191
Using Basis Branch Analysis 192
To store BBA data to a file 192
7 Using the Emulation Analyzer
Using the Emulation Analyzer 194
The Basics of Starting, Stopping, and Displaying Traces 195
To start a trace measurement 196
To stop a trace measurement 197
To display the trace list 197
To display the trace status 199
To change the trace depth 201
To modify the last trace command entered 202
To repeat the previous trace command
202
To position the trace display on screen 203
Qualifying Trigger and Store Conditions 204
To specify a trigger and set the trigger position 209
To use address, data, and status values in trace expressions 211
13
Contents
To enter a range in a trace expression 212
To trigger on a number of occurrences of some state 213
To break emulator execution on the analyzer trigger 214
To count states or time
214
To define a storage qualifier 216
To define a prestore qualifier 217
To trace activity leading up to a program halt 219
To capture a continuous stream of program execution no matter how large
your program 219
Using the Sequencer 223
To trigger after a sequence of states 224
To specify a global restart state 226
To trace "windows" of program execution 228
To specify both sequencing and windowing 230
Displaying the Trace List 231
To display the trace about a line number 234
To move through the trace list 235
To disassemble the trace list 235
To specify trace disassembly options 237
To specify trace dequeueing options 238
To display the trace without disassembly
240
To display symbols in the trace list 242
To display source lines in the trace list
243
To change the column width
244
To select the type of count information in the trace list 245
To offset addresses in the trace list 247
To reset the trace display defaults 248
To change the number of states available for display 248
To display program memory associated with a trace list line 249
To open an edit window into the source file associated with a trace list line
249
14
Contents
Saving and Restoring Trace Data and Specifications
To store a trace specification
To store trace data 251
To load a trace specification
To load trace data 253
250
250
252
8 Making Software Performance Measurements
Making Software Performance Measurements 256
Activity Performance Measurements 257
To set up the trace command for activity measurements 260
To initialize activity performance measurements 261
To interpret activity measurement reports 265
Duration Performance Measurements 275
To set up the trace command for duration measurements 276
To initialize duration performance measurements 278
To interpret duration measurement reports 280
Running Measurements and Creating Reports 285
To run performance measurements 285
To end performance measurements 286
To create a performance measurement report 287
9 Using the External State Analyzer
Using the External State Analyzer 290
Setting Up the External Analyzer 291
To connect the external analyzer probe to the target system 291
15
Contents
Configuring the External Analyzer 294
To control the external analyzer with the emulator/analyzer interface 296
To specify the threshold voltage 296
To specify the external analyzer mode 297
To specify the slave clock mode 298
To define labels for the external analyzer signals 301
10 Making Coordinated Measurements
Making Coordinated Measurements 304
Setting Up for Coordinated Measurements 307
To connect the Coordinated Measurement Bus (CMB) 307
To connect to the rear panel BNC 309
Starting/Stopping Multiple Emulators 311
To enable synchronous measurements 311
To start synchronous measurements 312
To disable synchronous measurements 312
Using Trigger Signals 313
To drive the emulation analyzer trigger signal to the CMB 316
To drive the emulation analyzer trigger signal to the BNC connector 316
To drive the external analyzer trigger signal to the CMB 316
To drive the external analyzer trigger signal to the BNC connector 317
To break emulator execution on signal from CMB 317
To break emulator execution on signal from BNC 317
To break emulator execution on external analyzer trigger 317
To arm the emulation analyzer on signal from CMB 318
To arm the emulation analyzer on signal from BNC 318
To arm the emulation analyzer on external analyzer trigger 318
To arm the external analyzer on signal from CMB 319
To arm the external analyzer on signal from BNC 319
To arm the external analyzer on emulation analyzer trigger 319
16
Contents
11 Setting X Resources
Setting X Resources 322
To modify the Graphical User Interface resources 324
To use customized scheme files 328
To set up custom action keys 330
To set initial recall buffer values 331
To set up demos or tutorials 332
Part 3 Reference
12 Emulator/Analyzer Interface Commands
Emulator/Analyzer Interface Commands 338
Commands 346
bbaunld 347
break 348
cmb_execute 349
copy 350
copy local_symbols_in 353
copy memory 354
copy registers 356
copy trace 357
display 358
display configuration_info 360
display data 363
display global_symbols 366
display local_symbols_in 367
display memory 368
display registers 372
display simulated_io 373
display software_breakpoints 374
display trace 375
end 379
--EXPR-- 380
17
Contents
FCODE 383
forward 384
help 385
load 387
log_commands 389
modify 390
modify configuration 391
modify keyboard_to_simio 392
modify memory 393
modify register 396
modify SIM registers 397
performance_measurement_end 399
performance_measurement_initialize 400
performance_measurement_run 402
pod_command 403
QUALIFIER 405
RANGE 407
reset 409
run 410
SEQUENCING 412
set 414
specify 419
STATE 421
step 423
stop_trace 425
store 426
--SYMB-- 428
sync_sim_registers 435
trace 436
TRIGGER 439
wait 441
WINDOW 443
13 Error Messages
Error Messages 446
18
Contents
Part 4 Concept Guide
14 Concepts
Concepts 492
X Resources and the Graphical User Interface 493
Concepts of the EMSIM and EMRAM 500
Part 5 Installation Guide
15 Installation
Installation 510
Connecting the HP 64700 to a Computer or LAN 512
Installing HP 9000 Software 513
Step 1. Install the software from the media 513
Step 2. Set the necessary environment variables 514
Step 3. Verify the software installation 516
Step 4a. Start the X server and the Motif Window Manager (mwm) 517
Step 4b. Start HP VUE 517
Installing Sun SPARCsystem Software 518
Step 1. Install the software from the media 518
Step 2. Start the X server and OpenWindows 519
Step 3. Set the necessary environment variables 519
Step 4. Verify the software installation 521
Step 5. Map your function keys 521
19
Contents
Verifying the Installation 523
Step 1. Determine the logical name of your emulator 523
Step 2. Start the interface with the emul700 command 524
Step 3. Exit the Graphical User Interface 525
16 Installing/Updating Emulator Firmware
Installing/Updating Emulator Firmware 528
To update emulator firmware with "progflash" 529
To display current firmware version information 532
If there is a power failure during a firmware update 533
20
Part 1
Quick Start Guide
21
Part 1
A one-glance overview of the product and a few task instructions to help you
get comfortable.
22
1
Getting Started
23
The Emulator/Analyzer Interface — At a Glance
When an X Window System that supports OSF/Motif interfaces is running on
the host computer, the emulator/analyzer interface is the Graphical User
Interface which provides pull-down and pop-up menus, point and click
setting of breakpoints, cut and paste, on-line help, customizable action keys
and pop-up recall buffers, etc.
The Graphical User Interface
Figure 1
Menu bar
Action keys
Entry buffer
Entry buffer recall
button.
Display area.
Scroll bar.
Status line.
Command line.
Command line
entry area.
Softkey
pushbuttons
Command buttons. Includes command
recall button.
24
Cursor buttons for command line area
control.
Getting Started
Menu Bar. Provides pulldown menus from which you select commands.
When menu items are not applicable, they appear half-bright and do not
respond to mouse clicks.
Action Keys. User-defined pushbuttons. You can label these
pushbuttons and define the action to be performed.
Entry Buffer. Wherever you see "( )" in a pulldown menu, the contents
of the entry buffer are used in that command. You can type values into
the entry buffer, or you can cut and paste values into the entry buffer
from the display area or from the command line entry area. You can also
set up action keys to use the contents of the entry buffer.
Entry Buffer Recall Button. Allows you to recall entry buffer values
that have been predefined or used in previous commands. When you
click on the entry buffer Recall button, a dialog box appears that allows
you to select values.
Display Area. Can show memory, data values, analyzer traces,
registers, breakpoints, status, simulated I/O, global symbols, local
symbols, pod commands (the emulator’s underlying Terminal Interface),
error log, or display log.
Whenever the mouse pointer changes from an arrow to a hand, you can press
and hold the select mouse button to access popup menus.
Scroll Bar. A "sticky slider" that allows navigation in the display area.
Click on the upper and lower arrows to scroll to the top (home) and
bottom (end) of the window. Click on the inner arrows to scroll one line.
Drag the slider handle up or down to cause continuous scrolling. Click
between the inner arrows and the slider handle to page up or page down.
Status Line. Displays the emulator and analyzer status. Also, when
error and status messages occur, they are displayed on the status line in
addition to being saved in the error log. You can press and hold the
select mouse button to access the Status Line popup menu.
Command Line. The command line area is similar to the command line
in the Softkey Interface; however, the graphical interface lets you use the
mouse to enter and edit commands.
• Command line entry area. Allows you to enter commands from the
command line.
25
Getting Started
• Softkey pushbuttons. Clicking on these pushbuttons, or pressing softkeys,
places the command in the command line entry area. You can press and
hold the select mouse button to access the Command Line popup menu.
• Command buttons (includes command recall button). The command
Return button is the same as pressing the carriage return key — it sends
the command in the command line entry area to the emulator/analyzer.
The command Recall button allows you to recall previous or
predefined commands. When you click on the command Recall
button, a dialog box appears that allows you to select a command.
• Cursor buttons for command line area control. Allow you to move the
cursor in the command line entry area forward or backward, clear to the
end of the command line, or clear the whole command line entry area.
You can choose not to display the command line area by turning it off. For
the most common emulator/analyzer operations, the pulldown menus, popup
menus, and action keys provide all the control you need. Choosing menu
items that require use of the command line will automatically turn the
command line back on.
Graphical User Interface Conventions
Choosing Menu Commands
This chapter uses a shorthand notation for indicating that you should choose
a particular menu item. For example, the following instruction
Choose File→Load→Configuration
means to first display the File pulldown menu, then display the Load cascade
menu, then select the Configuration item from the Load cascade menu.
Based on this explanation, the general rule for interpreting this notation can
be stated as follows:
• The leftmost item in bold is the pulldown menu label.
• If there are more than two items, then cascade menus are involved and all
items between the first and last item have cascade menus attached.
• The last item on the right is the actual menu choice to be made.
26
Getting Started
Mouse Button and Keyboard Bindings
Because the Graphical User Interface runs on different kinds of computers,
which may have different conventions for mouse buttons and key names, the
Graphical User Interface supports different bindings and the customization of
bindings.
This manual refers to the mouse buttons using general (or "generic") terms.
The following table describes the generic mouse button names and shows the
default mouse button bindings.
Mouse Button Bindings and Description
Generic
Button
Name
Bindings for
HP 9000
Bindings for
Sun SPARCsystem
(SunOS or Solaris)
Description
paste
left
left
Paste from the display
area to the entry buffer.
command
paste
middle1
middle1
Paste from the entry
buffer to the command
line text entry area.
select
right
right
Click selects first item in
popup menus. Press and
hold displays menus.
command
select
left
right
Displays pulldown
menus.
pushbutton
select
left
left
Actuates pushbuttons
outside of the display
area.
1
Middle button on three-button mouse. Both buttons on two-button mouse.
27
Getting Started
The following tables show the default keyboard bindings.
Keyboard Key Bindings
28
Generic Key Name
HP 9000
Sun SPARCsystem
(SunOS or Solaris)
menu select
extend char
extend char
insert
insert char
insert char
delete
delete char
delete char
left-arrow
left arrow
left arrow
right-arrow
right arrow
right arrow
up-arrow
up arrow
up arrow
down-arrow
down arrow
down arrow
escape
escape
escape
TAB
TAB
TAB
Getting Started
The Softkey Interface
The emulator/analyzer interface can also be the Softkey Interface which is
provided for several types of terminals, terminal emulators, and bitmapped
displays. When using the Softkey Interface, commands are entered from the
keyboard.
Figure 2
Display area.
Status line.
Command line.
29
Getting Started
Display area.
Can show memory, data values, analyzer traces, registers, breakpoints,
status, simulated I/O, global symbols, local symbols, pod commands (the
emulator’s underlying Terminal Interface), error log, or display log. You can
use the UP ARROW, DOWN ARROW, PAGE UP, and PAGE DOWN cursor
keys to scroll or page up or down the information in the active window.
Status line.
Displays the emulator and analyzer status. Also, when error and status
messages occur, they are displayed on the status line in addition to being
saved in the error log.
Command line.
Commands are entered on the command line by pressing softkeys (or by
typing them in) and executed by pressing the Return key. The Tab and
Shift-Tab keys allow you to move the cursor on the command line forward or
backward. The Clear line key (or CTRL-e) clears from the cursor position to
the end of the line. The CTRL-u key clears the whole command line.
Softkey Interface Conventions
bold
bold italic
normal
$
<RETURN>
Example Softkey Interface commands throughout the manual use the
following conventions:
Commands, options, and parts of command syntax.
Commands, options, and parts of command syntax which may be entered by
pressing softkeys.
User specified parts of a command.
Represents the UNIX prompt. Commands which follow the "$" are entered at
the UNIX prompt.
The carriage return key.
30
The Getting Started Tutorial
This tutorial gives you step-by-step instructions on how to perform a few
basic tasks using the emulator/analyzer interface. The tutorial examples
presented in this chapter make the following assumptions:
• The HP 64782B-H emulator and HP 64703/4 analyzer are installed into the
HP 64700 Card Cage, the HP 64700 is connected to the host computer,
and the Graphical User Interface software has been installed as outlined in
the "Installation" chapter.
• The emulator is operating out-of-circuit (that is, not plugged into a target
system).
The Demonstration Program
The demonstration program used in this chapter is a simple environmental
control system. The program controls the temperature and humidity of a
room requiring accurate environmental control.
31
Getting Started
Step 1. Start the demo
Step 1. Start the demo
A demo program and its associated files are provided with the Graphical User
Interface.
1 Change to the demo directory.
$ cd /usr/hp64000/demo/debug_env/hp64749
Refer to the README file for more information on the demo program.
2 Check that "/usr/hp64000/bin" and "." are in your PATH environment
variable. To see the value of PATH:
$ echo $PATH
3 If the Graphical User Interface software is installed on a different
type of computer than the computer you are using, edit the
"platformScheme" resource setting in the "Xdefaults.emul" file.
For example, if the Graphical User Interface will be run on a HP 9000
computer and displayed on a Sun SPARCsystem computer, change the
platform scheme to "SunOS".
4 Start the emulator/analyzer demo.
$ Startemul <logical_emul_name>
This script starts the emulator/analyzer interface (with a customized set of
action keys), loads a configuration file for the demo program, and then loads
the demo program.
The <logical_emul_name> in the command above is the logical emulator
name given in the HP 64700 emulator device table file
(/usr/hp64000/etc/64700tab.net). It may also be the LAN name.
32
Getting Started
Step 2: Display the program in memory
Step 2: Display the program in memory
1 If the symbol "main" is not already in the entry buffer, move the
mouse pointer to the entry buffer (notice the flashing I-beam cursor)
and type in "main".
2 Choose Display→Memory→Mnemonic ().
Or, using the command line, enter:
display memory main mnemonic
Figure 3
entry buffer
The default display mode settings cause source lines and symbols to appear
in displays where appropriate. Notice you can use symbols when specifying
expressions. The global symbol "main" is used in the command above to
specify the starting address of the memory to be displayed.
33
Getting Started
Step 3: Run from the transfer address
Step 3: Run from the transfer address
The transfer address is the entry address defined by the software
development tools and included with the program’s symbol information.
• Click on the Run Xfer til () action key.
Or, using the command line, enter:
run from transfer_address until main
Figure 4
Notice the message "Software break: <address>" is displayed on the status
line and that the emulator is "Running in monitor" (you may have to click the
select mouse button to remove temporary messages from the status line).
When you run until an address, a breakpoint is set at the address before the
program is run.
Notice the highlighted bar on the screen; it shows the current program
counter.
34
Getting Started
Step 4: Step high-level source lines
Step 4: Step high-level source lines
You can step through the program by high-level source lines. The emulator
executes as many instructions as are associated with the high-level program
source lines.
1 To step a source line from the current program counter, click on the
Step Source action key.
Or, using the command line, enter:
step source
Notice that the highlighted bar (the current program counter) moves to the
next high-level source line.
2 Step into the "init_system" function by continuing to step source
lines, either by clicking on the Step Source action key, by clicking
on the Again action key which repeats the previous command, or by
entering the step source command on the command line.
Figure 5
35
Getting Started
Step 5: Display the previous mnemonic display
Step 5: Display the previous mnemonic display
• Click on the Disp Src Prev action key.
Or, using the command line, enter:
display memory mnemonic previous_display
This command is useful, for example, when you have stepped into a function
that you do not wish to look at—you can display the previous mnemonic
display and run until the source line that follows the function call.
36
Getting Started
Step 6: Run until an address
Step 6: Run until an address
When displaying memory in mnemonic format, a selection in the popup menu
lets you run from the current program counter address until a specific source
line.
• Position the mouse pointer over the line "proc_spec_init();", press
and hold the select mouse button, and choose Run Until from the
popup menu. This screen shows the command line turned on.
Figure 6
Or, using the command line, enter:
run until main."main.c": line 98
After the command has executed, notice the highlighted bar indicates the
program counter has moved to the specified source line.
37
Getting Started
Step 7: Display data values
Step 7: Display data values
1 Position the mouse pointer over "num_checks" in the source line that
reads "num_checks++;" and click the paste mouse button (notice
"num_checks" is cut and pasted into the entry buffer).
2 Click on the Disp Var () action key.
Or, using the command line, enter:
display data , num_checks int32
Figure 7
The "num_checks" variable is added to the data values display and its value is
displayed as a 32-bit integer.
38
Getting Started
Step 8: Display registers
Step 8: Display registers
You can display the contents of the processor registers.
• Choose Display→Registers→BASIC.
Or, using the command line, enter:
display registers
Figure 8
39
Getting Started
Step 9: Step assembly-level instructions
Step 9: Step assembly-level instructions
You can step through the program one instruction at a time.
• To step one instruction from the current program counter, click on
the Step Asm action key.
Or, using the command line, enter:
step
Figure 9
Notice, when registers are displayed, stepping causes the assembly language
instruction just executed to be displayed.
40
Getting Started
Step 10: Trace the program
Step 10: Trace the program
When the analyzer traces program execution, it looks at the data on the
emulation processor’s bus and control signals at each clock cycle. The
information seen at a particular clock cycle is called a state.
When one of these states matches the "trigger state" you specify, the analyzer
stores states in trace memory. When trace memory is filled, the trace is said
to be "complete."
1 Click on the Recall button to the right of the entry buffer.
A selection dialog box appears. You can select from entry buffer values that
have been entered previously or that have been predefined.
2 Click on "main" in the selection dialog box, and click the "OK"
pushbutton.
Notice that the value "main" has been returned to the entry buffer.
3 To trigger on the address "main" and store states that occur after the
trigger, choose Trace→After ().
Or, using the command line, enter:
trace after main
Notice the message "Emulation trace started" appears on the status line.
This shows that the analyzer has begun to look for the trigger state which is
the address "main" on the processor’s address bus.
4 Run the emulator demo program from its transfer address by
choosing Execution→Run→from Transfer Address.
Or, using the command line, enter:
run from transfer_address
Notice that now the message on the status line is "Emulation trace complete".
This shows the trigger state has been found and the analyzer trace memory
has been filled.
41
Getting Started
Step 10: Trace the program
5 To view the captured states, choose Display→Trace.
Or, using the command line, enter:
display trace
Figure 10
The default display mode settings cause source lines and symbols to appear
in the trace list.
Captured states are numbered in the left-hand column of the trace list. Line
0 always contains the state that caused the analyzer to trigger.
Other columns contain address information, data values, opcode or status
information, and time count information.
42
Getting Started
Step 11: Display memory at an address in a register
Step 11: Display memory at an address in a register
1 Click on the Disp @REG action key.
Or, using the command line, enter the name of the command file:
mematreg
A command file dialog box appears (or a prompt appears in the command
line).
2 Move the mouse pointer to the dialog box text entry area, type "A7"
(uppercase), and click on the "OK" button.
Or, if the prompt is in the command line:
A7
Figure 11
43
Getting Started
Step 12: Patch assembly language code
Step 12: Patch assembly language code
The Patch () action key lets you patch code in your program.
1 With "main" still in the entry buffer, click on the Run Xfer til ()
action key.
2 To display memory with assembly-level instructions intermixed with
the high-level source lines, click on the Disp Src & Asm action key.
Figure 12
3 Click on the address for main in the source display to enter the
address into the entry buffer.
4 Click on the Patch () action key.
A window appears and the vi editor is started. Notice that the address for
"main" appears in the ORG statement.
5 Add the line:
LINK A6,#1234h
44
Getting Started
Step 12: Patch assembly language code
Figure 13
6 Exit out of the editor, saving your changes.
The file you just edited is assembled, and the patch main menu appears.
7 Type "a" and press <RETURN> to apply the patch.
Figure 14
45
Getting Started
Step 12: Patch assembly language code
Notice in the emulator/analyzer interface that the instruction at address
"main" has changed.
8 Click on the Patch () action key again.
A window running the vi editor again appears, allowing you to modify the
patch code that was just created.
9 Modify the line you added previously to:
LINK A6,#0
10 Exit out of the editor, saving your changes.
The file you just edited is assembled, and the patch main menu appears.
11 Type "a" and press <RETURN> to apply the patch.
Notice in the emulator/analyzer interface that the instruction at address
"main" has been changed back to what it was originally.
When patching a single address, make sure the new instruction takes up the
same number of bytes as the old instruction; otherwise, you may
inadvertently modify code that follows.
12 Type "main+4 thru main+15" in the entry buffer.
By entering an address range in the entry buffer (that is, <address> thru
<address>) before clicking on the Patch () action key, you can modify a
patch template file which allows you to insert as much or as little code as you
wish.
If you make a mistake while editing the patch, then save the changes, when
you enter the file again to fix the mistake, a "duplicate symbol" error will
appear on the INCLUDE PCHSINC.s" line when the patch is reassembled.
Although this message is displayed, it will not affect the new patch assembly.
46
Getting Started
Step 12: Patch assembly language code
13 Click on the Patch () action key again.
A window running the vi editor again appears. Suppose you want to patch
the demo program so that the proc_spec_init() function is called before the
init_system() function. Suppose also that there is memory available at
address 8800H. Edit the patch template file as shown below.
Figure 15
Notice that symbols can be used in the patch file.
14 Exit out of the editor, saving your changes.
The file you just edited is assembled, and the patch main menu appears.
15 Type "a" and press <RETURN> to apply the patch.
You can step through the program to view execution of the patch.
47
Getting Started
Step 13: Exit the emulator/analyzer interface
Step 13: Exit the emulator/analyzer interface
• To exit the emulator/analyzer interface and release the emulator,
choose File→Exit→Released.
Or, using the command line, enter:
end release_system
48
Part 2
User’s Guide
49
Part 2
A complete set of task instructions and problem-solving guidelines, with a
few basic concepts.
50
2
Plugging into a Target System
51
Plugging the Emulator into a Target System
For information about plugging the emulator into a target system,
refer to the 6833x Installation/Service/Terminal Interface Manual.
That manual describes connecting these emulators to a target system
using an AMP 132-pin connector, a PQFP (plastic quad flat pack)
cable, or a 132-pin to PQFP adapter.
•
•
•
•
M68331—Model HP 64782B
M68332—Model HP 64782C
M68334—Model HP 64782E
M68335—Model HP 64782F
It also describes connecting these emulators to a target system
directly using a PQFP cable:
• M68333—Model HP 64782D
• M68336—Model HP 64782G
• M68337—Model HP 64782H
CAUTION
Possible Damage to the Emulator Probe. The emulator contains devices
that are susceptible to damage by static discharge. Therefore, precautionary
measures should be taken before handling the emulator probe to avoid
damaging the internal components of the emulator by static electricity.
52
3
Starting and Exiting HP 64700
Interfaces
53
Starting and Exiting HP 64700 Interfaces
You can use several types of interfaces to the same emulator at the same time
to give yourself different views into the target system.
The strength of the emulator/analyzer interface is that it lets you perform the
real-time analysis measurements that are helpful when integrating hardware
and software.
The C debugger interface (which is a separate product) lets you view the
stack backtrace and high-level data structures, and it lets you use C language
expressions and macros. These features are most useful when debugging
software.
The Software Performance Analyzer interface (which is also a separate
product) lets you make measurements that can help you improve the
performance of your software.
These interfaces can operate at the same time with the same emulator.
When you perform an action in one of the interfaces, it is reflected in the
other interfaces.
Up to 10 interface windows may be started for the same emulator. Only one C
debugger interface window and one SPA window are allowed, but you can
start multiple emulator/analyzer interface windows.
The tasks associated with starting and exiting HP 64700 interfaces are
grouped into the following sections:
• Starting the emulator/analyzer interface.
• Opening other HP 64700 interface windows.
• Exiting HP 64700 interfaces.
54
Starting the Emulator/Analyzer Interface
Before starting the emulator/analyzer interface, the emulator and interface
software must have already been installed as described in the "Installation"
chapter.
This section describes how to:
•
•
•
•
•
Start the interface.
Start the interface using the default configuration.
Run a command file on interface startup.
Display the status of emulators defined in the 64700tab.net file.
Unlock an interface that was left locked by another user.
To start the emulator/analyzer interface
• Use the emul700 <emul_name> command.
If /usr/hp64000/bin is specified in your PATH environment variable (as shown
in the "Installation" chapter), you can start the interface with the emul700
<emul_name> command. The "emul_name" is the logical emulator name
given in the HP 64700 emulator device table (/usr/hp64000/etc/64700tab.net).
It may also be the LAN address.
If you are running a window system on your host computer (for example, the
X Window System), you can run the interface in up to 10 windows. This
capability provides you with several views into the emulation system. For
example, you can display memory in one window, registers in another, an
analyzer trace in a third, and data in the fourth.
55
Starting and Exiting HP 64700 Interfaces
To start the emulator/analyzer interface
Examples
To start the emulator/analyzer interface for the 6833x emulator:
$ emul700 em6833x
The "em6833x" in the command above is the logical emulator name given in
the HP 64700 emulator device table file (/usr/hp64000/etc/64700tab.net).
# Blank lines and the rest of each line after a ’#’ character are ignored.
# The information in each line must be in the specified order, with one line
# for each HP series 64700 emulator. Use blanks or tabs to separate fields.
#
#--------+------------+-----------+------------------------------------------# Channel| Logical
| Processor | Remainder of Information for the Channel
# Type |
Name
|
Type
| (IP address for LAN connections)
#--------+------------+-----------+------------------------------------------# lan:
em6833x
m6833x
21.17.9.143
serial:
em6833x
m6833x
myhost /dev/emcom23 OFF 9600 NONE XON 2 8
If you’re currently running the X Window System, the Graphical User
Interface starts; otherwise, the Softkey Interface starts.
The status message shows that the default configuration file has been loaded.
If the command is not successful, you will be given an error message and
returned to the UNIX prompt. Error messages are described in the "Error
Messages" chapter.
56
Starting and Exiting HP 64700 Interfaces
To start the interface using the default configuration
To start the interface using the default configuration
• Use the emul700 -d <emul_name> command.
In the emul700 -d <emul_name> command, the -d option says to use the
default configuration. The -d option is ignored if the interface is already
running in another window or on another terminal.
To run a command file on interface startup
• Use the emul700 -c <cmd_file> <emul_name> command.
You can cause command files to be run upon starting the interface by using
the -c <cmd_file> option to the emul700 command.
Refer to the "Using Command Files" section in the "Entering Commands"
chapter for information on creating command files.
Examples
To start the emulator/analyzer interface and run the "startup" command file:
$ emul700 -c startup em6833x
To display the status of emulators
• Use the emul700 -l or emul700 -lv command.
The -l option of the emul700 command lists the status of all emulators
defined in the 64700tab and 64700tab.net files. If a logical emulator name is
included in the command, just the status of that emulator is listed.
You can also use the -v option with the -l option for a verbose listing of the
status information.
57
Starting and Exiting HP 64700 Interfaces
To unlock an interface that was left locked by another user
Examples
To list, verbosely, the status of the emulator whose logical name is "em6833x":
$ emul700 -lv em6833x
The information may be similar to:
em6833x - m6833x running; user = guest
description:
M6833x emulation, 512K bytes emul mem
user interfaces: xdebug, xemul, xperf, skemul, sktiming
device channel:
/dev/emcom23
Or, the information may be similar to:
em6833x - m6833x running; user = guest@myhost
description:
M6833x emulation, 512K bytes emul mem
user interfaces: xdebug, xemul, xperf, skemul, sktiming
internet address: 21.17.9.143
To unlock an interface that was left locked by another
user
• Use the emul700 -U <emul_name> command.
The -U option to the emul700 command may be used to unlock the
emulators whose logical names are specified. This command will fail if there
currently is a session in progress.
Examples
To unlock the emulator whose logical name is "em6833x":
$ emul700 -U em6833x
58
Opening Other HP 64700 Interface Windows
The File→Emul700 menu lets you open additional emulator/analyzer
interface windows or other HP 64700 interface windows if those products
have been installed (for example, the software performance analyzer (SPA)
interface and the high-level debugger interface).
This section shows you how to:
• Open additional emulator/analyzer interface windows.
• Open the high-level debugger interface window.
• Open the software performance analyzer (SPA) interface window.
To open additional emulator/analyzer windows
• To open additional Graphical User Interface windows, choose
File→Emul700→Emulator/Analyzer under Graphic Windows, or
enter the emul700 <emul_name> command in another terminal
emulation window.
• To open additional conventional Softkey Interface windows, choose
File→Emul700→Emulator/Analyzer under Terminal Windows,
or enter the emul700 -u skemul <emul_name> command in
another terminal emulation window.
You can open additional Graphical User Interface windows, or terminal
emulation windows containing the Softkey Interface. When you open an
additional window, the status line will show that this session is joining a
session already in progress, and the event log is displayed.
You can enter commands in any window in which the interface is running.
When you enter commands in different windows, the command entered in
the first window must complete before the command entered in the second
window can start. The status lines and the event log displays are updated in
all windows.
59
Starting and Exiting HP 64700 Interfaces
To open the high-level debugger interface window
To open the high-level debugger interface window
• Choose File→Emul700→High-Level Debugger ... under "Graphic
Windows", or enter the emul700 -u xdebug <emul_name>
command in another terminal emulation window.
For information on how to use the high-level debugger interface, refer to the
debugger/emulator User’s Guide.
To open the software performance analyzer (SPA)
interface window
• Choose File→Emul700→Performance Analyzer ... under
"Graphic Windows", or enter the emul700 -u xperf <emul_name>
command in another terminal emulation window.
For information on how to use the software performance analyzer, refer to
the Software Performance Analyzer User’s Guide.
60
Exiting HP 64700 Interfaces
There are several options available when exiting the HP 64700 interfaces.
You can simply close one of the open interface windows, or you can exit the
debug session by closing all the open windows. When exiting the debug
session, you can lock the emulator so that you can continue later, or you can
release the emulation system so that others may use it. This section
describes how to:
• Close an interface window.
• Exit a debug/emulation session.
To close an interface window
• In the interface window you wish to close, choose
File→Exit→Window. In the emulator/analyzer interface command
line, enter the end command with no options.
All other interface windows remain open, and the emulation session
continues, unless the window closed is the only one open for the emulation
session. In that case, closing the window ends the emulation session, but
locks the emulator so that other users cannot access it.
61
Starting and Exiting HP 64700 Interfaces
To exit a debug/emulation session
To exit a debug/emulation session
• To exit the interface, save your configuration to a temporary file, and
lock the emulator so that it cannot be accessed by other users,
choose File→Exit→Locked. In the emulator/analyzer interface
command line, enter the end locked command.
• To exit the interface and release the emulator for access by other
users, choose File→Exit→Released. In the emulator/analyzer
interface command line, enter the end release_system command.
If you exit the interface locked, the interface saves the current configuration
to a temporary file and locks the emulator to prevent other users from
accessing it. When you again start the interface with the emul700 command,
the temporary file is reloaded, and therefore, you return to the configuration
you were using when you quit the interface locked.
Also saved when you exit the interface locked are the contents of the entry
buffer and command recall buffer. These recall buffer values will be present
when you restart the interface.
In contrast, if you end released, you must have saved the current
configuration to a configuration file (if the configuration has changed), or the
changes will be lost.
62
4
Entering Commands
63
Entering Commands
When an X Window System that supports OSF/Motif interfaces is running on
the host computer, the emulator/analyzer interface is the Graphical User
Interface which provides pull-down and pop-up menus, point and click
setting of breakpoints, cut and paste, on-line help, customizable action keys
and pop-up recall buffers, etc.
The emulator/analyzer interface also provides the Softkey Interface for
several types of terminals, terminal emulators, and bitmapped displays.
When using the Softkey Interface, commands are entered from the keyboard.
When using the Graphical User Interface, the command line portion of the
interface gives you the option of entering commands in the same manner as
they are entered in the Softkey Interface. If you are using the Softkey
Interface, you can only enter commands from the keyboard using the
command line.
The menu commands in the Graphical User Interface are a subset of the
commands available when using the command line. While you have a great
deal of capability in the menu commands, you have even more in the
command line.
This chapter shows you how to enter commands in each type of
emulator/analyzer interface. The tasks associated with entering commands
are grouped into the following sections:
•
•
•
•
•
•
64
Using menus, the entry buffer, and action keys.
Using the command line with the mouse.
Using the command line with the keyboard.
Using command files.
Using pod commands.
Forwarding commands to other HP 64700 interfaces.
Using Menus, the Entry Buffer, and Action Keys
This section describes the tasks you perform when using the Graphical User
Interface to enter commands. This section describes how to:
•
•
•
•
•
•
•
•
Choose a pulldown menu item using the mouse.
Choose a pulldown menu item using the keyboard.
Use the popup menus.
Use the entry buffer.
Copy and paste to the entry buffer.
Use action keys.
Use dialog boxes.
Access help information.
To choose a pulldown menu item using the mouse
(method 1)
1 Position the mouse pointer over the name of the menu on the menu
bar.
2 Press and hold the command select mouse button to display the
menu.
3 While continuing to hold down the mouse button, move the mouse
pointer to the desired menu item. If the menu item has a cascade
menu (identified by an arrow on the right edge of the menu button),
then continue to hold the mouse button down and move the mouse
pointer toward the arrow on the right edge of the menu. The cascade
menu will display. Repeat this step for the cascade menu until you
find the desired menu item.
65
Entering Commands
To choose a pulldown menu item using the mouse (method 2)
4 Release the mouse button to select the menu choice.
If you decide not to select a menu item, simply continue to hold the mouse
button down, move the mouse pointer off of the menu, and release the mouse
button.
Some menu items have an ellipsis ("...") as part of the menu label. An ellipsis
indicates that the menu item will display a dialog or message box when the
menu item is chosen.
To choose a pulldown menu item using the mouse
(method 2)
1 Position the mouse pointer over the menu name on the menu bar.
2 Click the command select mouse button to display the menu.
3 Move the mouse pointer to the desired menu item. If the menu item
has a cascade menu (identified by an arrow on the right edge of the
menu button), then repeat the previous step and then this step until
you find the desired item.
4 Click the mouse button to select the item.
If you decide not to select a menu item, simply move the mouse pointer off of
the menu and click the mouse button.
Some menu items have an ellipsis ("...") as part of the menu label. An ellipsis
indicates that the menu item will display a dialog or other box when the
menu item is chosen.
To choose a pulldown menu item using the keyboard
• To initially display a pulldown menu, press and hold the menu select
key (for example, the "Extend char" key on a HP 9000 keyboard) and
then type the underlined character in the menu label on the menu
bar. (For example, "f" for "File". Type the character in lower case
only.)
• To move right to another pulldown menu after having initially
displayed a menu, press the right-arrow key.
• To move left to another pulldown menu after having initially
displayed a menu, press the left-arrow key.
66
Entering Commands
To choose a pulldown menu item using the keyboard
• To move down one menu item within a menu, press the down-arrow
key.
• To move up one menu item within a menu, press the up-arrow key.
• To choose a menu item, type the character in the menu item label
that is underlined. Or, move to the menu item using the arrow keys
and then press the <RETURN> key on the keyboard.
• To cancel a displayed menu, press the Escape key.
The interface supports keyboard mnemonics and the use of the arrow keys to
move within or between menus. For each menu or menu item, the
underlined character in the menu or menu item label is the keyboard
mnemonic character. Notice the keyboard mnemonic is not always the first
character of the label. If a menu item has a cascade menu attached to it, then
typing the keyboard mnemonic displays the cascade menu.
Some menu items have an ellipsis ("...") as part of the menu label. An ellipsis
indicates that the menu item will display a dialog or other box when the
menu item is chosen.
Dialog boxes support the use of the keyboard as well. To direct keyboard
input to a dialog box, you must position the mouse pointer somewhere inside
the boundaries of the dialog box. That is because the interface keyboard
focus policy is set to pointer. That just means that the window containing
the mouse pointer receives the keyboard input.
In addition to keyboard mnemonics, you can also specify keyboard
accelerators which are keyboard shortcuts for selected menu items. Refer to
the "Setting X Resources" chapter and the "Softkey.Input" scheme file for
more information about setting the X resources that control defining
keyboard accelerators.
67
Entering Commands
To choose popup menu items
To choose popup menu items
1 Move the mouse pointer to the area whose popup menu you wish to
access. (If a popup menu is available, the mouse pointer changes
from an arrow to a hand.)
2 Press and hold the select mouse button.
3 After the popup menu appears (while continuing to hold down the
mouse button), move the mouse pointer to the desired menu item.
4 Release the mouse button to select the menu choice.
If you decide not to select a menu item, simply continue to hold the mouse
button down, move the mouse pointer off of the menu, and release the mouse
button.
To place values into the entry buffer using the
keyboard
1 Position the mouse pointer within the text entry area. (An "I-beam"
cursor will appear.)
2 Enter the text using the keyboard.
To clear the entry buffer text area from beginning until end, press the
<Ctrl>u key combination.
To copy-and-paste to the entry buffer
• To copy and paste a discrete text string as determined by the
interface, position the mouse pointer over the text to copy and click
the paste mouse button.
• To specify the exact text to copy to the entry buffer: press and hold
the paste mouse button; drag the mouse pointer to highlight the text
to copy-and-paste; release the paste mouse button.
You can copy-and-paste from the display area, the status line, and from the
command line entry area.
When you position the pointer and click the mouse button, the interface
expands the highlight to include the most complete text string it considers to
be discrete. Discrete here means that the interface will stop expanding the
68
Entering Commands
To copy-and-paste to the entry buffer
highlight in a given direction when it discovers a delimiting character not
determined to be part of the string. A common delimiter would, of course, be
a space.
When you press and hold the mouse button and drag the pointer to highlight
text, the interface copies all highlighted text to the entry buffer when you
release the mouse button.
Because the interface displays absolute addresses as hex values, any copied
and pasted string that can be interpreted as a hexadecimal value (that is, the
string contains only numbers 0 through 9 and characters "a" through "f")
automatically has an "h" appended.
If you have multiple Graphical User Interface windows open, a copy-and-paste
action in any window causes the text to appear in all entry buffers in all
windows. That is because although there are a number of entry buffers being
displayed, there is actually only one entry buffer and it is common to all
windows. That means you can copy a symbol or an address from one window
and then use it in another window.
On a memory display or trace display, a symbol may not be completely
displayed because there are too many characters to fit into the width limit for
a particular column of the display. To make a symbol usable for
copy-and-paste, you can scroll the screen left or right to display all, or at least
more, of the characters from the symbol. The interface displays absolute
addresses as hex values.
Text pasted into the entry buffer replaces that which is currently there. You
cannot use paste to append text to existing text already in the entry buffer.
See "To copy-and-paste from the entry buffer to the command line entry
area" for information about pasting the contents of the entry buffer into the
command line entry area.
69
Entering Commands
To copy-and-paste to the entry buffer
Example
To paste the symbol "num_checks" into the entry buffer from the interface
display area, position the mouse pointer over the symbol and then click the
paste mouse button.
A mouse click
causes the interface
to expand the
highlight to include
the symbol
"num_checks" and
paste the symbol
into the entry
buffer.
70
Entering Commands
To recall entry buffer values
To recall entry buffer values
• Position the mouse pointer over the Recall button just to the right of
the entry buffer text area, click the mouse button to bring up the
Entry Buffer Recall dialog box, and then choose a string from that
dialog box.
The Entry Buffer Recall dialog box contains a list of entries gained during the
emulation session as well as any predefined entries present at interface
startup.
If you exit the emulation/analysis session with the interface "locked", recall
buffer values are saved and will be present when you restart the interface.
You can predefine entries for the Entry Buffer Recall dialog box and define
the maximum number of entries by setting X resources (refer to the "Setting
X Resources" chapter).
See the following "To use dialog boxes" section for information about using
dialog boxes.
To use the entry buffer
1 Place information into the entry buffer (see the previous "To place
values into the entry buffer using the keyboard", "To copy-and-paste
to the entry buffer", or "To recall entry buffer values" task
descriptions).
2 Choose the menu item, or click the action key, that uses the contents
of the entry buffer (that is, the menu item or action key that contains
"()").
71
Entering Commands
To copy-and-paste from the entry buffer to the command line entry area
To copy-and-paste from the entry buffer to the
command line entry area
1 Place text to be pasted into the command line in the entry buffer text
area.
You may do that by:
• Copying the text from the display area using the copy-and-paste feature.
• Enter the text directly by typing it into the entry buffer text area.
• Choose the text from the entry buffer recall dialog box.
2 Position the mouse pointer within the command line text entry area.
3 If necessary, reposition the cursor to the location where you want to
paste the text.
4 If necessary, choose the insert or replace mode for the command
entry area.
5 Click the command paste mouse button to paste the text in the
command line entry area at the current cursor position.
The entire contents of the entry buffer are pasted into the command line at
the current cursor position.
Although a paste from the display area to the entry buffer affects all
displayed entry buffers in all open windows, a paste from the entry buffer to
the command line only affects the command line of the window in which you
are currently working.
See "To copy-and-paste to the entry buffer" for information about pasting
information from the display into the entry buffer.
To use the action keys
1 If the action key uses the contents of the entry buffer, place the
desired information in the entry buffer.
2 Position the mouse pointer over the action key and click the action
key.
Action keys are user-definable pushbuttons that perform interface or system
functions. Action keys can use information from the entry buffer — this
makes it possible to create action keys that are more general and flexible.
72
Entering Commands
To use dialog boxes
Several action keys are predefined when you first start the Graphical User
Interface. You can use the predefined action keys, but you’ll really appreciate
action keys when you define and use your own.
Action keys are defined by setting an X resource. Refer to the chapter
"Setting X Resources" for more information about creating action keys.
To use dialog boxes
1 Click on an item in the dialog box list to copy the item to the text
entry area.
2 Edit the item in the text entry area (if desired).
3 Click on the "OK" pushbutton to make the selection and close the
dialog box, click on the "Apply" pushbutton to make the selection and
leave the dialog box open, or click on the "Cancel" pushbutton to
cancel the selection and close the dialog box.
Directory Selection
File Selection
Entry Buffer Recall
Command Recall
The graphical interface uses a number of dialog boxes for selection and recall:
Selects the working directory. You can change to a previously accessed
directory, a predefined directory, or specify a new directory.
From the working directory, you can select an existing file name or specify a
new file name.
You can recall a previously used entry buffer text string, a predefined entry
buffer text string, or a newly entered entry buffer string, to the entry buffer
text area.
You can recall a previously executed command, a predefined command, or a
newly entered command, to the command line.
The dialog boxes share some common properties:
• Most dialog boxes can be left on the screen between uses.
• Dialog boxes can be moved around the screen and do not have to be
positioned over the graphical interface window.
• If you iconify the interface window, all dialog boxes are iconified along
with the main window.
Except for the File Selection dialog box, predefined entries for each dialog
box (and the maximum number of entries) are set via X resources (refer to
the "Setting X Resources" chapter).
73
Entering Commands
To use dialog boxes
Examples
To use the File Selection dialog box:
The file filter selects
specific files.
A list of
filter-matching files
from the current
directory.
A list of files
previously accessed
during the
emulation session.
A single click on a
file name from
either list highlights
the file name and
copies it to the text
area. A double click
chooses the file and
closes the dialog box.
Label informs you
what kind of file
selection you are
performing.
Text entry area.
Text is either
copied here from
the recall list, or
entered directly.
Clicking this button
chooses the file name
displayed in the text entry
area and closes the dialog
box.
74
Entering a new file filter
and clicking this button
causes a list of files
matching the new filter to
be read from the directory.
Clicking this button
cancels the file selection
operation and closes the
dialog box.
Entering Commands
To use dialog boxes
To use the Directory Selection dialog box:
Label informs you
of the type of list
displayed.
A list of predefined
or previously
accessed
directories.
A single click on a
directory name
from the list
highlights the name
and copies it to the
text area. A double
click chooses the
directory and
closes the dialog
box.
Text entry area.
Directory name is
either copied here
from the recall list,
or entered directly.
Clicking this button
chooses the directory
displayed in the text
entry area and closes the
dialog box.
Clicking this button
chooses the directory
displayed in the text
entry area, but keeps the
dialog box on the screen
instead of closing it.
Clicking this button
cancels the directory
selection operation and
closes the dialog box.
75
Entering Commands
To access help information
To access help information
1 Display the Help Index by choosing Help→General Topic... or
Help→Command Line....
2 Choose a topic of interest from the Help Index.
The Help Index lists topics covering operation of the interface as well other
information about the interface. When you choose a topic from the Help
Index, the interface displays a window containing the help information. You
may leave the window on the screen while you continue using the interface.
76
Using the Command Line with the Mouse
When using the Graphical User Interface, the command line portion of the
interface gives you the option of entering commands in the same manner as
they are entered in the Softkey Interface. Additionally, the graphical
interface makes the softkey labels pushbuttons so commands may be entered
using the mouse.
If you are using the Softkey Interface, using the command line with the
keyboard is the only way to enter commands.
This section describes how to:
•
•
•
•
•
Turn the command line off/on.
Enter commands.
Edit commands.
Recall commands.
Display the help window.
To turn the command line on or off
• To turn the command line on or off using the pulldown menu, choose
Settings→Command Line.
• To turn the command line on or off using the status line popup menu:
position the mouse pointer within the status line area, press and hold
the select mouse button, and choose Command Line Off from the
menu.
• To turn the command line off using the command line entry area
popup menu: position the mouse pointer within the entry area, press
and hold the select mouse button, and choose Command Line Off
from the menu.
77
Entering Commands
To enter a command
Turns display of the command line area "on" or "off." On means that the
command line is displayed and you can use the softkey label pushbuttons, the
command return and recall pushbuttons, and the cursor pushbuttons for
command line editing. Off means the command line is not displayed and you
use only the pulldown menus and the action keys to control the interface.
The command line area begins just below the status line and continues to the
bottom of the emulator/analyzer window. The status line is not part of the
command line and continues to be displayed whether the command line is on
or off.
Choosing certain pulldown menu items while the command line is off causes
the command line to be turned on. That is because the menu item chosen
requires some input at the command line that cannot be supplied another
way.
To enter a command
1 Build a command using the softkey label pushbuttons by
successively positioning the mouse pointer on a pushbutton and
clicking the pushbutton select mouse button until a complete
command is formed.
2 Execute the completed command by clicking the Return pushbutton
(found near the bottom of the command line in the "Command"
group).
Or:
Execute the completed command using the Command Line entry
area popup menu: Position the mouse pointer in the command line
entry area; press and hold the select mouse button until the
Command Line popup menu appears; then, choose the Execute
Command menu item.
You may need to combine pushbutton and keyboard entry to form a complete
command.
A complete command is a string of softkey labels and text entered with the
keyboard. You know a command is complete when Return pushbutton is not
halfbright. The interface does not check or act on a command, however, until
the command is executed. (In contrast, commands resulting from pulldown
menu choices and action keys are supplied with the needed carriage return
as part of the command.)
78
Entering Commands
To edit the command line using the command line pushbuttons
To edit the command line using the command line
pushbuttons
• To clear the command line, click the Clear pushbutton.
• To clear the command line from the cursor position to the end of the
•
•
•
•
line, click the Clear to end pushbutton.
To move to the right one command word or token, click the Forward
pushbutton.
To move to the left one command word or token, click the Backup
pushbutton.
To insert characters at the cursor position, press the insert key to
change to insertion mode, and then type the characters to be inserted.
To delete characters to the left of the cursor position, press the
<BACKSPACE> key.
When the cursor arrives at the beginning of a command word or token, the
softkey labels change to display the possible choices at that level of the
command.
When moving by words left or right, the Forward pushbutton becomes
halfbright and unresponsive when the cursor reaches the end of the
command string. Similarly, the Backup pushbutton becomes halfbright and
unresponsive when the cursor reaches the beginning of the command.
See "To edit the command line using the mouse and the command line popup
menu" and "To edit the command line using the keyboard" for information
about additional editing operations you can perform.
To edit the command line using the command line
popup menu
• To clear the command line: position the mouse pointer within the
Command Line entry area; press and hold the select mouse button
until the Command Line popup menu appears; choose Clear Entire
Line from the menu.
• To clear the command line from the cursor position to the end of the
line: position the mouse pointer at the place where you want the
clear-to-end to start; press and hold the select mouse button until the
79
Entering Commands
To recall commands
Command Line popup menu appears; choose Clear to End of Line
from the menu.
• To position the cursor and insert characters at the cursor location:
position the mouse pointer in a non-text area of the command line
entry area; press and hold the select mouse button to display the
Command Line popup menu; choose Position Cursor, Insert Mode
from the menu; type the characters to be inserted.
• To replace characters at the current cursor location: position the
mouse pointer in a non-text area of the command line entry area;
press and hold the select mouse button to display the Command Line
popup menu; choose Position Cursor, Replace Mode from the
menu; type the characters to be inserted.
• To position the cursor and replace characters at the cursor location:
position the mouse pointer in a non-text area of the command line
entry area; press and hold the select mouse button to display the
Command Line popup menu; choose Position Cursor, Replace
Mode from the menu; type the characters to be inserted.
When the cursor arrives at the beginning of a command word or token, the
softkey labels change to display the possible choices at that level of the
command.
See "To edit the command line using the mouse and the command line
pushbuttons" and "To edit the command line using the keyboard" for
information about additional editing operations you can perform.
To recall commands
1 Click the pushbutton labeled Recall in the Command Line to display
the dialog box.
2 Choose a command from the buffer list. (You can also enter a
command directly into the text entry area of the dialog box.)
Because all command entry methods in the interface — pulldown menus,
action keys, and command line entries — are echoed to the command line
entry area, the contents of the Command Recall dialog box is not restricted
to just commands entered directly into the command line entry area.
The Command Recall dialog box contains a list of interface commands
executed during the session as well as any predefined commands present at
interface startup.
80
Entering Commands
To get help about the command line
If you exit the emulation/analysis session with the interface "locked",
commands in the recall buffer are saved and will be present when you restart
the interface.
You can predefine entries for the Command Recall dialog box and define the
maximum number of entries by setting X resources (refer to the "Setting X
Resources" chapter).
See "To use dialog boxes" for information about using dialog boxes.
To get help about the command line
• To display the help topic explaining the operation of the command
line, press the Help pushbutton located near the bottom-right corner
of the Command Line area.
81
Using the Command Line with the Keyboard
When using the command line with the keyboard, you enter commands by
pressing softkeys whose labels appear at the bottom of the screen. Softkeys
provide for quick command entry, and minimize the possibility of errors.
The command line also provides command completion. You can type the first
few characters of a command (enough to uniquely identify the command)
and then press <Tab>. The interface completes the command word for you.
Entering commands with the keyboard is easy. However, the interface
provides other features that make entering commands even easier. For
example, you can:
•
•
•
•
Enter multiple commands on one line.
Recall commands.
Edit commands.
Access on-line help information.
To enter multiple commands on one command line
• Separate the commands with semicolons (;).
More than one command may be entered in a single command line if the
commands are separated by semicolons (;).
Examples
To reset the emulator and break into the monitor:
reset ; break
82
Entering Commands
To recall commands
To recall commands
• Press <CTRL>r or <CTRL>b.
The most recent 20 commands you enter are stored in a buffer and may be
recalled by pressing <CTRL>r. Pressing <CTRL>b cycles forward through
the recall buffer.
Examples
For example, to recall and execute the command prior to the last command:
<CTRL>r <CTRL>r
To edit commands
• Use the <Left arrow>, <Right arrow>, <Tab>, <Shift><Tab>, <Insert
char>, <Back space>, <Delete char>, <Clear line>, and <CTRL>u
keys.
The <Left arrow> and <Right arrow> keys move the cursor single spaces to
the left or right.
The <Tab> and <Shift><Tab> keys move the cursor to the next or previous
word on the command line.
The <Insert char> key enters the insert editing mode and allows characters
or command options to be inserted at the cursor location.
The <Back space> key deletes the character to the left of the cursor.
The <Delete char> key deletes the character to the right of the cursor.
The <Clear line> key deletes the characters from the cursor to the end of the
line.
The <CTRL>u key erases the command line.
83
Entering Commands
To access on-line help information
To access on-line help information
• Use the help or ? commands.
To access the command line’s on-line help information, type either help or ?
on the command line. You will notice a new set of softkeys. By pressing one
of these softkeys and <RETURN>, you can display information on that topic.
Examples
To display information on the system commands:
help system_commands
Or:
? system_commands
The help information is scrolled on to the screen. If there is more than a
screen full of information, you will have to press the space bar to see the next
screen full, or the <RETURN> key to see the next line, just as you do with
the UNIX more command. After all the information on the particular topic
has been displayed (or after you press "q" to quit scrolling through
information), you are prompted to press <RETURN> to return to the
command line.
84
Using Command Files
You can execute a series of commands that have been stored in a command
file. You can create command files by logging commands while using the
interface or by using an editor on your host computer.
Once you create a command file, you can execute the file in the emulation
environment by typing the name of the file on the command line and pressing
<RETURN>.
Command files execute until an end-of-file is found or until a syntax error
occurs. You can stop a command file by pressing <CTRL>c or the <Break>
key.
This section shows you how to:
• Start logging commands to a command file.
• Stop logging commands to a command file.
• Playback (execute) a command file.
Nesting Command Files
You can nest a maximum of eight levels of command files. Nesting command
files means one command file calls another.
Comments in Command Files
Text that follows a pound sign (#), up to the end of the line, is interpreted as
a comment.
Using the wait Command
When editing command files, you can insert wait commands to pause
execution of the command file at certain points.
If you press <CTRL>c to stop execution of a command file while the "wait"
command is being executed from the command file, the <CTRL>c will
terminate the "wait" command, but will not terminate command file
execution. To do this, press <CTRL>c again.
85
Entering Commands
To access on-line help information
Use the wait measurement_complete command after changing the trace
depth. By doing this, when you copy or display the trace after changing the
trace depth, the new trace states will be available. Otherwise the new states
won’t be available.
Passing Parameters
Command files provide a convenient method for passing parameters by using
a parameter declaration line preceding the commands in the command file.
When the command file is called, the system will prompt you for current
values of the formal parameters listed.
Parameters are defined as:
Passed Parameters - These are ASCII strings passed to a command
file. Any continuous set of ASCII characters can be passed. Spaces
separate the parameters.
Formal Parameters - These are symbols preceded by an ampersand
(&), which are the variables of the command file.
The ASCII string passed (passed parameter) will be substituted for the
formal parameter when the command file is executed.
The only way to pass a parameter containing a space is to enclose the
parameter in double quotes (") or single quotes (’). Thus, to pass the
parameter HP 9000 to a command file, you can use either "HP 9000" or
’HP 9000’.
The special parameter &ArG_lEfT gets set to all the remaining parameters
specified when the command file was invoked. This lets you use variable size
parameter lists. If no parameters are left, &ArG_lEfT gets set to NULL.
Consider the command file example (named CMDFILE) shown below:
PARMS &ADDR &VALUE1
#
# modify a location or list of locations in memory
# and display the result
#
modify memory &ADDR words to &VALUE1 &ArG_lEfT
display memory &ADDR blocked words
When you execute CMDFILE, you will be prompted with:
Define command file parameter [&ADDR]
86
Entering Commands
To access on-line help information
To pass the parameter, enter the address of the first memory location to be
modified. You will then be prompted for &VALUE1. If you enter, for
example, "0,-1,20, 0ffffh, 4+5*4", the first parameter "0,-1,20," is passed to
&VALUE1 and the remaining parameters "0ffffh," and "4+5*4" are passed to
&ArG_lEfT.
You can also pass the parameters when you invoke the command file (for
example, CMDFILE 1000h 0,-1,20, 0ffffh, 4+5*4).
Other Things to Know About Command Files
You should know the following about using command files:
1 Command files may contain shell variables. Only those shell variables
beginning with "$" followed by an identifier will be supported. An
identifier is a sequence of letters, digits or underscores beginning with
a letter or underscore. The identifier may be enclosed by braces "{ }"
or entered directly following the "$" symbol. Braces are required
when the identifier is followed by a letter, a digit or an underscore that
is not interpreted as part of its name.
For example, assume a directory named /users/softkeys and the shell
variable "S". The value of "S" is "soft". By specifying the directory as
/users/${S}keys the correct result is obtained. However, if you attempt
to specify the directory as /users/$Skeys, the Softkey Interface looks
for the value of the variable "Skeys". This is not the operators
intended result. You may not get the intended result unless Skeys is
already defined to be "softkeys".
You can examine the current values of all shell variables defined in
your environment with the command "env".
2 Positional shell variables, such as $1, $2, and so on, are not supported.
Neither are special shell variables, such as $@, $*, and so on,
supported.
3 You can continue command file lines. This is done by avoiding the line
feed with a backslash (\). A line terminated by "\" is concatenated
with any following lines until a line that does not contain a backslash is
found. A line constructed in this manner is recognized and executed
as one single command line. If the last line in a command file is
terminated by "\", it appears on the command line but is not executed.
Normally, the line feed is recognized as the command terminator. The
UNIX environment recognizes three quoting characters for shell
commands which are double quotes ("), single quotes (’), and the
backslash symbol (\).
87
Entering Commands
To start logging commands to a command file
For example, the following three lines are treated as a single shell
command. The two hidden line feeds are ignored because they are
inside the two single quotes (’):
!awk ’/$/ { blanks++ }
END { print blanks }
’ an_unix_file
To start logging commands to a command file
• Choose File→Log→Record and use the dialog box to select a
command file name.
• Using the command line, enter the log_commands to <file>
command.
To stop logging commands to a command file
• Choose File→Log→Stop.
• Using the command line, enter the log_commands off command.
To playback (execute) a command file
• Choose File→Log→Playback and use the dialog box to select the
name of the command file you wish to execute.
• Using the command line, enter the name of the command file and
press <RETURN>.
If you enter the name of the command file in the command line and the
interface cannot find the command file in the current directory, it searches
the directories specified in the HP64KPATH environment variable.
To interrupt playback of a command file, press the <CTRL>c key
combination. (The mouse pointer must be within the interface window.)
If you press <CTRL>c to stop execution of a command file while the "wait"
command is being executed from the command file, the <CTRL>c will
terminate the "wait" command, but will not terminate command file
execution. To do this, press <CTRL>c again.
88
Using Pod Commands
Pod commands are Terminal Interface commands. The Terminal Interface is
the low-level interface that resides in the firmware of the emulator.
A pod command used in the Graphical User Interface bypasses the interface
and goes directly to the emulator. Because some pod commands can cause
the interface to become out-of-sync with the emulator, or even cause the
interface to terminate abnormally, they must be used with care.
For example, if you change configuration items, the actual state of the
emulator will no longer match the internal record the interface keeps about
the state of the emulator.
Issuing certain communications-related commands can prevent the interface
from communicating with the emulator and cause abnormal termination of
the interface.
However, it is sometimes necessary to use pod commands. For example, you
must use a pod command to execute the emulator’s performance
verification (pv) routine. Performance verification is an internal self-test
procedure for the emulator.
Remember that pod commands can cause trouble for the high-level interface
if they are used indiscriminately.
This section shows you how to:
• Display the pod commands screen.
• Use pod commands.
89
Entering Commands
To display the pod commands screen
To display the pod commands screen
• Choose Display→Pod Commands.
The pod commands screen displays the results of pod (Terminal Interface)
commands. To set the interface to use pod commands, choose
Settings→Pod Command Keyboard.
To use pod commands
• To begin using pod commands, choose Settings→Pod Command
Keyboard.
• To end using pod commands, click the suspend pushbutton softkey.
The Settings→Pod Command Keyboard command displays the pod
commands screen and activates the keyboard for entering pod command on
the command line.
Examples
To see a list of pod command categories available, choose Settings→Pod
Command Keyboard, and on the command line, type: help.
To see a list of pod commands that control the emulator, type: help emul.
To see details of the emulator "r" (run user code) command, type: help r.
90
Forwarding Commands to Other HP 64700
Interfaces
To allow the emulator/analyzer interface to run concurrently with other
HP 64700 interfaces like the high-level debugger and software performance
analyzer, a background "daemon" process is necessary to coordinate actions
in the interfaces.
This background process also allows commands to be forwarded from one
interface to another. Commands are forwarded using the forward command
available in the command line. The general syntax is:
forward <interface_name> "<command_string>"
This section shows you how to:
• Forward commands to the high-level debugger.
• Forward commands to the software performance analyzer.
91
Entering Commands
To forward commands to the high-level debugger
To forward commands to the high-level debugger
• Enter the forward debug "<command string>" command using the
command line.
Examples
To send the "Program Run" command to the debugger:
forward debug "Program Run"
Or, since only the capitalized key is required:
forward debug "P R"
To forward commands to the software performance
analyzer
• Enter the forward perf "<command string>" command using the
command line.
Examples
To send the "profile" command to the software performance analyzer:
forward perf "profile"
92
5
Configuring the Emulator
93
Configuring the Emulator
This chapter describes how to configure the emulator. You must map
memory whenever you use the emulator. When you plug the emulator into a
target system, you must configure the emulator so that it operates correctly
in the target system. The configuration tasks are grouped into the following
sections:
•
•
•
•
•
•
•
Using the configuration interface.
Modifying the general items and monitor setup.
Reconfiguring the emulator copy of the SIM registers.
Mapping memory.
Setting the debug/trace options.
Setting Simulated I/O
Verifying the emulator configuration.
The simulated I/O feature and configuration questions are described in the
Simulated I/O User’s Guide.
The external analyzer configuration options are described in the "Using the
External State Analyzer" chapter.
The interactive measurement configuration options are described in the
"Making Coordinated Measurements" chapter.
94
Using the Configuration Interface
This section shows you how to modify, store, and load configurations using
the emulator configuration interface.
This section shows you how to:
•
•
•
•
•
•
•
•
•
•
•
Start the configuration interface.
Modify a configuration section.
Apply configuration changes to the emulator.
Display information if the "apply" didn’t work.
Store configuration changes to a file.
Change the configuration directory context.
Display the configuration context.
Access help topics.
Access context sensitive (f1) help.
Exit the configuration interface.
Load an existing configuration file.
This section describes emulator configuration in general. The remaining
sections in this chapter describe the specific configuration options for your
emulator.
95
Configuring the Emulator
To start the configuration interface
To start the configuration interface
• Choose Modify→Emulator Config... from the emulator/analyzer
interface pulldown menu.
• Using the command line, enter the modify configuration command.
The configuration interface top-level dialog box (see the following example)
is displayed.
The configuration sections that are presented depend on the hardware and
the features of your particular emulator.
The configuration interface may be left running while you are using the
emulator/analyzer interface.
If you’re using the Softkey Interface from a terminal or terminal emulation
window, you don’t get a dialog box from which to choose configuration
sections; however, you have access to the same configuration options
through a series of configuration questions.
96
Configuring the Emulator
To start the configuration interface
Examples
The 6833x emulator configuration interface top-level dialog box is shown
below.
The menu bar.
Clicking on one of
these lines selects
a particular
configuration
section.
Clicking this button
loads configuration
changes into the
emulator.
This portion of the dialog box displays
configuration status information.
97
Configuring the Emulator
To modify a configuration section
To modify a configuration section
1 Start the emulator configuration interface.
2 Click on a section name in the configuration interface top-level dialog
box.
3 Use the section dialog box to make changes to the configuration.
As soon as you change a configuration option, the change is recorded (as
seen by the "Changes Not Loaded" message in the top level dialog).
If you’re using the Softkey Interface:
The configuration questions in the "General Items" section are the first
to be asked.
To access the questions in the "Reconfigure Internal Registers"
section, answer "yes" to the "Reconfigure internal registers?" question.
To access the questions in the "Memory Map" section, answer "yes" to
the "Modify memory configuration?" question.
To access the questions in the "Emulator Pod Settings" section,
answer "yes" to the "Modify emulator pod configuration?" question.
To access the questions in the "Debug/Trace Options" section, answer
"yes" to the "Modify debug/trace options?" question.
4 Apply the configuration changes to the emulator.
To apply configuration changes to the emulator
• Click the "Apply to Emulator" button in the top-level dialog box.
Loads the configuration changes into the emulator. Status text to the right
shows whether the load was successful.
You can apply configuration changes to the emulator at any time (even while
section dialog boxes are open). This lets you verify changes without closing
section dialog boxes.
The "Apply to Emulator" button does not store configuration changes to a file.
When you exit the configuration interface and there are configuration
changes that have not been stored, you are asked whether you want to store
the changes, exit without storing, or cancel the exit.
98
Configuring the Emulator
If apply to emulator fails
If apply to emulator fails
Choose Display→Failed Apply Info from the pulldown menu in the
top-level configuration interface window.
A window containing the following information about the failed configuration
is opened:
•
•
•
•
•
Chip select information from the emsim (emulator) resister set.
Bus interface port information from the emsim (emulator) resister set.
The expanded memory map.
Reset mode configuration information.
A complete list of the configuration inconsistencies. This list is not limited
to 16 messages as is the Display→Configuration Info→Diagnostics
command.
This information is shown in the same format as output from the various
Display→Configuration Info→ commands.
Because the old configuration is reloaded when an apply to emulator fails, the
information displayed in this window is different than the information
displayed by the Display→Configuration Info→ commands (which display
information about the configuration currently loaded).
Refer to the "Verifying the Emulator Configuration" section later in this
chapter for details on these types of configuration information displays.
99
Configuring the Emulator
To store configuration changes to a file
To store configuration changes to a file
• Choose File→Store... from the pulldown menu in the top-level
configuration interface window, and use the file selection dialog box
to name the configuration file.
• If you’re using the Softkey Interface, the last configuration question,
"Configuration file name?", lets you name the file to which
configuration information is stored. If you don’t enter a name,
configuration information is saved to a temporary file (which is
deleted when you exit the interface and release the emulation
system).
When modifying a configuration using the graphical interface, you can store
your answers at any time.
Configuration information is saved in a file with the extension ".EA". This file
is the "source", ASCII format copy of the file. (The interface will create a
temporary file with the extension ".EB" which is the "binary" or loadable copy
of the file.)
CAUTION
Do not modify configurations by editing the ".EA" files. Use the
configuration interface to modify and save configurations.
For more information on how to use dialog boxes, refer to the "To use dialog
boxes" description in the "Using Menus, the Entry Buffer, and Action Keys"
section of the "Entering Commands" chapter.
100
Configuring the Emulator
To change the configuration directory context
To change the configuration directory context
• Choose File→Directory... from the pulldown menu in the top-level
configuration interface window, and use the directory selection
dialog box to specify the new directory.
The directory context specifies the directory to which configuration files are
stored and from which they are loaded.
For more information on how to use dialog boxes, refer to the "To use dialog
boxes" description in the "Using Menus, the Entry Buffer, and Action Keys"
section of the "Entering Commands" chapter.
To display the configuration context
• Choose Display→Context... from the pulldown menu in the
top-level configuration interface window.
The current directory context and the current configuration files are
displayed in a window. Click the "Done" pushbutton when you wish to close
the window.
Figure 16
101
Configuring the Emulator
To access help topics
To access help topics
• Choose Help→General Topic... from the pulldown menu in the
top-level configuration interface window, click on a topic in the
selection dialog box, and click the "OK" button.
Figure 17
Displays help on
main items.
Displays
context-sensitive
help. Place mouse
pointer over item
and press f1.
Displays help about
the specific topic.
102
Configuring the Emulator
To access context sensitive (f1) help
To access context sensitive (f1) help
• Place the mouse pointer over the item you’re interested in, and press
the f1 key.
• Choose Help→On Item... from the pulldown menu in the top-level
configuration interface window. Notice that the mouse pointer
changes from an arrow to a question mark. Move the question mark
mouse pointer over the item you’re interested in, and click any
mouse button.
The configuration interface provides context sensitive help in the top level
dialog box and throughout the configuration section dialog boxes.
To exit the configuration interface
• Choose File→Exit... from the pulldown menu in the top-level
configuration interface window (or type <CTRL>x).
If configuration changes have not been stored to a file, a confirmation dialog
box appears, giving you the options of: storing, exiting without storing, or
canceling the exit.
To load an existing configuration file
• In the emulator/analyzer interface, choose File→Load→Emulator
Config... from the pulldown menu, and use the file selection dialog
box to specify the configuration file to be loaded.
• Using the command line, enter the load configuration <FILE>
command.
This command loads previously created and stored configuration files. You
cannot load a configuration while the configuration interface is running.
103
Modifying the General Items and Monitor Setup
To modify the general configuration items, first start the configuration
interface and access the "General Items/Monitor Setup" configuration section
(refer to the previous "Using the Configuration Interface" section).
Figure 18
To access information about the configuration items, use the online help
button or press f1 to show context-sensitive help on an individual item.
104
Configuring the Emulator
When Modifying the Microprocessor Clock Source
When Modifying the Microprocessor Clock Source
In normal mode, if you are using the emulator in ACT mode, you must use an
external target system clock. The external target system clock must be an
oscillator unless you are using the emulator in ACT mode, in which case the
external target system clock may be a crystal.
Information about plugging the emulator into a target system is included in
the 6833x Installation/Service/Terminal Interface Guide.
When Restricting the Emulator to Real-time Runs
CAUTION
If your target system circuitry is dependent on constant execution of
program code, you should restrict the emulator to real-time runs. This will
help insure that target system damage does not occur. However, remember
you can still execute the reset, break, and step commands; you should use
caution in executing these commands.
The default configuration does not restrict the emulator to real-time runs.
Therefore, the emulator might make temporary breaks into the monitor to
complete certain commands. However, you may wish to restrict runs to
real-time to prevent temporary breaks that might cause target system
problems.
When runs are restricted to real-time and the emulator is running the user
program, all commands that cause a break (except reset, break, run, and
step are refused.
105
Configuring the Emulator
When Restricting the Emulator to Real-time Runs
The following commands are not allowed when runs are restricted to
real-time and the emulator is running the user program:
•
•
•
•
•
Display/modify registers.
Display/modify target system memory.
Load/store target system memory.
Modify SIM registers.
Display emulator SIM configuration info.
If you want to enter one of these commands, you must first make an explicit
break into the monitor using the break command.
Because the emulator contains dual-port emulation memory, commands that
access emulation memory are allowed while runs are restricted to real-time.
When the restriction to real-time runs is turned off, all commands, regardless
of whether or not they require a break to the emulation monitor, are
accepted by the emulator.
106
Reconfiguring the Emulator Copy of the SIM
Registers
To modify the general configuration items, first start the configuration
interface and access the "Reconfigure Internal Registers" configuration
section (refer to the previous "Using the Configuration Interface" section).
Figure 19
To access information about the configuration items, use the online help
button or press f1 to show context-sensitive help on an individual item.
107
Configuring the Emulator
To define values for the emulator copy of the SIM registers
To define values for the emulator copy of the SIM
registers
• Click on the register field and enter the desired value. Then apply the
changes to the emulator.
Refer to the "Using the EMSIM Registers" section in the "Using the Emulator"
chapter for information on how these registers are used. Refer to the
"Concepts" chapter for conceptual information about these registers.
108
Mapping Memory
If you are using the emulator in ACT mode, emulation memory cannot be
used; therefore, this section is not applicable.
Because the emulator can use target system memory or emulation memory
(or both) in Normal mode, it is necessary to map ranges of memory so that
the emulator knows where to direct its accesses.
Up to 8 ranges of memory can be mapped, and the resolution of mapped
ranges is 256 bytes (that is, the memory ranges must begin on 256-byte
boundaries and must be at least 256 bytes in length).
Emulation memory is made available to the mapper in 64-Kbyte blocks.
When you map an address range to emulation memory, at least one block is
assigned to the range. When a block of emulation memory is assigned to a
range, it is no longer available, even though part of the block may be unused.
Direct memory access (DMA) to emulation memory is not permitted.
You should map all memory ranges used by your programs before loading
programs into memory.
In order to map memory, you must first start the configuration interface and
access the "Memory Map" configuration section (refer to the previous "Using
the Configuration Interface" section).
109
Configuring the Emulator
To define values for the emulator copy of the SIM registers
Figure 20
This section shows you how to:
•
•
•
•
•
•
Add memory map entries.
Modify memory map entries.
Delete memory map entries.
Characterize unmapped ranges.
Map memory ranges that use function codes.
Map memory ranges that use chip selects.
Using Emulation Memory to Substitute for 8-Bit Memory
Emulation memory is 16-bit wide memory. However, you can use emulation
memory to substitute for 8-bit memory.
110
Configuring the Emulator
To add memory map entries
To add memory map entries
• Choose Map→Add New Entry from the pulldown menu in the
memory map window.
• Press and hold the select mouse button and choose Add New Entry
from the popup menu.
• Using the command line (Settings→Command Line), enter the
address range, memory type, and possibly a blk1-blk6 attribute for
emulation memory ranges.
You can characterize memory ranges as emulation RAM, emulation ROM,
target system RAM, target system ROM, or as guarded memory.
Guarded memory accesses will cause emulator execution to break into the
monitor program.
Writes to locations characterized as ROM will cause emulator execution to
break into the monitor program if the "Break processor on write to ROM"
trace/debug configuration option is enabled.
Writes to emulation ROM will be inhibited. Writes by user code to target
system memory locations mapped as ROM or guarded memory will result in a
break to the monitor but are not inhibited (that is, the write still occurs).
111
Configuring the Emulator
To add memory map entries
The first two methods of mapping memory ranges give you the following
dialog box.
Figure 21
The starting address of
the range to be added.
The ending address of
the range to be added.
Specifies the increment
value for the "+" and "-"
buttons of the start and
end address fields.
Subtract or add the
address increment value.
The end address is
changed by the same
amount, thereby moving
the block of memory.
Change only the end
address, thereby changing
the size of the block of
memory.
Multiply or divide the
increment value by 2.
Adds the defined range
to the memory map.
These buttons may be held
down to repeat the action.
Closes the dialog box.
112
Configuring the Emulator
To add memory map entries
Examples
Consider the following section summary from the linker load map output
listing.
SECTION SUMMARY
--------------SECTION
0
env
prog
const
lib
libc
libm
mon
envdata
data
idata
udata
libdata
libcdata
mondata
stack
heap
ATTRIBUTE
START
END
LENGTH
ALIGN
ABSOLUTE DATA
NORMAL
NORMAL CODE
NORMAL CODE
NORMAL ROM
NORMAL CODE
NORMAL CODE
00000000
00000030
00000400
00000FC2
00001A8A
00001AD0
00002664
00004882
00004882
00007000
00007156
00007722
00007722
00007724
00007728
00008154
0000B000
00013000
0000002F
00000030
00000FC0
00001A89
00001ACF
00002663
00004881
00004882
000049CB
00007155
00007721
00007722
00007722
00007727
00008153
00008177
00012FFF
00016FFD
00000030
00000000
00000BC1
00000AC8
00000046
00000B94
0000221E
00000000
0000014A
00000156
000005CC
00000000
00000000
00000004
00000A2C
00000024
00008000
00003FFE
0
2
2
2
2
2
2
0
2
4
2
0
0
4
2
2
4
4
NORMAL CODE
NORMAL DATA
NORMAL DATA
NORMAL
NORMAL
NORMAL
NORMAL
NORMAL
DATA
DATA
DATA
DATA
DATA
(BYTE)
(WORD)
(WORD)
(WORD)
(WORD)
(WORD)
(WORD)
(BYTE)
(WORD)
(LONG)
(WORD)
(BYTE)
(BYTE)
(LONG)
(WORD)
(WORD)
(LONG)
(LONG)
Notice the ABSOLUTE DATA, CODE, and ROM sections occupy locations 0
through 49CBH. Because the contents of these sections will eventually
reside in target system ROM, this area should be characterized as ROM when
mapped. This will prevent these locations from being written over
accidentally. If breaks on writes to ROM are enabled, instructions that
attempt to write to these locations will cause emulator execution to break
into the monitor.
Also, notice the DATA sections occupy locations 7000H through 8177H and
0B000H through 16FFDH. Since these sections are written to, they should
be characterized as RAM when mapped.
113
Configuring the Emulator
To add memory map entries
Using the command line (choose Settings→Command Line from the
pulldown menu in the memory map window), enter the following commands
to map memory for the above program.
delete all
<addr> 0 thru 4fffh emulation rom
7000h thru 8fffh emulation ram
0b000h thru 16fffh emulation ram
The resulting memory mapper screen is shown below.
To exit out of the memory mapper, enter:
end
114
Configuring the Emulator
To modify memory map entries
To modify memory map entries
• Choose Map→Modify Entry from the pulldown menu in the
memory map window and select the entry number from the cascade
menu.
• Position the mouse pointer over the entry you wish to modify, press
and hold the select mouse button and choose Modify Entry from the
popup menu.
These commands open the same dialog box that is used for adding memory
map entries, except it lets you modify the current settings for the entry.
In order to modify an entry when using the command line, you must delete
the entry and add a new entry.
Examples
To modify a memory map entry using the popup menu:
Click and hold the
mouse select
button to bring up
the menu. Then
choose the Modify
Entry item to
modify the
highlighted memory
map entry.
Use the dialog box to modify the entry, and click the "Modify" button to add
the modified range to the memory map.
115
Configuring the Emulator
To delete memory map entries
To delete memory map entries
• Choose Map→Delete Entry from the pulldown menu in the
memory map window and select the entry number from the cascade
menu.
• Position the mouse pointer over the entry you wish to delete, press
and hold the select mouse button and choose Delete Entry from the
popup menu.
• Using the command line, enter the delete <ENTRY#> command.
Note that programs should be reloaded after deleting mapper terms. The
memory mapper may re-assign blocks of emulation memory after the
insertion or deletion of mapper terms.
To characterize unmapped ranges
• Choose Map→Default Memory Type from the pulldown menu in
the memory map window and select the memory type from the
cascade menu.
• Using the command line, enter the default <memory_type>
command.
Unmapped memory ranges are treated as target system RAM by default.
Unmapped memory ranges cannot be characterized as emulation memory.
116
Configuring the Emulator
To map memory ranges that use function codes
To map memory ranges that use function codes
• Specify function codes with address ranges when mapping memory.
The function code can be:
•
•
•
•
•
•
•
•
•
None
supervisor
supervisor program
supervisor data
user
user program
user data
program
data
Function code information lets you further characterize memory blocks as
supervisor, user, supervisor program, supervisor data, user program, or user
data space. When you specify function codes with mapper ranges, the 6833x
function code outputs (FC0, FC1, FC2) are decoded to select particular
blocks of memory. Function codes let you overlay address ranges. When you
specify function codes as part of the address, the emulator memory mapper
knows that overlaid blocks are different memory regions and will define them
separately.
If you specify a function code when mapping a range of memory, you must
include the function code when referring to locations in that range. If you
don’t include the function code, an "ambiguous address" error message is
displayed.
If you use different function codes, it’s possible to map address ranges that
overlap. When address ranges with different function codes overlap, you
must load a separately linked module for the space associated with each
function code. The modules are linked separately because linker errors
occur when address ranges overlap.
When address ranges are mapped with different function codes, and there
are no overlapping ranges, your program modules may exist in one absolute
file. However, you have to use multiple load commands—one for each
function code specifier. This is necessary to load the various sections of the
absolute file into the appropriate function code qualified memory ranges.
117
Configuring the Emulator
To map memory ranges that use function codes
When you do this, be sure that all address ranges not mapped (that is, the
"other" memory mapper term) are mapped as target RAM. When "other" is
mapped as guarded, guarded memory access errors (from the attempt to load
the absolute file sections that are outside the specified function code range)
can prevent the absolute file sections that are inside the specified function
range from being loaded.
Attributes include:
• Interlock to target DSACK—locking emulation memory timing to target
system memory timing.
• Emulate 8 bit wide memory—setting the memory to 8 bits for processors
that cannot handle the 16-bit emulation memory width.
• Combined—combining both attributes listed above.
Examples
Suppose you’re developing a system with the following characteristics:
•
•
•
•
•
•
Input port at 100 hex.
Output port at 400 hex.
Supervisor program from 1000 through 1fff hex.
Supervisor data from 2000 through 2fff hex.
User program from 3000 through 3fff hex.
User data from 3000 through 3fff hex.
The last two terms have address ranges that overlap. You can use function
codes to cause these terms to be mapped to different blocks of memory.
Suppose also that the only things that exist in your target system at this time
are the input and output ports and some control logic; no memory is
available. You can reflect this by mapping the I/O ports to target system
memory space and the rest of memory to emulation memory space by
entering the following mapper commands using the command line
(Settings→Command Line):
0h thru 0fffh target ram
1000h thru 1fffh supervisor program emulation rom
2000h thru 2fffh supervisor data emulation ram
3000h thru 3fffh user program emulation ram
3000h thru 3fffh user data emulation ram
118
Configuring the Emulator
To map memory ranges that use function codes
After the configuration is saved, display memory at 1000H by entering the
following command (using the command line):
display memory 1000h blocked bytes
Notice that an "ambiguous address" error occurs because the "sp" function
code was not included with the address. The following command should
have been entered instead:
display memory fcode sp 1000h blocked bytes
119
Setting the Debug/Trace Options
To set the debug/trace options, you must start the configuration interface
and access the "Debug/Trace Options" configuration section (refer to the
"Using the Configuration Interface" section).
Figure 22
To access information about the configuration items, use the online help
button or press f1 to show context-sensitive help on an individual item.
When Configuring Breaks on Writes to ROM
When breaks on writes to ROM are enabled, the emulator will break into the
emulation monitor whenever the user program attempts to write to a memory
region mapped as ROM. The emulator will prevent the processor from
actually writing to memory mapped as emulation ROM; however, it cannot
prevent writes to target system RAM locations which are mapped as ROM,
even though the write to ROM break is enabled.
When breaks on writes to ROM are disabled, the emulator will not break to
the monitor upon a write to ROM. The emulator will not modify the memory
location if it is in emulation ROM.
120
Configuring the Emulator
When Configuring the Trace Mode
When Configuring the Trace Mode
"Background" specifies that the analyzer trace only background cycles. This
is rarely a useful setting for user program debugging.
"Both" specifies that the analyzer trace both foreground and background
cycles. You may wish to specify this option so that all emulation processor
cycles may be viewed in the trace display.
"Foreground" specifies that the analyzer trace only foreground cycles.
121
Setting Simulated I/O
To set the debug/trace options, you must start the configuration interface
and access the "Simulated I/O " configuration section (refer to the "Using the
Configuration Interface" section).
Figure 23
To access information about the configuration items, use the online help
button or press f1 to show context-sensitive help on an individual item.
122
Verifying the Emulator Configuration
The 6833x emulator lets you display information about emulator
configuration and processor SIM programming. You can also display
information about inconsistencies found in the emulator configuration.
This section shows you how to:
•
•
•
•
•
•
Display information about chip selects.
Display information about bus interface ports.
Display information about the memory map.
Display information about the reset mode configuration.
Display assembly language instructions for setting up the SIM.
Check for configuration inconsistencies.
To display information about chip selects
• Choose Display→Configuration Info→Chip Selects (SIM) or
Display→Configuration Info→Chip Selects (Emulator SIM)
from either the configuration interface the emulator/analyzer
interface pulldown menu.
• Using the emulator/analyzer interface command line, enter the
display configuration_info sim_chip_selects or display
configuration_info emsim_chip_selects command.
These commands let you display chip select information from the sim
(processor) register set or the emsim (emulator) register set.
The resulting display shows how the chip select is assigned, the base address,
the block size, and other information from the option register.
Examples
To display information about chip selects from the sim (processor) register
set, choose Display→Configuration Info→Chip Selects (SIM) from
either the configuration interface the emulator/analyzer interface pulldown
menu.
123
Configuring the Emulator
To display information about chip selects
The following table reflects the current values in the sim (processor)
register set.
Select
-----CSBOOT
CS0
CS1
CS2
CS3
CS4
CS5
CS6
CS7
CS8
CS9
CS10
Assign
-----16-bit
16-bit
16-bit
16-bit
16-bit
16-bit
16-bit
16-bit
16-bit
16-bit
16-bit
16-bit
Base
------000000H
000000H
000000H
000000H
000000H
000000H
000000H
000000H
000000H
000000H
000000H
000000H
Size
---1M
2K
2K
2K
2K
2K
2K
2K
2K
2K
2K
2K
Mode
----async
async
async
async
async
async
async
async
async
async
async
async
Byte
----both
off
off
off
off
off
off
off
off
off
off
off
R/W
----both
rsvd
rsvd
rsvd
rsvd
rsvd
rsvd
rsvd
rsvd
rsvd
rsvd
rsvd
Strb
---AS
AS
AS
AS
AS
AS
AS
AS
AS
AS
AS
AS
DSACK
-----13wait
0wait
0wait
0wait
0wait
0wait
0wait
0wait
0wait
0wait
0wait
0wait
Space
----s/u
cpu
cpu
cpu
cpu
cpu
cpu
cpu
cpu
cpu
cpu
cpu
IPL
-----all
all
all
all
all
all
all
all
all
all
all
all
AVEC
---off
off
off
off
off
off
off
off
off
off
off
off
To display information about chip selects from the emsim (emulator) register
set, choose Display→Configuration Info→Chip Selects (Emulator
SIM) from either the configuration interface the emulator/analyzer interface
pulldown menu.
The following table reflects the current values in the emsim register set.
These values will be loaded into the processor when the monitor is
entered from emulation reset.
Select
-----CSBOOT
CS0
CS1
CS2
CS3
CS4
CS5
CS6
CS7
CS8
CS9
CS10
Assign
-----16-bit
16-bit
16-bit
16-bit
16-bit
16-bit
16-bit
16-bit
16-bit
16-bit
16-bit
16-bit
Base
------060000H
000000H
000000H
000000H
000000H
000000H
FFE800H
080000H
080000H
010000H
010000H
010000H
124
Size
---128K
64K
64K
64K
2K
2K
64K
128K
128K
64K
64K
64K
Mode
----async
async
async
async
async
async
async
async
async
async
async
async
Byte
----both
upper
lower
both
off
off
both
lower
upper
both
lower
upper
R/W
----read
write
write
read
rsvd
rsvd
both
both
both
read
write
write
Strb
---AS
AS
AS
AS
AS
AS
AS
AS
AS
AS
AS
AS
DSACK
-----2wait
0wait
0wait
0wait
0wait
0wait
0wait
3wait
3wait
1wait
0wait
0wait
Space
----s/u
s/u
s/u
s/u
cpu
cpu
s/u
s/u
s/u
s/u
s/u
s/u
IPL
-----all
level4
level7
level7
all
all
level7
all
all
all
all
all
AVEC
---off
off
off
off
off
off
on
off
off
off
off
off
Configuring the Emulator
To display information about bus interface ports
To display information about bus interface ports
• Choose Display→Configuration Info→Bus Interface Ports
(SIM) or Display→Configuration Info→Bus Interface Ports
(Emulator SIM) from either the configuration interface the
emulator/analyzer interface pulldown menu.
• Using the emulator/analyzer interface command line, enter the
display configuration_info bus_interface_ports or display
configuration_info embus_interface_ports command.
These commands let you display chip select information from the sim
(processor) register set or the emsim (emulator) register set.
The resulting display shows the pin assignments for the C, E, and F ports.
Examples
To display information about bus interface ports from the sim (processor)
register set, choose Display→Configuration Info→Bus Interface Ports
(SIM) from either the configuration interface the emulator/analyzer
interface pulldown menu.
The following table reflects the current values in the sim (processor)
register set that relate to the external bus interface.
Bit 7
----CS10
Bit 6
----CS9
Bit 5
----CS8
Bit 4
----CS7
Bit 3
----CS6
Bit 2
----CS5
Bit 1
----CS4
Port E assign
data = FFH
SIZ1
SIZ0
AS
DS
RMC
AVEC
DSACK1 DSACK0
Port F assign
data = FFH
IRQ7
IRQ6
IRQ5
IRQ4
IRQ3
IRQ2
IRQ1
Port C assign
data = 7FH
Bit 0
----CS3
MODCK
125
Configuring the Emulator
To display information about the memory map
To display information about bus interface ports from the emsim (emulator)
register set, choose Display→Configuration Info→Bus Interface Ports
(Emulator SIM) from either the configuration interface the
emulator/analyzer interface pulldown menu.
The following table reflects the current values in the emsim register set
that relate to the external bus interface. These values will be loaded
into the processor when the monitor is entered from emulation reset.
Bit 7
----CS10
Bit 6
----CS9
Bit 5
----CS8
Bit 4
----CS7
Bit 3
----CS6
Bit 2
----CS5
Bit 1
----CS4
Port E assign
data = FFH
SIZ1
SIZ0
AS
DS
RMC
AVEC
DSACK1 DSACK0
Port F assign
data = FFH
IRQ7
IRQ6
IRQ5
IRQ4
IRQ3
IRQ2
IRQ1
Port C assign
data = 00H
Bit 0
----CS3
MODCK
To display information about the memory map
• Choose Display→Configuration Info→Memory Map from either
the configuration interface the emulator/analyzer interface pulldown
menu.
• Using the emulator/analyzer interface command line, enter the
display configuration_info memory_map command.
When in the memory map section of the emulator configuration, the ranges of
memory that have been mapped are displayed.
The memory map configuration information shows detailed information about
the memory map and how actual mapper resources are allocated due to the
current programming of the chip selects in the EMSIM and EMRAM register
sets.
When the emulator automatically expands the memory map to assign actual
mapper resources, it looks at ranges that have been mapped during emulator
configuration.
126
Configuring the Emulator
To display information about the memory map
Examples
To display information about the memory map and its correlation with RAM,
choose Display→Configuration Info→Memory Map from either the
configuration interface the emulator/analyzer interface pulldown menu.
Notice the entry labeled "info". Ranges with this label do not take up mapper
resources; they just show information about the processor’s address space.
Another "info" entry will be listed if the internal RAM is enabled with the
EMRAMBAR register.
127
Configuring the Emulator
To display information about the reset mode configuration
To display information about the reset mode
configuration
• Choose Display→Configuration Info→Reset Mode Value from
either the configuration interface the emulator/analyzer interface
pulldown menu.
• Using the emulator/analyzer interface command line, enter the
display configuration_info reset_mode command.
Examples
To display information about the reset mode configuration, choose
Display→Configuration Info→Reset Mode Value from either the
configuration interface the emulator/analyzer interface pulldown menu.
The reset mode configuration value will be driven by the emulator. The value
of 0FFFH was generated automatically by the emulator to be compatible with
the current values in the emsim register set. It will be regenerated
if any values in that register set change.
Data Bit
-------0
1
2
3
4
5
6
7
8
9
11
Value
----1
1
1
1
1
1
1
1
1
1
1
Selects
------------------CSBOOT 16-bit
CS0, CS1, CS2
CS3, CS4, CS5
CS6
CS7
CS8
CS9
CS10
Bus Control Lines
IRQ7-1, MODCK
Slave Mode Disabled
128
Comment
---------------------------
Configuring the Emulator
To display assembly language instructions for setting up the SIM
To display assembly language instructions for setting
up the SIM
• Choose Display→Configuration Info→Initialization Source
Code from either the configuration interface the emulator/analyzer
interface pulldown menu.
• Using the emulator/analyzer interface command line, enter the
display configuration_info init_source_code command.
This command displays the assembly language program that will initialize the
processor as defined by the current EMSIM register contents.
Examples
To display assembly language instructions for setting up the SIM, choose
Display→Configuration Info→Initialization Source Code from either
the configuration interface the emulator/analyzer interface pulldown menu.
* Configuration Program for
CHIP 68332
MOVE.L #$fff000,A0
MOVE.W #$60cf,($0a00,A0)
MOVE.L #$fff000,A0
MOVE.W #$3f08,($0a04,A0)
MOVE.B #$ff,($0a11,A0)
MOVE.B #$00,($0a15,A0)
MOVE.B #$ff,($0a17,A0)
MOVE.B #$ff,($0a19,A0)
MOVE.B #$00,($0a1d,A0)
MOVE.B #$ff,($0a1f,A0)
MOVE.B #$80,($0a21,A0)
MOVE.W #$0000,($0a24,A0)
MOVE.W #$000f,($0a22,A0)
MOVE.B #$00,($0a41,A0)
MOVE.W #$3fff,($0a44,A0)
MOVE.W #$03ff,($0a46,A0)
MOVE.W #$0604,($0a48,A0)
MOVE.W #$68b0,($0a4a,A0)
MOVE.W #$0003,($0a4c,A0)
MOVE.W #$5038,($0a4e,A0)
MOVE.W #$0003,($0a50,A0)
MOVE.W #$303e,($0a52,A0)
MOVE.W #$0003,($0a54,A0)
MOVE.W #$683e,($0a56,A0)
;set
;set
;set
;set
;set
;set
;set
;set
;set
;set
;set
;set
;set
;set
;set
;set
;set
;set
;set
;set
;set
;set
;set
mcr
A0 for register location
syncr
porte
ddre
pepar
portf
ddrf
pfpar
sypcr
pitr
picr
portc
cspar0
cspar1
csbrbt
csorbt
csbr0
csor0
csbr1
csor1
csbr2
csor2
129
Configuring the Emulator
To check for configuration inconsistencies
MOVE.W
MOVE.W
MOVE.W
MOVE.W
MOVE.W
MOVE.W
MOVE.W
MOVE.W
MOVE.W
MOVE.W
MOVE.W
MOVE.W
MOVE.W
MOVE.W
MOVE.W
MOVE.W
MOVE.W
MOVE.W
#$0000,($0a58,A0)
#$0000,($0a5a,A0)
#$0000,($0a5c,A0)
#$0000,($0a5e,A0)
#$ffeb,($0a60,A0)
#$783f,($0a62,A0)
#$0804,($0a64,A0)
#$38f0,($0a66,A0)
#$0804,($0a68,A0)
#$58f0,($0a6a,A0)
#$0103,($0a6c,A0)
#$6870,($0a6e,A0)
#$0103,($0a70,A0)
#$3030,($0a72,A0)
#$0103,($0a74,A0)
#$5030,($0a76,A0)
#$0100,($0b00,A0)
#$0001,($0b04,A0)
;set
;set
;set
;set
;set
;set
;set
;set
;set
;set
;set
;set
;set
;set
;set
;set
;set
;set
csbr3
csor3
csbr4
csor4
csbr5
csor5
csbr6
csor6
csbr7
csor7
csbr8
csor8
csbr9
csor9
csbr10
csor10
rammcr
rambar
To check for configuration inconsistencies
• Choose Display→Configuration Info→Diagnostics from the
configuration interface or the emulator interface pulldown menu.
• Using the emulator/analyzer interface command line, enter the
display configuration_info diagnostics command.
This command:
• Checks for inconsistencies between the mapper and the EMSIM registers.
• Checks for inconsistencies between the reset mode configuration value
and the EMSIM registers.
• Compares corresponding values in the SIM and EMSIM register sets.
This command identifies errors that result from inconsistencies between
related configuration values. These errors should be resolved in order for the
emulator to operate correctly.
This command also provides status and warning messages about expectations
and limitations of the emulator of which you should be aware.
If no messages are returned, no inconsistencies are found in the emulator
configuration.
130
Configuring the Emulator
To check for configuration inconsistencies
Examples
!STATUS
!STATUS
!STATUS
!ERROR
!ERROR
!ERROR
!ERROR
!ERROR
!ERROR
To check for inconsistencies between the configuration and the EMSIM
registers, choose Display→Configuration Info→Diagnostics from either
the configuration interface the emulator/analyzer interface pulldown menu.
170! CS0 is set for block size of 1M byte but A19 is not available
170! CS0 is DS qualified and SIZx not available; max clock is 8 MHz
171! CS1 is configured for fast termination; max clock is 8 MHz
172! CS2 is used in map spec but not defined as a chip select
173! CS3 is used in map spec but not enabled (byte or R/W)
174! Need FC2 or chip select for map entry #3
175! No chip selects programmed for address range of map entry #4
176! CSBOOT width (8/16 bit) in reset config conflicts with emcspar0
178! Need DSACK1 at port E or chip select DSACK for map entry #5
Another sample inconsistency check might yield:
!STATUS
!STATUS
!STATUS
!STATUS
!STATUS
!STATUS
!STATUS
!STATUS
!STATUS
!STATUS
!STATUS
!STATUS
!STATUS
!STATUS
!STATUS
!STATUS
177!
177!
177!
177!
177!
177!
177!
177!
177!
177!
177!
177!
177!
177!
177!
177!
BG at reset config, emulator expects CS1 (emsim value)
BGACK at reset config, emulator expects CS2 (emsim value)
FC0 at reset config, emulator expects CS3 (emsim value)
FC1 at reset config, emulator expects CS4 (emsim value)
FC2 at reset config, emulator expects CS5 (emsim value)
A19 at reset config, emulator expects CS6 (emsim value)
A20 at reset config, emulator expects CS7 (emsim value)
A21 at reset config, emulator expects CS8 (emsim value)
A22 at reset config, emulator expects CS9 (emsim value)
A23 at reset config, emulator expects CS10 (emsim value)
PortE0 at reset config, emulator expects DSACK0 (emsim value)
PortE1 at reset config, emulator expects DSACK1 (emsim value)
PortE4 at reset config, emulator expects DS (emsim value)
PortE5 at reset config, emulator expects AS (emsim value)
PortE6 at reset config, emulator expects SIZ0 (emsim value)
PortE7 at reset config, emulator expects SIZ1 (emsim value)
131
132
6
Using the Emulator
133
Using the Emulator
This chapter describes general tasks you may wish to perform while using the
emulator. These tasks are grouped into the following sections:
•
•
•
•
•
Using the emulation copy of the SIM (emsim) registers.
•
•
•
•
•
•
•
•
Using execution breakpoints.
Loading and storing absolute files.
Using symbols.
Using context commands.
Executing user programs (starting, stopping, stepping, and resetting the
emulator).
Displaying and modifying registers.
Displaying and modifying memory.
Displaying data values.
Changing the interface settings.
Using system commands.
Using Simulated I/O.
Using Basis Branch Analysis.
134
Using the EMSIM Registers
The 6833x processor contains a System Integration Module (SIM) which has
the external bus interface, 12 chip selects, and other circuitry to reduce
external logic in a typical microprocessor system. The SIM can be
programmed or configured in a variety of ways to suit the need of various
systems.
The HP 64782 emulator contains circuitry that accommodates the flexibility
of the SIM and maintains consistent emulation features.
Figure 24
135
Using the Emulator
In the previous figure, there is a block labeled DE-SIM module. It receives as
inputs from the 6833x:
• Port C which can be BR, BG, BGACK, FC0-2, and A19-23 or CS0-10.
• CSBOOT.
• SIZ0,1.
The DE-SIM module provides as outputs:
• Address lines A23-A19 and FC2-0 to the memory mapper and the analyzer.
• A "bus cycle in progress" signal based upon AS or chip selects.
The 6833x SIM is configured through the registers in the SIM register class;
these registers control how the 6833x uses external signal lines to access
memory.
The emulator’s DE-SIM module is configured through the registers in the
EMSIM register class. The DE-SIM module controls how the emulator
interprets the signals from the 6833x when accessing emulation memory and
passing information to the analysis trace.
Normally, the SIM and EMSIM registers should be programmed with the same
values so they will be working together.
One of the primary functions of the DE-SIM is to provide A23-A19 to the
memory mapper and analyzer so they will have the complete 24-bit address
bus. This is easy if Port C of the 6833x is programmed as address lines;
however, if any of these lines are programmed as chip selects, the
corresponding address lines are not available external to the 6833x. The chip
selects, however, have access to the full 24-bit address inside the 6833x. You
can therefore locate memory using a chip select at an address that is not
possible to decode externally. If properly programmed, the DE-SIM can use
information in the programming of the chip selects to re-create the upper
address lines. This provides the ability to map emulation memory at these
addresses and also provides a correct address in the analysis trace so that
symbolic debugging is possible.
Normally, the DE-SIM would be programmed through the EMSIM registers to
match the programming of the 6833x SIM as it will exist after all of the
boot-up configuration is complete. This can be done before the boot-up code
is run. In fact, the programming of the EMSIM registers is part of the
configuration and will be loaded along with the memory map and other
configuration items when a configuration file is loaded.
136
Using the Emulator
The default programming of the DE-SIM matches the reset values of the
6833x SIM (refer to the Motorola MC6833x User’s Manual for specific
values).
If desired, the programming of the DE-SIM can be transferred into the 6833x
SIM with the sync_sim_registers to_6833x_from_config command. This
happens automatically each time a break to the monitor from emulation reset
occurs. This ensures that the 6833x is prepared to properly access memory
when a program is downloaded to the emulator.
Alternatively, the emulator’s DE-SIM can be programmed from the 6833x SIM
with the sync_sim_registers from_6833x_to_config command. This is
useful if initialization code that configures the 6833x SIM exists, but you don’t
know what its values are. In this case, you can use the default configuration,
run from reset to execute the initialization code, and use the
sync_sim_registers from_6833x_to_config command to configure the
emulator to match the 6833x SIM.
At any time, you can verify if the SIM and DE-SIM are programmed the same
with the sync_sim_registers difference command. Any differences
between the two register sets will be listed.
It should be noted that the DE-SIM module is programmed solely from the
EMSIM register set and is therefore static with respect to the application
program. No attempt is made to update the programming of the DE-SIM by
tracking instructions that will program the 6833x SIM.
This section shows you how to:
•
•
•
•
View the SIM register differences.
Synchronize to the 6833x SIM registers.
Synchronize to the EMSIM registers.
Restore default values in the EMSIM registers.
137
Using the Emulator
To view the SIM register differences
To view the SIM register differences
• Choose Display→SIM Register Differences from the
emulator/analyzer interface pulldown menu.
• Using the emulator/analyzer interface command line, enter the
sync_sim_registers difference command.
Note that PORTE and PORTF check only output pins. Any registers that are
the same are not displayed.
Examples
To display the SIM register differences:
SIM_MCR
SYNCR
PORTE
DDRE
PEPAR
PORTF
DDRF
PFPAR
SYPCR
PICR
PITR
PORTC
CSPAR0
CSPAR1
CSBRBT
CSORBT
CSBR0
CSOR0
CSBR1
CSOR1
CSBR2
CSOR2
CSBR3
CSOR3
CSBR4
CSOR4
CSBR5
CSOR5
CSBR6
138
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
618F
3F08
00
00
FF
00
00
FF
80
000F
0000
00
3FFF
03FF
0007
7B70
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
EMSIM_MCR
EMSYNCR
EMPORTE
EMDDRE
EMPEPAR
EMPORTF
EMDDRF
EMPFPAR
EMSYPCR
EMPICR
EMPITR
EMPORTC
EMCSPAR0
EMCSPAR1
EMCSBRBT
EMCSORBT
EMCSBR0
EMCSBR0
EMCSBR1
EMCSBR1
EMCSBR2
EMCSBR2
EMCSBR3
EMCSBR3
EMCSBR4
EMCSBR4
EMCSBR5
EMCSBR5
EMCSBR6
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
4321
1F09
01
FF
00
02
FF
00
41
4321
1234
7F
15FF
0155
0011
1100
1234
4321
1100
0011
2200
0022
3300
0033
4400
0044
5500
0055
6600
Using the Emulator
To synchronize to the 6833x SIM registers
CSOR6
CSBR7
CSOR7
CSBR8
CSOR8
CSBR9
CSOR9
CSBR10
CSOR10
=
=
=
=
=
=
=
=
=
0000
0000
0000
0000
0000
0000
0000
0000
0000
EMCSBR6
EMCSBR7
EMCSBR7
EMCSBR8
EMCSBR8
EMCSBR9
EMCSBR9
EMCSBR10
EMCSBR10
=
=
=
=
=
=
=
=
=
0066
7700
0077
8800
0088
9900
0099
AA00
00AA
To synchronize to the 6833x SIM registers
• Choose Modify→SIM Registers→Copy Processor SIM to
Emulator SIM from the emulator/analyzer interface pulldown menu.
• Using the emulator/analyzer interface command line, enter the
sync_sim_registers from_6833x_to_config command.
The contents of the 6833x SIM registers are copied to the emulation copy of
the SIM registers.
To synchronize to the EMSIM registers
• Choose Modify→SIM Registers→Copy Emulator SIM to
Processor SIM from the emulator/analyzer interface pulldown menu.
• Using the emulator/analyzer interface command line, enter the
sync_sim_registers to_6833x_from_config command.
The contents of the emulation copy of the SIM registers are copied to the
6833x SIM registers.
To restore default values in the EMSIM registers
• Choose Modify→SIM Registers→Default Emulator SIM from the
emulator/analyzer interface pulldown menu.
• Using the emulator/analyzer interface command line, enter the
sync_sim_registers default_config command.
The contents of the EMSIM register set are restored to their power-up values.
139
Loading and Storing Absolute Files
This section describes the tasks related to loading absolute files into the
emulator and storing memory contents into absolute files. This section
shows you how to:
• Load absolute files into memory.
• Load absolute files without symbols.
• Store memory contents into absolute files.
To load absolute files
• Choose File→Load→Executable and use the dialog box to select
the absolute file.
• Using the command line, enter the load <absolute_file> command.
You can load absolute files into emulation or target system memory. You can
load IEEE-695 format absolute files. You can also load HP format absolute
files. The store memory command creates HP format absolute files.
If you wish to load only that portion of the absolute file that resides in
memory mapped as emulation RAM or ROM, use the command line’s
load emul_mem syntax.
If you wish to load only the portion of the absolute file that resides in memory
mapped as target RAM, use the command line’s load user_mem syntax.
If you want both emulation and target memory to be loaded, do not specify
emul_mem or user_mem.
140
Using the Emulator
To load absolute files without symbols
Examples
To load the demo program absolute file and the configuration file, enter the
following commands:
load configuration Config.EA
load ecs.x
To load only portions of the absolute file that reside in target system RAM:
load user_mem absfile
To load only portions of the absolute file that reside in emulation memory:
load emul_mem absfile
To load absolute files without symbols
• Choose File→Load→Program Only and use the dialog box to
select the absolute file.
• Using the command line, enter the load <absolute_file>
nosymbols command.
141
Using the Emulator
To store memory contents into absolute files
To store memory contents into absolute files
• Using the command line, enter the store memory <expression>
command.
You can store emulation or target system memory contents into HP format
absolute files on the host computer. Absolute files are stored in the current
directory. If no extension is given for the absolute file name, it is given a ".X"
extension.
Examples
To store the contents of memory locations 900H through 9FFH to an absolute
file on the host computer named "absfile":
store memory 900h thru 9ffh to absfile
After the command above, a file named "absfile.X" exists in the current
directory on the host computer.
142
Using Symbols
If symbol information is present in the absolute file, it is loaded along with the
absolute file (unless you use the nosymbols option). Both global symbols and
symbols that are local to a program module can be displayed.
Long symbol names can be truncated in the symbols display; however, you
can increase the width of the symbols display by starting the interface with
more columns (refer to the "Setting X Resources" chapter). This section
describes how to:
•
•
•
•
•
Load symbols.
Display global symbols.
Display local symbols.
Display a symbol’s parent symbol.
Copy-and-paste a full symbol name to the entry buffer.
To load symbols
• Choose File→Load→Symbols Only and use the dialog box to select
the absolute file.
• Using the command line, enter the load symbols <absolute_file>
command.
Unless you use the nosymbols option when loading absolute files, symbols are
loaded automatically. However, if you did use the nosymbols option when
loading the absolute file, you can load the symbols without loading the
absolute file again.
This option is particularly useful for loading symbols for files located in target
ROM so that you can use symbols with that code.
Examples
To load symbols from the demo program:
load symbols ecs.x
143
Using the Emulator
To display global symbols
To display global symbols
• Choose Display→Global Symbols.
• Using the command line, enter the display global_symbols
command.
Listed are: address ranges associated with a symbol, the segment the symbol
is associated with, and the offset of that symbol within the segment.
If there is more than a screen full of information, you can use the up arrow,
down arrow, <NEXT>, or <PREV> keys to scroll the information up or down
on the display.
Examples
To display global symbols in the demo program:
display global_symbols
144
Using the Emulator
To display local symbols
To display local symbols
• When displaying symbols, position the mouse pointer over a symbol
on the symbol display screen and click the select mouse button.
• When displaying symbols, position the mouse pointer over the
symbol, press and hold the select mouse button, and choose Display
Local Symbols from the popup menu.
• Position the mouse cursor in the entry buffer and enter the module
whose local symbols are to be displayed; then, choose
Display→Local Symbols ().
• Using the command line, enter the display local_symbols_in
<module> command.
To display the address ranges associated with the high-level program’s source
file line numbers, you must display the local symbols in the file.
145
Using the Emulator
To display local symbols
Examples
To use the Symbols Display popup menu:
View the local
symbols associated
with the highlighted
symbol by choosing
this menu item.
146
Using the Emulator
To display local symbols
Using the command line:
To display local symbols in a module:
display local_symbols_in update_sys
To display local symbols in a procedure:
display local_symbols_in update_sys.save_points
147
Using the Emulator
To display local symbols
To display address ranges associated with the high-level source line numbers:
display local_symbols_in
update_sys."update_sys.c":
148
Using the Emulator
To display a symbol’s parent symbol
To display a symbol’s parent symbol
• When displaying symbols, position the mouse pointer over the
symbol, press and hold the select mouse button, and choose Display
Parent Symbols from the popup menu.
Examples
View the parent
symbol associated
with the highlighted
symbol by choosing
this menu item.
149
Using the Emulator
To copy-and-paste a full symbol name to the entry buffer
To copy-and-paste a full symbol name to the entry
buffer
• When displaying symbols, position the mouse pointer over the
symbol, press and hold the select mouse button, and choose Cut Full
Symbol Name from the popup menu.
Once the full symbol name is in the entry buffer, you can use it with pulldown
menu items or paste it to the command line area.
By cutting the full symbol name, you get the complete names of symbols that
have been truncated. Also, you are guaranteed of specifying the proper
scope of the symbol.
Examples
Copy the full name
of the highlighted
symbol to the entry
buffer by choosing
this menu item.
150
Using Context Commands
The commands in this section display and control the directory and symbol
contexts for the interface.
Directory context. The current directory context is the directory
accessed by all system references for files—primarily load, store, and
copy commands—if no explicit directory is mentioned. Unless you have
changed directories since beginning the emulation session, the current
directory context is that of the directory from which you started the
interface.
Symbol context. The emulator/analyzer interface and the Symbol
Retrieval Utilities (SRU) together support a current working symbol
context. The current working symbol represents an enclosing scope for
local symbols. If symbols have not been loaded into the interface, you
cannot display or change the symbol context.
This section shows you how to:
• Display the current directory and symbol context.
• Change the directory context.
• Change the current working symbol context.
151
Using the Emulator
To display the current directory and symbol context
To display the current directory and symbol context
• Choose Display→Context.
• Using the command line, enter the pwd and pws commands.
The current directory and working symbol contexts are displayed, and also
the name of the last executable file from which symbols were loaded.
Example
Directory context.
Executable from
which symbols were
last loaded.
Symbol context.
To change the directory context
• Choose File→Context→Directory and use the dialog box to select
a new directory.
• Using the command line, enter the cd <directory> command.
The Directory Selection dialog box contains a list of directories accessed
during the emulation session as well as any predefined directories present at
interface startup.
You can predefine directories and set the maximum number of entries for the
Directory Selection dialog box by setting X resources (see the "Setting X
Resources" chapter).
152
Using the Emulator
To change the current working symbol context
To change the current working symbol context
• Choose File→Context→Symbols and use the dialog box to select
the new working symbol context.
• Using the command line, enter the cws <symbol_context>
command. (Because cws is a hidden command and doesn’t appear
on a softkey label, you have to type it in.)
You can predefine symbol contexts and set the maximum number of entries
for the Symbol Scope Selection dialog box by setting X resources (see the
"Setting X Resources" chapter).
Displaying local symbols or displaying memory in mnemonic format causes
the working symbol context to change as well. The new context will be that
of the local symbols or memory locations displayed.
153
Executing User Programs
You can use the emulator to run programs, break program execution into the
monitor, step through the program by high-level source lines or by assembly
language instructions, and reset the emulation processor.
When displaying memory in mnemonic format, a highlighted bar shows the
current program counter address. When you step, the mnemonic memory
display is updated to highlight the new program counter address.
When displaying resisters, the register display is updated to show you the
contents of the registers after each step.
You can open multiple interface windows to display memory in mnemonic
format and registers at the same time. Both windows are updated after
stepping.
This section describes how to:
•
•
•
•
Start the emulator running the user program.
Stop (break from) user program execution.
Step through user programs.
Reset the emulation processor.
To run programs from the current PC
• Choose Execution→Run→from PC.
• Using the command line, enter the run command.
When the emulator is executing the user program, the message "Running
user program" is displayed on the status line.
154
Using the Emulator
To run programs from an address
To run programs from an address
• Position the mouse pointer in the entry buffer and enter the address
you want to run from; then, choose Execution→Run→from ().
• Using the command line, enter the run from <address> command.
Examples
To run from address 920H:
run from 920h
To run programs from the transfer address
• Choose Execution→Run→from Transfer Address.
• Using the command line, enter the run from transfer_address
command.
Most software development tools allow you to specify a starting or entry
address for program execution. That address is included with the absolute
file’s symbolic information and is known by the interface as the transfer
address.
To run programs from reset
• Choose Execution→Run→from Reset.
• Using the command line, enter the run from reset command.
The run from reset command specifies a run from target system reset. It is
equivalent to entering a reset command followed by a run command. The
processor will be reset and then allowed to run.
155
Using the Emulator
To run programs until an address
To run programs until an address
• When displaying memory in mnemonic format, position the mouse
pointer over the line that you want to run until; then press and hold
the select mouse button and choose Run Until from the popup menu.
• Position the mouse pointer in the entry buffer and enter the address
you want to run from; then, choose Execution→Run→until ().
• Using the command line, enter the run until <address> command.
When you run until an address, a software breakpoint is set at the address
and the program is run from the current program counter.
When using the command line, you can combine the various types of run
commands; for example, you can run from the transfer address until another
address.
Examples
To run from the transfer address until the address of the global symbol main:
run from transfer_address until main
156
Using the Emulator
To stop (break from) user program execution
To stop (break from) user program execution
• Choose Execution→Break.
• Using the command line, enter the break command.
This command generates a break to the background monitor.
Software breakpoints and the run until command allow you to stop execution
at particular points in the user program.
Examples
To break emulator execution from the user program to the monitor:
break
To step high-level source lines
• Choose Execution→Step Source and select one of the items from
the cascade menu.
• Using the command line, enter the step source command.
When stepping through instructions associated with source lines, execution
can remain in a loop and the message "Stepping source line 1; Next PC:
<address>" is displayed on the status line. In this situation you can abort the
step command by pressing <CTRL>c.
Examples
To step through instructions associated with the high-level source lines at the
current program counter:
step source
157
Using the Emulator
To step assembly-level instructions
To step through instructions associated with high-level source lines at
address "main":
step source from main
To step assembly-level instructions
• Choose Execution→Step Instruction and select one of the items
from the cascade menu.
• Using the command line, enter the step command.
The step command allows you to step through program execution an
instruction or a number of instructions at a time. Also, you can step from the
current program counter or from a specific address.
Examples
To step one instruction from the current program counter:
step
To step a number of instructions from the current program counter:
step 8
To step a number of instructions from a specified address:
step 16 from 920h
158
Using the Emulator
To reset the emulation processor
To reset the emulation processor
• Choose Execution→Reset.
• Using the command line, enter the reset command.
The reset command causes the processor to be held in a reset state until a
break, run, or step command is entered. A CMB execute signal will also
cause the emulator to run if reset.
159
Using Execution Breakpoints
Breakpoints allow you to stop target program execution at a particular
address and transfer control to the emulation monitor. Suppose your system
crashes when it executes in a certain area of your program. You can set a
breakpoint in your program at a location just before the crash occurs. When
the processor executes the breakpoint, the emulator will force a break to the
monitor. You can display registers or memory to understand the state of the
system before the crash occurs. Then you can step through the program
instructions and examine changes in the system registers that lead up to the
system crash.
Execution breakpoints are implemented using the BKPT instruction of the
MC6833x. You can enable, disable, set, or clear execution breakpoints.
Set execution breakpoints at the first word of program instructions.
Otherwise, your BKPT may be interpreted as data and no breakpoint cycle
will occur. When the BKPT instruction is executed, target program
execution stops immediately (unlike using the analyzer to cause a break into
the monitor, which may allow several additional bus cycles to execute before
the break finally occurs).
This section shows you how to:
•
•
•
•
•
•
•
•
Set execution breakpoints in RAM.
Set execution breakpoints in ROM.
Use temporary and permanent breakpoints.
Enable and disable execution breakpoints.
Set a permanent breakpoint.
Set a ROM breakpoint in RAM.
Clear execution breakpoints.
Display status of all execution breakpoints.
160
Using the Emulator
Setting execution breakpoints in RAM
Setting execution breakpoints in RAM
When you set an execution breakpoint in RAM, the emulator will place a
breakpoint instruction (BKPT) at the address you specified, and then read
that address to ensure that the BKPT instruction is there. The program
instruction that was replaced by BKPT is saved by the emulator.
When the breakpoint instruction is executed, the BKPT acknowledge cycle is
detected by the emulator, and the emulator causes a break to the monitor.
At this point, the emulator replaces the BKPT instruction with the original
instruction it saved. It also replaces the BKPT instruction with the original
instruction whenever you disable or remove the breakpoint.
The emulator allows an unlimited number of breakpoints to be set in RAM.
Using temporary and permanent breakpoints
When you set a temporary execution breakpoint, the emulator creates the
breakpoint as described in the preceding paragraphs. When the breakpoint
instruction is executed, the emulator breaks to the monitor and removes the
breakpoint. Now you can execute that portion of program code as often as
you like and the breakpoint will not occur again, unless you enable it again.
When you set a permanent breakpoint, the emulator will process it the same
as a temporary breakpoint, but when the breakpoint instruction is executed,
the original instruction will only replace the breakpoint instruction during its
next execution. This allows you to step through the original instruction one
time. After your first step, the BKPT instruction will replace the original
instruction again so that the breakpoint will occur the next time the
breakpoint address is hit.
Permanent breakpoints remain in effect until you explicitly disable or remove
them.
Permanent breakpoints are available when using version A.04.00 or greater of
the emulation system firmware.
161
Using the Emulator
To enable execution breakpoints
To enable execution breakpoints
• Choose Breakpoints→Enable.
• Inside the breakpoints list display, press and hold the select mouse
button and then choose Enable/Disable Software Breakpoints
from the popup menu.
• Using the command line, enable breakpoints with:
modify software_breakpoints enable
You must enable breakpoints before you can set, inactivate, or clear any
breakpoints.
Once you have enabled breakpoints, you can enter new ones into the
breakpoint table. Note that if you enable breakpoints, add several, and then
disable them, they all become inactive. If you reenable the breakpoints
feature, you must choose Breakpoints→Set All, or on the command-line,
enter modify software_breakpoints set if you want to set all the existing
breakpoint entries.
162
Using the Emulator
To disable an execution breakpoint
To disable an execution breakpoint
• Choose Breakpoints→Enable again. The Breakpoints→Enable
selection is a switch.
• Inside the breakpoints list display, press and hold the select mouse
button and then choose Enable/Disable Software Breakpoints
from the popup menu.
• Using the command line, disable breakpoints with:
modify software_breakpoints disable
Sometimes you will want to temporarily disable the execution breakpoints
feature without removing the existing breakpoints. Use one of the above
commands to do this.
When you disable breakpoints, the emulator replaces the BKPT instructions
at all breakpoint locations with the original instructions. It marks the
breakpoint table entries as “inactive.” The processor won’t break to monitor
when the instructions at inactive locations are executed.
If you later enable breakpoints, the ones in the table are still inactive. To use
them, you must set them by choosing Breakpoints→Set All, or on the
command line, entering the modify software_breakpoints set command.
163
Using the Emulator
To set a permanent breakpoint
To set a permanent breakpoint
• When displaying memory in mnemonic format, position the mouse
pointer over the program line where you wish to set the breakpoint
and click the select mouse button. Or, press and hold the select
mouse button and choose Set/Clear Software Breakpoint from
the popup menu.
• Place an absolute or symbolic address in the entry buffer; then,
choose Breakpoints→Permanent().
• Using the command line, enter the command:
modify software_breakpoints set <address>
permanent
The breakpoints feature must be enabled before individual breakpoints can
be set.
When displaying memory in mnemonic format, asterisks (*) appear next to
breakpoint addresses. An asterisk shows the breakpoint is active. Also, if
assembly level code is being displayed, the disassembled instruction
mnemonic at the breakpoint address will show the breakpoint instruction.
164
Using the Emulator
To set a temporary breakpoint
To set a temporary breakpoint
• Type in the absolute or symbolic address of the breakpoint you want
to set in the entry buffer. Then choose
Breakpoints→Temporary(), ( or choose Breakpoints→Set() if
your version of HP 64700 system firmware is less than A.04.00).
• Choose Breakpoints→Set All to set all existing breakpoints in the
breakpoint table.
• Inside the breakpoints list display, press and hold the select mouse
button and then choose Set All Breakpoints from the popup menu.
• Using the command line, enter commands as follows:
• To set a breakpoint at a location given by <address>, enter:
modify software_breakpoints set <address>
• To set all existing breakpoints in the breakpoint table, enter:
modify software_breakpoints set
To add a new breakpoint, you can choose Breakpoints→Temporary() with
the name of the new breakpoint in the entry buffer, or use the modify
software_breakpoints set command and specify the address for the
breakpoint. You can also use this method to reenable an existing breakpoint
at that address.
If you choose Breakpoints→Set All, or use the modify
software_breakpoints set command without an address parameter, all
existing breakpoints in the breakpoints table will be enabled. The
breakpoints feature must be enabled before individual breakpoints can be set.
When displaying memory in mnemonic format, asterisks (*) appear next to
breakpoint addresses. An asterisk shows the breakpoint is active. Also, if
assembly level code is being displayed, the disassembled instruction
mnemonic at the breakpoint address will show the breakpoint instruction.
165
Using the Emulator
To clear an execution breakpoint
Examples
Set a new breakpoint at get_targets:
modify software_breakpoints set
update_sys.get_targets
Reenable all existing breakpoints:
modify software_breakpoints set
To clear an execution breakpoint
• Type in the name of the breakpoint you want to clear in the entry
buffer. Then choose Breakpoints→Clear().
• Choose Breakpoints→Clear All to clear all existing breakpoints in
the breakpoint table.
• Inside the breakpoints list display, press and hold the select mouse
button and then choose Clear (delete) Breakpoint from the popup
menu to clear the selected breakpoint.
• Using the command line, enter commands as follows:
• To remove an existing breakpoint at a location given by <address>, enter:
modify software_breakpoints clear <address>
• To remove all existing breakpoints, enter:
modify software_breakpoints clear
When you’re finished using a particular breakpoint, you should clear the
breakpoint table entry. The original instruction is restored to memory, and
the breakpoint table entry is removed.
166
Using the Emulator
To clear an execution breakpoint
Examples
To clear a breakpoint using the breakpoints display popup menu:
Bring up the menu
and choose this
item to clear the
highlighted
breakpoint.
To clear an existing breakpoint at get_targets:
modify software_breakpoints clear
update_sys.get_targets
To clear all existing breakpoints:
modify software_breakpoints clear
167
Using the Emulator
To clear all execution breakpoints
To clear all execution breakpoints
• When displaying breakpoints, position the mouse pointer within the
breakpoints display screen, press and hold the select mouse button,
and choose Clear (delete) All Breakpoints from the popup menu.
• Choose Breakpoints→Clear All.
• Using the command line, enter:
modify software_breakpoints clear
To display the status of all execution breakpoints
• Choose Breakpoints→Display or Display→Breakpoints.
• Using the command line, display the status of all breakpoints by
selecting:
display software_breakpoints
The breakpoints table shows you whether the breakpoints feature is
currently enabled or disabled. Also, the status is shown for each breakpoint
in memory. If “Pending,” the BKPT instruction is in memory at that location
and the breakpoint is set. If “Inactive,” the memory location contains the
original instruction, and the breakpoint will not be executed.
Active breakpoints are indicated in the memory mnemonic display by
asterisks beside the lines with breakpoints set.
168
Using the Emulator
To display the status of all execution breakpoints
temporary
permanent
inactivated
pending
The status of a breakpoint can be:
Which means the temporary breakpoint has been set but not encountered
during program execution. These breakpoints are removed when the
breakpoint is encountered.
Which means the permanent breakpoint is active. Permanent breakpoints
remain active after they are encountered during execution.
Which means the breakpoint has been inactivated. Pending breakpoints are
inactivated when they are encountered during program execution. Both
temporary and permanent breakpoints can be inactivated (and restored)
using the breakpoints display popup menu.
Which means the temporary breakpoint has been set but not encountered
during program execution. When encountered, these breakpoints are
inactivated, but retained in the breakpoints list. Pending breakpoints can
only be set using the softkey command line with commands like
modify software_breakpoints set 1000 and not selecting the additional
options <temporary> or <permanent>. The "pending" breakpoints status is
retained for compatibility with older product software versions.
In the breakpoints display, a popup menu is available, obtained by pressing
the select mouse button. You can inactivate or restore the status of any
breakpoint in the breakpoints list, as well as enable or disable the breakpoints
feature, using the popup menu.
169
Displaying and Modifying Registers
This section describes tasks related to displaying and modifying emulation
processor registers.
Within the interface, related registers are grouped into a class. For example,
the <BASIC> register class includes general registers, such as the PC, ST,
USP, SSP, and data and address registers. You can display the contents of an
individual register, a register class, or all registers.
This section shows you how to:
• Display register contents.
• Modify register contents.
To display register contents
• Choose Display→Registers→<register class>.
• Using the command line, enter the display registers <register
class> command.
When displaying registers, you can display classes of registers and individual
registers.
170
Using the Emulator
To modify register contents
To modify register contents
• Choose Modify→Register... and use the dialog box to name the
register and specify its value.
Clicking the "Recall" pushbutton
lets you select register names and
values from predefined or
previously specified entries.
Placing the mouse pointer in the
text entry area lets you type in the
register name and value.
To define the type of value, press
and hold the command select
mouse button and drag the mouse
to select the value type.
Clicking this checkbox causes the
current value of the named register
to be placed in the "Value" text
entry area.
Clicking this button modifies the
register to the value specified and
closes the dialog box.
Clicking this button modifies
the register to the value
specified and leaves the
dialog box open.
Clicking this button cancels
modification and closes the dialog
box.
• Using the command line, enter the modify register <register> to
<value> command.
171
Displaying and Modifying Memory
You can display and modify the contents of memory in hexadecimal formats
and in real number formats. You can also display the contents of memory in
assembly language mnemonic format.
This section shows you how to:
•
•
•
•
•
•
•
•
•
•
Display memory.
Display memory in mnemonic format.
Display memory in mnemonic format at the current PC.
Return to the previous mnemonic display.
Display memory in hexadecimal format.
Display memory in real number format.
Display memory at an address.
Display memory repetitively.
Modify memory.
Modify memory at an address.
To display memory
• Choose Display→Memory.
This command either re-displays memory in the format specified by the last
memory display command, or, if no previous command has been executed,
displays memory as hexadecimal bytes beginning at address zero.
172
Using the Emulator
To display memory in mnemonic format
To display memory in mnemonic format
• To display memory at a particular address, place an absolute or
symbolic address in the entry buffer; then, choose
Display→Memory→Mnemonic (), or, using the command line,
enter the display memory <address> mnemonic command.
• To display memory at the current program counter address, choose
Display→Memory→Mnemonic at PC, or, using the command line,
enter the display memory mnemonic at_pc command.
A highlighted bar shows the location of the current program counter address.
This allows you to view the program counter while stepping through user
program execution.
Whether source lines, assembly language instructions, or symbols are
included in the display depends on the modes you choose with the
Settings→Source/Symbols Modes or Settings→Display Modes
pulldown menu items. See the "Changing the Interface Settings" section.
If symbols are loaded into the interface, the default is to display source only.
To return to the previous mnemonic display
• Choose Display→Memory→Mnemonic Previous.
• Using the command line, enter the display memory mnemonic
previous_display command.
This command is useful for quickly returning to the previous mnemonic
memory display.
For example, suppose you are stepping source lines and you step into a
function that you would like to step over. You can return to the previous
mnemonic memory display, set a breakpoint at the line following the function
call, and run the program from the current program counter.
173
Using the Emulator
To display memory in hexadecimal format
To display memory in hexadecimal format
• Place an absolute or symbolic address in the entry buffer; then,
choose Display→Memory→Hex () and select the size from the
cascade menu.
• Using the command line, enter the display memory <address>
blocked <size> command.
This command displays memory as hexadecimal values beginning at the
address in the entry buffer.
Examples
To display memory in absolute word format:
display memory ascii_old_data absolute words
174
Using the Emulator
To display memory in real number format
To display memory in blocked byte format:
display memory ascii_old_data blocked bytes
To display memory in real number format
• Place an absolute or symbolic address in the entry buffer; then,
choose Display→Memory→Real () and select the size from the
cascade menu.
• Using the command line, enter the display memory <address>
real <size> command.
Displays memory as a list of real number values beginning at the address in
the entry buffer. Short means four-byte real numbers and long means
eight-byte real numbers.
175
Using the Emulator
To display memory at an address
Examples
To display memory in 64-bit real number format:
display memory real long
To display memory at an address
• Place an absolute or symbolic address in the entry buffer; then,
choose Display→Memory→At ().
This command displays memory in the same format as that of the last
memory display command. If no previous command has been issued,
memory is displayed as hexadecimal bytes.
176
Using the Emulator
To display memory repetitively
To display memory repetitively
• Choose Display→Memory→Repetitively.
• Using the command line, enter the display memory repetitively
command.
The memory display is constantly updated. The format is specified by the
last memory display command.
This command is ignored if the last memory display command was a
mnemonic display.
To modify memory
• Choose Modify→Memory and complete the command using the
command line.
• To modify memory at a particular address, place an absolute or
symbolic address in the entry buffer; then, choose
Modify→Memory at () and complete the command using the
command line.
• Using the command line, enter the modify memory command.
You can modify the contents of one memory location or a range of memory
locations. Options allow you to modify memory in byte, short, word, and real
number formats.
177
Displaying Data Values
The data values display lets you view the contents of memory as data types.
You can display data values in the following formats:
•
•
•
•
•
•
•
•
•
•
bytes
8-bit integers
unsigned 8-bit integers
chars
words
16-bit integers
unsigned 16-bit integers
long words
32-bit integers
unsigned 32-bit integers
This section shows you how to:
• Display data values.
• Clear the data values display and add a new item.
• Add item to the data values display.
To display data values
• Choose Display→Data Values.
• Using the command line, enter the display data command.
Items must be added to the data values display before you can use this
command.
The data display shows the values of simple data types in the user program.
When the display mode setting turns ON symbols, a label column that shows
symbol values is added to the data display.
Step commands and commands that cause the emulator to enter the monitor
(for example, encountering a breakpoint) cause the data values screen to be
updated.
178
Using the Emulator
To clear the data values display and add a new item
To clear the data values display and add a new item
• Place an absolute or symbolic address in the entry buffer; then,
choose Display→Data Values→New () and select the data type
from the cascade menu.
• Using the command line, enter the display data <address>
<format> command.
To add items to the data values display
• Place an absolute or symbolic address in the entry buffer; then,
choose Display→Data Values→Add () and select the data type
from the cascade menu.
• Using the command line, enter the display data , <address>
<format> command.
179
Changing the Interface Settings
This section shows you how to:
• Set the source/symbol modes.
• Set the display modes.
To set the source/symbol modes
• To display assembly language mnemonics with absolute addresses,
choose Settings→Source/Symbol Modes→Absolute, or, using the
command line, enter the set source off symbols off command.
• To display assembly language mnemonics with absolute addresses
replaced by global and local symbols where possible, choose
Settings→Source/Symbol Modes→Symbols, or, using the
command line, enter the set source off symbols on command.
• To display assembly language mnemonics intermixed with high-level
source lines, choose Settings→Source/Symbol Modes→Source
Mixed, or, using the command line, enter the set source on
inverse_video on symbols on command.
• To display only high-level source lines, choose
Settings→Source/Symbol Modes→Source Only, or, using the
command line, enter the set source only inverse_video off
symbols on command.
The source/symbol modes affect mnemonic memory displays and trace
displays.
Each display mode cascade menu choice is a toggle. Choosing one of these
items causes it to be the only one active and toggles all others off. Provided
that symbols were loaded, the interface defaults to:
• Source only for mnemonic memory displays.
• Source mixed for trace listing displays.
180
Using the Emulator
To set the display modes
To set the display modes
• Choose Settings→Display Modes... to open the display modes
dialog box.
Press and hold the select
mouse button and drag the
mouse to select "Source
Only", "Source Mixed", or "Off".
Clicking toggles whether
symbolic information is
displayed.
Move the mouse pointer to
the text entry area and type in
the value. Descriptions of the
modes follow.
Clicking toggles auto update
settings.
Clicking this checkbox
changes all display mode
settings to their defaults.
Clicking this button saves
your changes and closes the
dialog box.
Clicking this button saves
your changes and leaves
the dialog box open.
Clicking this button cancels your changes
and closes the dialog box.
181
Using the Emulator
To set the display modes
Source/Symbols View
Source in Memory specifies whether source lines are included, mixed with
assembly code, or excluded from mnemonic memory displays.
Source in Trace specifies whether source lines are included, mixed with
stored states, or excluded from trace displays.
Symbolic Addresses specifies whether symbols are included in displays.
Tab Expansion sets the number of spaces displayed for tabs in source lines.
Source/Symbols View
Label Field sets the width (in characters) of the address field in the trace list
or label (symbols) field in any of the other displays.
Mnemonic Field sets the width (in characters) of the mnemonic field in
memory mnemonic, trace list, and register step mnemonic displays. It also
changes the width of the status field in the trace list.
Symbols in Mnemonic Field sets the maximum width of symbols in the
mnemonic field of the trace list, memory mnemonic, and register step
mnemonic displays.
Source Lines sets the width (in characters) of the source lines in the memory
mnemonic display.
Auto Update
Memory Displays (Except Mnemonic) toggles whether memory displays are
automatically updated after commands that change memory contents or
whether you must enter memory display commands to update the display.
You may wish to turn off memory display updates, for example, when
displaying memory mapped I/O.
Memory Mnemonic Auto PC toggles whether memory mnemonic displays
automatically jump to the new PC location when the PC changes (such as
during stepping or break). You may wish to turn off the automatic update of
memory mnemonic displays when you want to examine a specific area of
memory regardless of the location of the current PC (such as during
stepping).
Trace Displays toggles whether trace displays are automatically updated
when trace measurements complete or whether you must enter trace display
commands to update the display. You may wish to turn off trace display
updates in one emulator/analyzer window in order to compare the display
with a new trace display in another emulator/analyzer window.
182
Using System Commands
With the Softkey Interface system commands, you can:
•
•
•
•
Set UNIX environment variables while in the Softkey Interface.
Display the name of the emulation module.
Display the event log.
Display the error log.
To set UNIX environment variables
• Using the command line, enter the set <VAR> command.
You can set UNIX shell environment variables from within the Softkey
Interface with the set <environment_variable> = <value> command.
Examples
To set the PRINTER environment variable to "lp -s":
set PRINTER = "lp -s"
After you set an environment variable from within the Softkey Interface, you
can verify the value of it by entering !set.
To display the name of the emulation module
• Using the command line, type the name_of_module command.
While operating your emulator, you can verify the name of the emulation
module. This is also the logical name of the emulator in the emulator device
file.
183
Using the Emulator
To display the event log
Examples
To display the name of your emulation module:
name_of_module
The name of the emulation module is displayed on the status line.
To display the event log
• Choose Display→Event Log.
• Position the mouse pointer on the status line, press and hold the
select mouse button, and then choose Display Event Log from the
popup menu.
• Using the command line, enter the display event_log command.
The last 100 events that have occurred during the emulation session are
displayed.
The status of the emulator and analyzer are recorded in the event log, as well
as the conditions that cause the status to change (for example, software
breakpoints and trace commands).
To display the error log
• Choose Display→Error Log.
• Position the mouse pointer on the status line, press and hold the
select mouse button, and then choose Display Error Log from the
popup menu.
• Using the command line, enter the display error_log command.
The last 100 error messages that have occurred during the emulation session
are displayed.
184
Using the Emulator
To edit files
To edit files
• Choose File→Edit→File and use the dialog box to specify the file
name.
• To edit a file based on an address in the entry buffer, place an
address reference (either absolute or symbolic) in the entry buffer;
then, choose File→Edit→At () Location.
• To edit a file based on the current program counter, choose
File→Edit→At PC Location.
• To edit a file associated with a symbol when you are displaying
symbols, position the mouse pointer over the symbol, press and hold
the select mouse button, and choose Edit File Defining Symbol
from the popup menu.
• To edit a file when displaying memory in mnemonic format, position
the mouse pointer over the line of source where you want to begin
the edit, press and hold the select mouse button, and choose Edit
Source from the popup menu.
When editing files at addresses, the interface determines which source file
contains the code generated for the address and opens an edit session on the
file. The interface will issue an error if it cannot find a source file for the
address.
If, upon starting the emulator session, you chose to copy files to a new
directory, the file you try to edit will have write permissions. This same file
will be "read only" if you did not choose to copy files to a new directory upon
starting up the emulator.
The interface will choose the "vi" editor as its default editor, unless you
specify another editor by setting an X resource. Refer to the "Setting X
Resources" chapter for more information about setting this resource.
You must load symbols before most commands will work because symbol
information is needed to be able to locate the files.
185
Using the Emulator
To edit files
Examples
To edit a file that defines a symbol:
Choosing the Edit
File Defining
Symbol menu item
brings up a terminal
window with an edit
session open on the
file where the
highlighted symbol
is defined.
186
Using the Emulator
To edit files
To edit a file at a source line:
Choosing the Edit
Source menu item
brings up a terminal
window with an edit
session open on the
file where the
highlighted source
line exists.
187
Using the Emulator
To copy information to a file or printer
To copy information to a file or printer
• Choose File→Copy, select the type of information from the cascade
menu, and use the dialog box to select the file or printer.
• Using the command line, enter the copy command.
ASCII characters are copied to the file or printer.
If you copy information to an existing file, it will be appended to the file.
Refer to the following paragraphs for details about the different copy options.
Display ... Copies information currently in the display area. This option
is useful for restricting the number of lines that are copied. Also, this
option is useful for copying the contents of register classes other than
BASIC.
Memory ... Copies the contents of a range of memory. The format is
the same as specified in the last display memory command. For
example, if you copy memory after displaying a range of memory in
mnemonic format, the file would contain the mnemonic memory
information. If there is no previous display memory command, the
format used is a blocked hex byte format beginning at address zero.
Data Values ... Copies the contents of the defined data values last
displayed. An error occurs if you try to copy data values to a file if you
have not yet displayed data values.
Configuration Info ... Copies the contents of the configuration
information last displayed. An error occurs if you try to copy
configuration information to a file if you have not yet displayed any.
Trace ... The most recently captured trace is copied to the file. The
copied trace listing is formatted according to the current display mode.
You can set the display mode with the Settings→Source/Symbols Modes
or Settings→Display Modes pulldown menu items. See the "Changing the
Interface Settings" section.
Registers ... Copies the current values of the BASIC register class to a
file. To copy the contents of the other register classes, first display the
registers in that class, and then use the File→Copy→Display ...
command.
Breakpoints ... Copies the breakpoints list. If no breakpoints are
present in the list, only the enable/disable status is copied.
188
Using the Emulator
To open a terminal emulation window
Status ... Copies the emulator/analyzer status display.
Global Symbols ... Copies the global symbols. If symbols have not
been loaded, this menu item is grayed-out and unresponsive.
Local Symbols () ... Copies the local symbols from the symbol scope
named (by an enclosing symbol) in the entry buffer. If symbols have not
been loaded, this menu item is grayed-out and unresponsive.
Pod Commands ... Copies the last 100 lines from the pod commands
display.
Error Log ... Copies the last 100 lines from the error log display.
Event Log ... Copies the last 100 lines from event log display.
To open a terminal emulation window
• Choose File→Term...
This command opens a terminal window into the current working directory
context.
189
Using Simulated I/O
Simulated I/O is a feature of the emulator/analyzer interface that lets you use
the same keyboard and display that you use with the interface to provide
input to programs and display program output.
To use simulated I/O, your programs must communicate with the simulated
I/O control address and the buffer locations that follow it. (The
Hewlett-Packard AxLS compilers, if your program uses I/O, automatically link
with environment dependent routines that communicate with the simulated
I/O control address and buffer.)
Also, before simulated I/O can work, the emulator must be configured to
enable polling of the simulated I/O control address and to define the control
address location.
This section shows you how to:
• Display the simulated I/O screen.
• Use simulated I/O keyboard input.
Refer to the Simulated I/O User’s Guide for complete details on how
simulated I/O works.
To display the simulated I/O screen
• Choose Display→Simulated IO.
Before you can display simulated I/O, polling for simulated I/O must be
enabled in the emulator configuration.
190
Using the Emulator
To use simulated I/O keyboard input
Examples
A message tells you whether the display is open or closed. You can modify
the configuration to enable status messages.
To use simulated I/O keyboard input
• To begin using simulated I/O input, choose Settings→Simulated IO
Keyboard.
• To end simulated I/O and return to using the interface, use the
suspend softkey.
For Simulated I/O to work, you must configure the emulator to enable polling
of simulated I/O.
The command line entry area is used for simulated input with the keyboard.
Therefore, if the command line is turned off, choosing this menu item with
turn command line display back on.
If you are planning to use even a modest amount of simulated I/O input
during an emulation session, it might be a good idea to open another
Emulator/Analyzer window to be used exclusively for simulated I/O input and
output.
191
Using Basis Branch Analysis
Basis branch analysis (BBA) is provided by the HP Branch Validator product.
This product is used to analyze the testing of your programs, create more
complete test suites, and quantify your level of testing.
The HP Branch Validator records branches executed in a program and
generates reports that provide information about program execution during
testing. It uses a special C preprocessor to add statements that write to a
data array when program branches are taken. After running the program in
the emulator (using test input), you can store the BBA information to a file.
Then, you can generate reports based on the stored information.
This section shows you how to store BBA data to a file. Refer to the
HP Branch Validator (BBA) User’s Guide for complete details on the BBA
product and how it works.
To store BBA data to a file
• Choose File→Store→BBA Data and use the selection dialog box to
specify the file name.
The default file name "bbadump.data" can be selected from the dialog box.
192
7
Using the Emulation Analyzer
193
Using the Emulation Analyzer
This chapter describes tasks you may wish to perform while using the
emulation analyzer. These tasks are grouped into the following sections:
•
•
•
•
•
The basics of starting, stopping, and displaying traces.
Qualifying trigger and store conditions.
Using the sequencer.
Displaying the trace list.
Saving and restoring trace data and specifications.
194
The Basics of Starting, Stopping, and
Displaying Traces
This section describes the basic tasks that relate to starting and stopping
trace measurements.
When you start a trace measurement, the analyzer begins looking at the data
on the emulation processor’s bus and control signals on each analyzer clock
signal. The information seen on a particular clock is called a state.
When one of these states matches the "trigger state" you specify, the analyzer
stores states in trace memory. When trace memory is filled, the trace is said
to be "complete." The default trigger state specification is "any state," so
when you start a trace measurement after initializing the analyzer, the
analyzer will "trigger" on the first state it sees and store the following states
in trace memory.
Once you start a trace measurement, you can view the progress of the
measurement by displaying the trace status.
In some situations, for example, when the trigger state is never found or
when the analyzer hasn’t filled trace memory, the trace measurement does
not complete. In these situations, you can halt the trace measurement.
Once a trace is displayed, you can use the cursor keys and other keys to
position the trace list on the display. To speed up the display of traces, you
can reduce the depth of the trace list. Also, when entering trace commands,
there is a special command that allows you to recall and modify the last trace
command entered.
This section describes how to:
•
•
•
•
•
•
•
Start a trace measurement.
Display the trace list.
Display the trace status.
Change the trace depth.
Modify the last trace command entered.
Repeat the previous trace command.
Position the trace display on the screen.
195
Using the Emulation Analyzer
To start a trace measurement
To start a trace measurement
• Choose Trace→Everything.
• Using the command line, enter:
trace
When you use the trace command without any options, the analyzer begins
recording processor bus cycles immediately, and continues until the trace
buffer is filled. In the default trace configuration, the analyzer stores all bus
cycles.
If you are using the deep analyzer, the depth of the trace list buffer depends
on whether or not you installed memory modules on the analyzer card, and
the capacity of the memory modules installed. Refer to the Hewlett-Packard
MC6833x Emulator/Analyzer Installation/Service/Terminal Interface
Guide for details. If you are using the 1K analyzer, the trace list buffer is 512
or 1024 states deep (depending on whether or not you turn on the state/time
count). See "To count states or time" in this chapter.)
Example
From the demo directory /usr/hp64000/demo/debug_env/hp64749, start the
demo program and trace from the program start:
Startemul
reset
trace
run from transfer_address
196
Using the Emulation Analyzer
To stop a trace measurement
To stop a trace measurement
• Choose Trace→Stop.
• Using the command line, enter:
stop_trace
You must use this command to stop a trace started with a Trace→Until
Stop command (refer to "To trace activity leading up to a program halt" later
in this chapter). Several other conditions may occur that will make you want
to stop a trace. The analyzer may not record any trace states because your
trigger specification isn’t correct, or because you have a target system
problem. At other times, a valid trace may be capturing data slowly. You can
use the stop_trace command to prevent the analyzer from storing additional
data.
You do not have to stop a trace in order to begin viewing a partial trace
because the interface supports incremental trace uploading. After the trigger
condition occurs, the interface begins uploading and displaying trace states
as they are captured.
To display the trace list
• Choose Trace→Display or Display→Trace.
• Using the command line, enter the display trace command.
You can display captured trace data with the display trace command. The
available options to the display trace command are described in the
"Modifying the Trace Display" section later in this chapter.
197
Using the Emulation Analyzer
To display the trace list
Examples
To display the trace:
display trace
The first column in the trace list contains the line number. The trigger is
always on line 0.
The second column contains the address information associated with the
trace states. Addresses in this column may be locations of instruction
opcodes on fetch cycles, or they may be sources or destinations of operand
cycles.
The third column shows mnemonic information about the emulation bus
cycle.
The next column shows the count information (time is counted by default).
"Relative" indicates that each count is relative to the previous state.
If your analyzer card contains external analysis (for example, HP 64703), the
next column shows the data captured on the external trace signals.
You can use the <NEXT> and <PREV> keys to scroll through the trace list a
page at a time. The <Up arrow> and <Down arrow> keys will scroll through
the trace list a line at a time. You can also display the trace list centered
around a specific line number (for example, display trace 100). Refer to
the "Modifying the Trace Display" section for more information on the trace
list display.
198
Using the Emulation Analyzer
To display the trace status
Note that when a trigger condition is found but not enough states are
captured to fill trace memory, the status line will show the trace is still
running. You can display all but the last captured state in this situation; you
must halt the trace to display the last captured state.
To display the trace status
• Choose Display→Status.
• Using the command line, enter the display status command.
In addition to the analyzer information shown on the status line (Emulation
trace started, Emulation trace complete, etc.), you can display complete
analyzer status with the command below.
Examples
To display the trace status:
display status
The first line of the emulation trace status display shows the user trace has
been "completed"; other possibilities are that the trace is still "running" or
that the trace has been "halted".
The second line of the trace status display contains information on the arm
condition. If the analyzer is always armed, the message "Arm ignored" is
displayed. If the analyzer is to be armed by one of the internal signals, either
199
Using the Emulation Analyzer
To display the trace status
the message "Arm not received" or "Arm received" is displayed. The display
indicates if the arm condition happened any time since the most recent trace
started, even if it happened after the trace was halted or became complete.
(The "Making Coordinated Measurements" chapter explains arm conditions.)
The "Arm to trigger" line displays the amount of time between the arm
condition and the trigger. The time displayed will be from -0.04
microseconds to 41.943 milliseconds, less than -0.04 microseconds, or greater
than 41.943 milliseconds. If the arm signal is ignored or the trigger is not in
memory, a question mark (?) is displayed.
The "States" line shows the number of states that have been stored (out of
the number that is possible to store) and the line numbers that the stored
states occupy. (The trigger state is always stored on line 0.)
The "Sequence term" line of the trace status display shows the number of the
term the sequencer was in when the trace completed. Because a branch out
of the last sequence term constitutes the trigger, the number displayed is
what would be the next term (2 in the preceding example) even though that
term is not defined. If the trace is halted, the sequence term number just
before the halt is displayed; otherwise, the current sequence term number is
displayed. If the current sequence term is changing too quickly to be read, a
question mark (?) is displayed.
The "Occurrence left" line of the trace status display shows the number of
occurrences remaining before the primary branch can be taken out of the
current sequence term. If the occurrence left is changing too quickly to be
read, a question mark (?) is displayed.
200
Using the Emulation Analyzer
To change the trace depth
To change the trace depth
• Choose Trace→Display Options... and in the dialog box, enter the
desired trace unload depth in the field beside Unload Depth. Then
click the OK or Apply pushbutton.
• Using the command line, enter:
display trace depth <depth>
Using one of the above command forms, you specify the number of states
that will be unloaded for display, copy, or file storage. By reducing the trace
unload depth, you shorten the time it takes for the interface to unload the
trace information. You can increase the trace unload depth to view more
states of the current trace. Regardless of how much or how little unload
depth you specify, the entire trace memory will be filled with captured states
during a trace.
In the deep analyzer, the maximum number of trace states depends on
whether or not you installed memory modules in the analyzer card, and the
capacity of the memory modules. Refer to the Hewlett-Packard MC6833x
Emulator/Analyzer Installation/Service/Terminal Interface Guide for
details. In the 1K analyzer, the maximum number of trace states is 1024
when counting is turned off, and 512 otherwise. In either analyzer, the
minimum trace depth is 9.
Trace data must be unloaded before it can be displayed, copied, or stored in a
file. If you wish to reduce the number of states that are unloaded for display,
you must enter the unload depth specification (in one of the two ways shown
above) before you enter the trace command. The above commands cannot
be used to reduce the number of states displayed in the current trace. You
can enter a new unload depth specification after a trace is complete to
increase the amount of trace memory that is unloaded, if desired.
201
Using the Emulation Analyzer
To modify the last trace command entered
To modify the last trace command entered
• Choose Trace→Trace Spec... and use the dialog box to select and
edit a trace command.
• Using the command line, enter the trace modify_command
command.
The Trace Specification Selection dialog box lets you recall, edit, and enter
trace commands that have been executed during the emulation session or
trace commands that have been predefined. If you make an error in a trace
command or want to change the measurement slightly, it’s often easier to
recall the previous trace command and edit it than it is to enter a new trace
command.
You can predefine trace specifications and set the maximum number of
entries for the dialog box by setting X resources (see the "Setting X
Resources" chapter).
The trace modify_command command recalls the last trace command.
The advantage of this command over command recall is that you do not have
to move forward and backward over other commands to find the last trace
command; also, the last trace command is always available, no matter how
many commands have since been entered.
To repeat the previous trace command
• Choose Trace→Again.
• To continually repeat the last trace, choose Trace→Repetitively.
• Using the command line, repeat the previous trace command
(including its complete trace specification) by entering:
trace again
The trace again command is most useful when you want to repeat a
measurement with the same trace specification. It saves you the trouble of
reentering the complete trace command specification.
The "repetitively" choice continually repeats the last trace command.
Successive traces begin as soon as the results from the just-completed trace
are displayed.
202
Using the Emulation Analyzer
To position the trace display on screen
Also, this command is useful when you load a trace specification from a file.
(See "To load a trace specification" in this chapter.)
To position the trace display on screen
• Use the scroll bar or the <Up arrow>, <Down arrow>, <PREV>,
<NEXT>, <CTRL>f, and <CTRL>g keys.
The trace display command can display more states than can appear on the
screen at one time. However, you can reposition the display on the screen
with the keys described below.
The <Up arrow> and <Down arrow> (or roll up and roll down) keys move the
display up or down on the screen one line at a time.
The <PREV> and <NEXT> (or page up and page down) keys allow you to
move the display up or down a page at a time.
The <CTRL>f and <CTRL>g keys allow you to move the display left or right,
respectively. These keys are used when the width of the address or
mnemonic/absolute columns is increased so that not all the trace display data
can be displayed across the screen.
203
Qualifying Trigger and Store Conditions
This section describes tasks relating to the qualification of trigger and storage
states.
You can trigger on, or store, specific states or specific values on a set of trace
signals (which are identified by trace labels).
Also, you can prestore states. The prestore qualifier is a second storage
qualifier used for storing states that occur before the normally stored states.
Prestore is useful for capturing entry points to procedures or for identifying
where global variables are accessed from.
This section describes how to:
•
•
•
•
•
•
•
•
•
Specify a trigger and set the trigger position.
Use address, data, and status values in trace expressions.
Enter a range in a trace expression.
Trigger on a number of occurrences of some state.
Break emulator on execution on the analyzer trigger.
Count states or time.
Define a storage qualifier.
Define a prestore qualifier.
Trace activity leading up to a program halt.
Expressions in Trace Commands
When modifying the analysis specification, you can enter expressions which
consist of values, symbols, and operators.
Values Values are numbers in hexadecimal, decimal, octal, or binary.
These number bases are specified by the following characters:
Bb
QqOo
D d (default)
Hh
Binary (example: 10010110b).
Octal (example: 377o or 377q).
Decimal (example: 2048d or 2048).
Hexadecimal (example: 0a7fh).
You must precede any hexadecimal number that begins with an A, B, C, D, E,
or F with a zero.
204
Using the Emulation Analyzer
To position the trace display on screen
Don’t care digits may be included in binary, octal, or hexadecimal numbers
and they are represented by the letters X or x. A zero must precede any
numerical value that begins with an "X".
Symbols A symbol database is built when the absolute file is loaded into
the emulator. Both global and local symbols can be used when entering
expressions. Global symbols are entered as they appear in the global
symbols display. When specifying a local symbol, you must include the
name of the module ("anly.c") as shown below.
anly.c:cmp_function
Operators Analysis specification expressions may contain operators.
All operations are carried out on 32-bit, two’s complement integers.
(Values which are not 32 bits will be sign extended when expression
evaluation occurs.)
-, ~
*, /, %
+, &
|
The available operators are listed below in the order of evaluation
precedence. Parentheses are also allowed in expressions to change the order
of evaluation.
Unary two’s complement, unary one’s complement. The unary two’s
complement operator is not allowed on constants containing don’t care bits.
Integer multiply, divide, and modulo. These operators are not allowed on
constants containing don’t care bits.
Addition, subtraction. These operators are not allowed on constants
containing don’t care bits.
Bitwise AND.
Bitwise inclusive OR.
Values, symbols, and operators may be used together in analysis specification
expressions. For example, if the local symbol exists, the following is a valid
expression:
module.c:symb+0b67dh&0fff00h
However, you cannot add two symbols unless one of them is an EQU type
symbol.
205
Using the Emulation Analyzer
To position the trace display on screen
Emulation Analyzer Trace Signals
When you qualify states, you specify values that should be found on the
analyzer trace signals. The emulation analyzer trace signals are described in
the table that follows.
Emulation Analyzer Trace Signals
Trace
Signals
Analyzer
Channel #
Signal
Name
Signal
Description
0-23
0-23
A0-A15
Address Lines 0-15
32-47
32-47
D0-D15
Data Lines 16-31
bit 0
ch 48
BACKGROUND
0 = in monitor or RESET
1 = not in monitor and not RESET
bit 1
bit 2
bit 3
ch 49
ch 50
ch 51
FCO
FC1
FC2
These are the translation RAM derivation of the
processor function codes. If the processor has been
configured such that these are FC* signals, the
translation RAM will pass the signals directly. If the
processor has been configured such that these signals
are chip selects, one of three bus values will be driven,
based on chip select programming. If the chip select
programming does not differentiate between user and
supervisor, the FC value will be 011 BIN. If the chip
select is supervisor, the FC value will be 100 BIN. If
the chip select is user, the FC value will be 000 BIN.
bit 4
ch 52
R/W
0 = write bus cycle
1 = read bus cycle
bit 5
bit 6
ch 53
ch 54
SIZ0
SIZ1
These are processor SIZ signals, which may be
configured as I/O pins. If analysis status bits 15:14 are
equal to 0:0, the processor has been configured such
that these signals are SIZ.
bit 7
ch 55
MAPBYTE
When = 0, the memory mapper has been programmed
such that the current emulation memory address is
byte wide.
When = 1, the memory mapper has been programmed
such that the current emulation memory address is
word wide.
206
Using the Emulation Analyzer
To position the trace display on screen
Emulation Analyzer Trace Signals
Trace
Signals
Analyzer
Channel #
Signal
Name
Signal
Description
bit 8
bit 9
ch 56
ch 57
DSACK0
DSACK1
These are processor DSACK signals, which may be
configured as I/O pins.
bit 10
ch 58
BERR
0 = bus error
1 = no bus error
bit 11
ch 59
HALT
0 = processor halt
1 = processor is not halted
bit 12
ch 60
CODE
0 = instruction fetch
1 = data transfer
bit 13
ch 61
FLUSH
0 = first instruction fetch following any program
transfer
1 = no program transfer
bit 14
bit 15
ch 62
ch 63
LOWBYTE
HIBYTE
These are translation RAM signals which describe the
bus cycle.
15:14
0:0 use SIZ1, SIZ0 bits (status bits 6:5)
0:1 low-byte transfer
1:0 high-byte transfer
1:1 word transfer
207
Using the Emulation Analyzer
To position the trace display on screen
address
data
status
Qualifier
berr
data
flush
halt
hibyte
lobyte
prog
read
write
State Qualifiers
Whenever a state can be specified in the trace command (trigger state,
storage state, prestore state, etc.), you will see the following softkeys that
allow you to qualify the state:
The value following this softkey is searched for on the lines that monitor the
emulation processor’s address bus.
The value following this softkey is searched for on the lines that monitor the
emulation processor’s data bus.
The value following this softkey is searched for on the lines that monitor
other emulation processor signals.
When a value is specified without one of these softkeys it is assumed to be an
address value.
Predefined Values for Qualifiers When you specify status qualifiers
for analyzer states (by pressing the status softkey), you will be given the
following softkeys which are predefined values for the qualifiers.
Status Values
=0xxxxx0xxxxxxxxxx
=0xxx1xxxxxxxxxxxx
=0xx0xxxxxxxxxxxxx
=0xxxx0xxxxxxxxxxx
=0xxxxxxxxxxxxxxx
=0x0xxxxxxxxxxxxxx
=0xxx0xxxxxxxxxxxx
=0xxxxxxxxxxx1xxxx
=0xxxxxxxxxxx0xxxx
BIN
BIN
BIN
BIN
BIN
BIN
BIN
BIN
BIN
-
Description
bus cycle bus error
bus cycle is a data transfer
instruction pipe flush and program transfer
processor halt
high byte bus transfer
low byte bus transfer
bus cycle is an instruction fetch
bus cycle is a read
bus cycle is a write
These predefined values may be used as other values would be used.
For example:
trace after status write
is the same as:
trace after status 0xxxxxxxxxxx0xxxxb
208
Using the Emulation Analyzer
To specify a trigger and set the trigger position
To specify a trigger and set the trigger position
• Enter a trigger state specification in the entry buffer; then, choose
Trace→After (), Trace→About (), or Trace→Before ().
• When displaying memory in mnemonic format, position the mouse
pointer over the source line where you want to set the trace trigger,
press and hold the select mouse button and choose Trace After,
Trace Before, or Trace About from the popup menu.
• Using the command line, enter the trace after, trace about, or
trace before commands.
Tracing after the trigger state says states that occur after the trigger state
should be saved; in other words, the trigger is positioned at the top of the
trace.
Tracing before the trigger state says states that occur before the trigger state
should be saved; in other words, the trigger is positioned at the bottom of the
trace.
Tracing about the trigger state says states that occur before and after the
trigger state should be saved; in other words, the trigger is positioned at the
center of the trace.
When the analyzer counts time or states, the actual trigger position is within
+/- 1 state of the number specified. When counts are turned OFF, the actual
trigger position is within +/- 3 states of the number specified.
Usually, when you enter a trace about command, the trigger state (line 0) is
labeled "about". However, if there are three or fewer states before the
trigger, the trigger state is labeled "after". Likewise, if there are 3 or fewer
states after the trigger, the trigger state is labeled "before".
The state you define after trace after, trace about, or trace before is the state
that will trigger the analyzer and cause states to be stored.
209
Using the Emulation Analyzer
To specify a trigger and set the trigger position
Examples
Suppose you want to look at the execution of the demo program after the call
of the "update_system()" function (main.c: line 102) occurs. To trigger on
this address, enter:
trace after address main."main.c": line 102
set source on inverse_video on symbols on
display trace
In the preceding trace list, line 0 (labeled "after") shows the beginning of the
program loop.
210
Using the Emulation Analyzer
To use address, data, and status values in trace expressions
To use address, data, and status values in trace
expressions
• Enter the value(s) desired in the entry buffer (such as address
1000h). Then Choose Trace→After(), Trace→Before(), or
Trace→About(), as desired.
• Using the command line, enter commands as follows:
• To specify an address expression, enter:
<expression> -or- address <expression>
• To specify a data expression, enter:
data <expression>
• To specify a status expression, enter:
status <expression>
Many trace commands require that you enter address, data and status
expressions to specify the bus state. You can combine multiple expressions
on the same command line to build a complete bus state qualifier. You can
also use logical operators to build more complex states. Refer to the
"Emulator/Analyzer Interface Commands" chapter for details.
The default expression type is address, therefore you don’t need to specify
the address keyword when you enter an address expression.
Example
Start a trace and store only writes of 0 hex to the graph address in the demo
program:
trace only graph data 0 status write
211
Using the Emulation Analyzer
To enter a range in a trace expression
To enter a range in a trace expression
• Use the command-line rules (described below) to create your
expression in the entry buffer. Then Choose Trace→After(),
Trace→Before(), or Trace→About(), as desired.
• Using the command line, enter commands as follows:
• To specify an address range enter:
address range <expression> thru <expression>
• To specify a data range, enter:
data range <expression> thru <expression>
• To specify a status range enter:
status range <expression> thru <expression>
• To take the logical not of a range, use the not keyword before the range
keyword.
Ranges allow you to qualify analyzer actions on a contiguous set of values.
Mostly, you’ll use address ranges to trigger or store on access to a data block
such as a lookup table. But, you can also use data ranges to qualify a trigger
or storage on a range of data values.
There is only one range term available in the trace specification. Once it has
been used, it cannot be reused. That is, if you specify a range in a trigger
specification, you can’t duplicate it in the storage specification. (The
Terminal Interface does allow this type of measurement, though there is still
only one range term. Refer to the Hewlett-Packard MC6833x
Emulator/Analyzer Installation/Service/Terminal Interface Guide for
details.)
Since address is the default range type, you can omit the address keyword.
You can’t omit the data or status keywords if those are the bus parts you
want to qualify.
212
Using the Emulation Analyzer
To trigger on a number of occurrences of some state
You can use the logical or operator to combine the range term with several
state qualifiers. See the examples.
Examples
Store only the accesses to the demo program’s current_humid location:
trace only range current_humid thru +1h
Store only bus cycles where data is in the range 6h..26h or is 29h:
trace only data range 6h thru 26h or data 29h
To trigger on a number of occurrences of some state
• Use the occurs <#TIMES> after specifying the trigger state.
When specifying a trigger state, you can include an occurrence count. The
occurrence count specifies that the analyzer trigger on the Nth occurrence of
some state.
The default base for an occurrence count is decimal. You may specify
occurrence counts from 1 to 65535.
Examples
To trigger on the 20th occurrence of the call of the "update_system()"
function (main.c: line 102):
trace after address main."main.c": line 102
occurs 20
213
Using the Emulation Analyzer
To break emulator execution on the analyzer trigger
To break emulator execution on the analyzer trigger
• Enter a trigger state specification in the entry buffer; then, choose
Trace→Until ().
• When displaying memory in mnemonic format, position the mouse
pointer over the program line which you wish to trace before, press
and hold the select mouse button and choose Trace Until from the
popup menu.
• Using the command line, use the break_on_trigger option to the
trace command.
The break_on_trigger option to the trace command allows you to cause the
emulator to break when the analyzer finds the trigger state.
Note that the actual break may be several cycles after the analyzer trigger.
Examples
To trace before source line 102 and cause the emulator to break into the
monitor when the analyzer triggers:
trace before address main."main.c": line 102
break_on_trigger
To count states or time
• Create your first specification form on the command line. That will
enter the proper format in the Trace Specification Selection dialog
box. Obtain that dialog box by choosing Trace→Trace Spec... You
can click on your specification in the dialog box, edit it if desired, and
click OK.
• Using the command line, enter commands as follows:
• To count occurrences of a particular bus state in the trace, enter:
trace counting <bus_state>
214
Using the Emulation Analyzer
To count states or time
<bus_state> represents a combination of address, data and status
expressions that must be matched to satisfy the trigger qualifier.
• To count all states in the trace, enter:
trace counting anystate
• To count time in the trace, enter:
trace counting time
• To disable counting in the trace, enter:
trace counting off
You can use the analyzer’s state/time counter to count time or bus states. If
using the deep analyzer, counting imposes no restrictions on memory depth.
If using the 1K analyzer, use of the counter restricts the trace memory to a
maximum depth of 512 states. If you disable the counter in the 1K analyzer,
using the trace counting off command, maximum trace depth is 1024 states.
When using the 1K analyzer, the MC6833x emulator defaults to counting off.
To count states or time, you must configure the analyzer clocks correctly.
See "To configure the analyzer clock" in the "Configuring the Emulator"
chapter for more information.
Use the display trace count command to determine how the count is
displayed in the trace list. See “To display count information in the trace” for
more information.
215
Using the Emulation Analyzer
To define a storage qualifier
Examples
To count occurrences of a particular bus state in the trace (this requires the
1K analyzer speed to be set to "Slow" in configuration):
trace counting state address 10h
Count all states in the trace:
trace counting anystate
Count time in the trace:
trace counting time
Disable counting in the trace:
trace counting off
To define a storage qualifier
• Enter the storage qualifier (such as status read) in the entry buffer.
Then choose Trace→Only().
• Using the command line, store only certain states in the trace list by
entering:
trace only <bus_state>
<bus_state> represents a combination of address, data and status
expressions that must be matched to satisfy the storage qualifier.
Storage qualifiers can help filter unwanted information from program
execution and improve your trace measurement. The analyzer stores only the
information specified in the storage qualifier. Note that if you have a
216
Using the Emulation Analyzer
To define a prestore qualifier
sequencer or trigger specification, any states given there are shown in the
trace list even if they don’t meet the storage qualifier.
Examples
Trace only address 10h:
trace only address 10h
Trace only data value 0ffh:
trace only data 0ffh
Trace only write operations
trace only status write
To define a prestore qualifier
• Place your prestore qualification into the entry buffer. Then choose
Trace→Only() Prestore.
• Using the command line, enter commands as follows:
• Specify a prestore qualifier by entering:
trace prestore <bus_state>
<bus_state> represents a combination of address, data and status
expressions that must be matched to satisfy the prestore qualifier.
• Disable prestore qualification by entering:
trace prestore anything
217
Using the Emulation Analyzer
To define a prestore qualifier
You use the prestore qualifier to save states that are related to other routines
that you’re tracing. For example, you might be tracing a subprogram, and
want to see which program called it. You can specify calls be prestored and
that entries to the subprogram be stored. The easiest way to do this is to
prestore program reads that are outside the address range of the subprogram
being called.
You may have several program modules that write to a variable, and
sometime during execution of your program, that variable gets bad data
written to it. Using a prestore measurement, you can find out which module
is writing the bad data. Store-qualify writes to the variable, and use prestore
to capture the instructions that caused those writes to occur (perhaps by
prestoring program reads).
Examples
Specify a prestore qualifier:
trace prestore address not range gen_ascii_data
thru gen_ascii_data end status program and read
only gen_ascii_data
Disable prestore qualification:
trace prestore anything
218
Using the Emulation Analyzer
To trace activity leading up to a program halt
To trace activity leading up to a program halt
• Choose Trace→Until Stop.
• Using the command line, trace on a program halt by entering:
trace on_halt
The above commands cause the analyzer to continuously fill the trace buffer
until you issue a Trace→Stop or stop_trace command.
Sometimes you may have a program failure that can’t be attributed to a
specific trigger condition. For example, the emulator may access guarded
memory and break to the monitor. You want to trace the events leading up to
the guarded memory access but you don’t know what to specify for a trigger.
Use the above command. The analyzer will capture and record states until
the break occurs. The trace list will display the last processor states leading
up to the break condition.
Note that the trace until stop command may not capture the desired
information when you are using a foreground monitor (unless the code that
causes the break also causes the processor to halt) because the analyzer will
continue to capture foreground monitor states after the break. When using a
foreground monitor, you can use the command line to enter a trace command
that stores only states outside the range of the foreground monitor program
(for example, trace on_halt only not range <mon_start_addr> thru
<mon_end_addr> on_halt).
To capture a continuous stream of program execution
no matter how large your program
The following example can be performed in emulation systems using the
deep analyzer (it cannot be done with the 1K analyzer). It shows you how to
capture all of the execution of your target program. You may wish to capture
target program execution for storage, for future reference, and/or for
comparison with execution after making program modifications. The
execution of a typical target program will require more memory space than is
available in the trace memory of an analyzer. This example shows you how to
capture all of your target program execution while excluding unwanted
execution of the emulation monitor.
219
Using the Emulation Analyzer
To capture a continuous stream of program execution no matter how large your
program
1 Choose Trace→Display Options ..., and in the dialog box, enter 0
or the total depth of your deep analyzer trace memory in the entry
field beside Unload Depth. Then click OK or Apply. This sets unload
depth to maximum.
2 For this measurement, the analyzer will drive trig1 and the emulator
will receive trig1 from the trigger bus inside the card cage. The trig1
signal is used to cause the emulator to break to its monitor program
shortly before the trace memory is filled. This use of trig1 is not
supported in workstation interface commands. Therefore, terminal
interface commands (accessible through the pod command feature)
must be used. Enter the following commands:
a. Choose Settings→Pod Command Keyboard.
b. Enter tgout trig1 -c <states before end of memory>
(trigger output trig1 before trace complete).
c. Enter bc -e trig1 (break conditions enabled on trig1).
d. Click the suspend softkey.
Note that "tgout trig1 -c <states...>" means generate trig1 as an output when
the state that is <states...> before the end of the trace memory is captured in
the trace memory; "bc -e trig1" means enable the emulator to break to its
monitor program when it receives trig1.
Select a value for <states before end of memory> that allows enough time
and/or memory space for the emulator to break to its monitor program before
the trace memory is filled. Otherwise, some of your program execution will
not be captured in the trace. Many states may be executed before the
emulation break occurs, depending on the state of the processor when the
trig1 signal arrives. Also, if your program executes critical routines in which
interrupts are masked, the occurrence of trig1 may be ignored until the
critical routine is completed (when using a foreground monitor).
3 If you are using a foreground monitor, enter the following additional
pod commands to prevent the trace memory from capturing monitor
execution. The following example commands will obtain this result
in some emulators:
a. Choose Settings→Pod Command Keyboard.
b. Enter trng addr=<address range occupied by your monitor>
(trigger on range address = <address range>)
where <address range> is expressed as <first addr>..<last addr>.
c. Enter tsto !r (trace store not range).
d. Click the suspend softkey.
220
Using the Emulation Analyzer
To capture a continuous stream of program execution no matter how large your program
Note that "trng addr=<addr>..<addr>" means define an address range for the
analyzer; "tsto !r" means store all trace activity except activity occurring in
the defined address range.
4 Start the analyzer trace with the command, Trace→Again
5 Start your program running using Execution→Run→from(), from
Transfer Address, or from Reset, as appropriate.
The Trace→Again (or trace again) command starts the analyzer trace
with the most recent trace specifications (including the pod_command
specifications you entered). The trace command cannot be used by itself
because it defaults the "bc -e trig1", "trng addr=...", and "tsto !r"
specifications, returning them to their default values before the trace begins.
You can see the progress of your trace with the command, Display→Status.
A line in the Trace Status listing will show how many states have been
captured.
6 The notation "trig1 break" usually followed by "Emulation trace
complete" will appear on the status line. If "trig1 break" remains on
the status line without "Emulation trace complete", manually stop the
trace with the command:
Trace→Stop
You must wait for the notation "trig1 break" and/or "Emulation trace
complete" to appear on the status line; this ensures the trace memory is filled
during the trace (except for the unfilled space you specified in Step 2 above).
Note that when you set a delay specification using tgout -c or tgout -t (trigger
output delay before trace complete/after trigger), the trace will indicate
complete as soon as the analyzer has captured the state specified, even
though the entire trace memory has not been filled.
If the notation "trig1 break" remains on the status line without being replaced
by "Emulation trace complete", it indicates the trace memory is not
completely filled, and no more states are being captured.
7 Store the entire trace memory content in a file with a command like:
wait measurement_complete ; copy trace to <directory/filename>
The "wait" command is inserted ahead of the "copy" command to ensure that
the unload of trace data is complete before you try to store it. Without "wait",
you will get an ERROR message warning that the unload is still in process.
The <filename> is an ASCII filename for a binary file that can be viewed using
the load trace command.
8 Start a new trace with the command: trace again
221
Using the Emulation Analyzer
To capture a continuous stream of program execution no matter how large your
program
9 Resume the program run from the point where it was interrupted
when the emulator broke to the monitor with the command run.
10 Wait until the notation "trig1 break" and/or "Emulation trace
complete" appears on the status line. Then store the new trace
memory content in a new file with commands like:
stop_trace
wait measurement_complete ; copy trace to <directory/filename+1>
Note that "filename+1" in the above command suggests use of consecutive
filenames to store your execution files, such as FILENAME1, FILENAME2,
etc.
Repeat steps 8 through 10 above until all program execution has been
captured. Your destination directory will have a set of files that, taken
together, contain all of your program execution. Note that if you did not
prevent capture of foreground monitor cycles in step 3 above, the last few
trace lines in each file may contain monitor cycles.
222
Using the Sequencer
When you use the analyzer’s sequencer, you can specify traces that trigger on
a series, or sequence, of states. You can specify a state which, when found,
causes the analyzer to restart the search for the sequence of states. Also, the
analyzer’s sequencer allows you to trace "windows" of code execution.
This section describes how to:
•
•
•
•
Trigger after a sequence of states.
Specify a global restart state.
Trace "windows" of program execution.
Specify both sequencing and windowing.
The sequencing and windowing capabilities from within the Softkey Interface
are not as powerful or flexible as they are from within the Terminal Interface.
For example, in the Terminal Interface, you can specify different restart
states for each sequence term and you can set up a windowing trace
specification where the trigger does not have to be in the window. If you do
not find the sequencing flexibility you need from within Softkey Interface,
refer to the 6833x Emulator User’s Guide for the Terminal Interface.
223
Using the Emulation Analyzer
To trigger after a sequence of states
To trigger after a sequence of states
• Create your first specification form on the command line. That will
enter the proper format in the Trace Specification Selection dialog
box. Obtain the dialog box by choosing Trace→Trace Spec... You
can click on your specification in the dialog box, edit it if desired, and
click OK.
• Using the command line, specify a trace sequence by entering:
trace find_sequence <bus_state> occurs <#times>
then <bus_state> occurs <#times> trigger
<bus_state>
<bus_state> represents a combination of address, data and status
expressions that must be matched to satisfy the trigger or sequence qualifier.
<#times> is the number of times that bus state must occur to satisfy the
qualifier.
The analyzer’s sequencer has several levels (also called sequence terms).
Each state in the series of states to be found before triggering, as well as the
trigger state, is associated with a sequence term.
When triggering using the sequencer, the analyzer searches for the state
associated with the first sequence term. When that state is captured, the
analyzer starts searching for the state associated with the second term, and
so on. The last sequence term used is associated with the trigger state.
When the trigger state is captured the analyzer is triggered. Up to seven
sequence terms and an optional occurrence count for each term are available.
224
Using the Emulation Analyzer
To trigger after a sequence of states
Examples
In the demo program, suppose you wish to trigger on the following sequence
of events: the "save_points" function, the "interrupt_sim" function, and finally
the "do_sort" function. Also, suppose you wish to store only opcode fetches of
the assembly language LINK A6,#0 instruction (data values that equal
4E56H) to show function entry addresses.
To set up the sequencing trace specification, enter the following trace
command.
trace find_sequence save_points then
interrupt_sim trigger about do_sort only data
4e56h
set source off
Notice the states that contain "sq adv" in the first column (you may have to
press <PREV> in order to see the states captured prior to the trigger).
These are the states associated with (or captured for) each sequence term.
Just as the trigger state is always stored in trace memory, the states captured
in the sequence are always stored if the trace buffer is deep enough.
225
Using the Emulation Analyzer
To specify a global restart state
To specify a global restart state
• Create your first specification form on the command line. That will
enter the proper format in the Trace Specification Selection dialog
box. Obtain the dialog box by choosing Trace→Trace Spec... You
can click on your specification in the dialog box, edit it if desired, and
click OK.
• Using the command line, restart the search for the trace sequence
terms by including the restart parameter in
trace find_sequence <bus_state> occurs <#times>
then <bus_state> occurs <#times> restart
<bus_state> trigger <bus_state>
<bus_state> represents a combination of address, data and status
expressions that must be matched to satisfy the trigger or sequence qualifier.
<#times> is the number of times the selected bus state must occur to satisfy
the qualifier.
The restart qualifier allows you to restart the trace sequence whenever a
certain instruction or data access occurs. For example, you might have a
complicated trace sequence that searches for an intermittent failure
condition. You could set the restart term to restart the sequence whenever a
bus cycle occurred that ensures that the code segment would perform
correctly. Thus, the trace will be satisfied only when that restart term never
occurs and the code segment fails.
Examples
In the demo program, suppose you wish to trigger on the following sequence
of events: the "save_points" function, the "interrupt_sim" function, and the
"do_sort" function. However, you only want to trigger when the
"interrupt_sim" calls the "do_sort" function. In other words, if the
"proc_specific" function is entered before the "do_sort" function is entered,
you know "interrupt_sim" did not call "do_sort" this time, and the analyzer
should start searching again from the beginning.
Again, suppose you wish to store only opcode fetches of the assembly
language LINK A6,#0 instruction (data values that equal 4E56H).
226
Using the Emulation Analyzer
To specify a global restart state
To set up this sequencing trace specification, enter the following trace
command.
trace find_sequence save_points then
interrupt_sim restart proc_specific trigger about
do_sort only data 4e56h
set source off
Notice in the preceding trace (you may have to press <PREV> in order to see
the states captured prior to the trigger) that, in addition to states captured in
the sequence, "sq adv" is also shown next to states which cause a sequencer
restart.
227
Using the Emulation Analyzer
To trace "windows" of program execution
To trace "windows" of program execution
• Create your first specification form on the command line. That will
enter the proper format in the Trace Specification Selection dialog
box. Obtain the dialog box by choosing Trace→Trace Spec... You
can click on your specification in the dialog box, edit it if desired, and
click OK.
• Using the command line, enter commands as follows:
• To trace only the states occurring after a particular bus cycle, enter:
trace enable <bus_state>
• To trace only the states occurring between two particular bus cycles, enter:
trace enable <bus_state> disable <bus_state>
<bus_state> represents a combination of address, data and status
expressions that must be matched to satisfy the windowing qualifier.
Windowing refers to the analyzer feature that allows you to turn on, or
enable, the capturing of states after some state occurs then to turn off, or
disable, the capturing of states when another state occurs. In effect,
windowing allows you capture "windows" of code execution.
Windowing is different than storing states in a range (the only range option in
the trace command syntax) because it allows you to capture execution of all
states in a window of code whereas storing states in a range won’t capture
the execution of subroutines that are called in that range or reads and writes
to locations outside that range.
When you use the windowing feature of the analyzer, the trigger state must
be in the window or else the trigger will never be found.
If you wish to combine the windowing and sequencing functions of the
analyzer, there are some restrictions:
• Up to four sequence terms are available when windowing is in effect.
• Global restart is not available when windowing is in effect.
• Occurrence counts are not available.
228
Using the Emulation Analyzer
To trace "windows" of program execution
Examples
In the demo program, suppose you are only interested in the execution that
occurs within the switch statement of the "combsort" function. You could
specify source line number 229 as the window enable state and the source
line number of the next statement (line number 241) as the window disable
state. Set up the windowing trace specification with the following command.
trace enable main."main.c": line 229 disable
main."main.c": line 241
set source on
Notice in the resulting trace (you have to press the <NEXT> key) that the
enable and disable states have the "sq adv" string in the line number column.
This is because the windowing feature uses the analyzer’s sequencer.
229
Using the Emulation Analyzer
To specify both sequencing and windowing
To specify both sequencing and windowing
• Create your first specification form on the command line. That will
enter the proper format in the Trace Specification Selection dialog
box. Obtain that dialog box by choosing Trace→Trace Spec... You
can click on your specification in the dialog box, edit it if desired, and
click OK.
• Using the command line, enter commands as follows:
• Specify a trace sequence that starts with a window and ends with a
trigger by entering:
trace enable <bus_state> disable <bus_state>
find_sequence <bus_state> then <bus_state>
trigger <bus_state>
<bus_state> represents a combination of address, data and status
expressions that must be matched to satisfy the trigger or sequence qualifier.
<#times> is the number of times that bus state must occur to satisfy the
qualifier.
You can use the sequencing and windowing specifications together to make
specification of complex qualifiers easier. If you use the windowing
specification, the sequence specification is limited to four sequence terms.
Also, note that when you use a windowing specification, you cannot use a
restart term with your sequence specification.
Example
Use the analyzer sequencer to trace states occurring between the start of the
example program and the call to the message interpreter, then trigger after
access to the variable that stores the value of current humidity, but only if it
is accessed after a specific series of events:
trace enable main disable proc_spec find_sequence
update_sys.get_targets then update_sys.write_hdwr
trigger after current_humid
230
Displaying the Trace List
The trace list is your view of the analyzer’s record of processor bus activity.
You can specify what is shown in the trace list to make it easier to find the
information of interest. For example, you can display symbol information
where available, or source lines from the high-level languages used to write
the target system program. You can also change the column widths and set
options for disassembly of the trace list.
This section covers many of the options available for controlling the trace
display. Display control is available through the Trace→Display Options...
dialog box, the trace list popup menu, and the command line. You can
combine most options within a single command on the command line to
obtain a desired trace display. See the display trace and set command
descriptions in the "Emulator/Analyzer Interface Commands" chapter for
more information. This section describes how to:
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Use the Trace Options dialog box.
Use the trace list popup menu.
Display the trace about a line number.
Move through the trace list.
Disassemble the trace list.
Specify trace disassembly options.
Specify trace dequeueing options.
Display the trace without disassembly.
Display symbols in the trace list.
Display source lines in the trace list.
Change the column width.
Select the type of count information in the trace list.
Offset addresses in the trace list.
Reset the trace display defaults.
Change the number of states available for display.
Display program memory associated with a trace list line.
Open an edit window into the source file associated with a trace list line.
231
Using the Emulation Analyzer
To specify both sequencing and windowing
Examples
To use the Trace Options dialog box:
Click to select the desired format
of trace disassembly.
Click to select the way that
absolute status information is
shown in the trace list.
Click to select count reference:
Relative (to preceding state), or
Absolute (to trigger).
Click to select trace list dequeuing,
if available for your emulator.
Enter the desired depth of the
trace memory to be unloaded for
display or storage in a file.
Enter a value to be subtracted
from addresses and
symbol/source-line references
shown in the trace list
Enter the desired trace list line
number to be placed on screen.
Click OK to
specify the
trace options
and close the
dialog box.
232
Click Apply to
specify the
trace options
and leave the
dialog box
open.
Click these
pushbuttons to
select
predefined or
previously
specified
entries.
Click this
pushbutton to
cancel the
entries and
close the
dialog box.
Using the Emulation Analyzer
To specify both sequencing and windowing
Examples
To use the trace list popup menu:
Click to begin trace
disassembly from the
selected line, moving
that line to the top of
the display.
Click to open an edit
window into the source
file that contains the
address of the selected line.
Click to open a display
window into memory
containing the address of
the selected line. Note that
the format of the memory
display will be mnemonic
for addresses in the code
segment and absolute
otherwise.
233
Using the Emulation Analyzer
To display the trace about a line number
To display the trace about a line number
• Choose Trace→Display Options... and in the dialog box, enter the
desired trace list line number in the field beside Move to Line. Then
click the OK or Apply pushbutton.
• Center the trace display about a particular state given by <LINE #>
by entering
display trace <LINE #>
If you need to move to a particular state quickly, you can use this command.
The command places the specified state in the center of the current trace
display.
Examples
Display the trace about line number 20:
Choose Trace→Display Options... and in the dialog box, enter 20 in the
field beside Move to Line. Then click the OK or Apply pushbutton.
Enter the following command on the command line to display the trace about
line number 256:
display trace 256
234
Using the Emulation Analyzer
To move through the trace list
To move through the trace list
• Use the scroll bar at the right of the display to scroll up and down.
Use the arrows at the bottom of the display (if any) to scroll left and
right.
• Using the command line, enter commands as follows:
•
•
•
•
•
•
To roll the trace display to the left, press <Ctrl>f simultaneously.
To roll the trace display to the right, press <Ctrl>g simultaneously.
To roll the display down one line, press the down arrow key.
To roll the display up one line, press the up arrow key.
To move to the previous page in the trace list, press the Pg Up or Prev key.
To move to the next page in the trace list, press the Pg Dn or Next key.
Though the trace display is set to 256 or more states, only 15 lines may be
displayed in the interface window, depending on your terminal type. You can
move through the trace list display using various key combinations.
You can roll the display left and right only if the trace list is wider than 80
columns. This may occur if you increased the width of the columns.
To disassemble the trace list
• Choose Trace→Display Options... and in the dialog box, select
Data Format Mnemonic. Then click the OK or Apply pushbutton.
• Use the mouse to place the cursor on a line in the trace list where
you want disassembly to begin. Then press the select mouse button,
and click on Disassemble From in the trace list popup menu.
• Using the command line, enter commands as follows:
• To disassemble instruction data in the trace list, enter:
display trace mnemonic
235
Using the Emulation Analyzer
To disassemble the trace list
• To control where trace list disassembly starts, enter:
display trace disassemble_from_line_number
<LINE #>
<LINE #> is a line number corresponding to a state in the trace list.
Disassembly of instruction data means that you will see instructions as they
would appear in an assembly language program listing. That is, instruction
mnemonics and operands are shown instead of hexadecimal instruction data.
The analyzer interface normally disassembles instruction data in the trace
list. However, if you specify absolute data display, that mode remains in
effect until you select the mnemonic option.
When you identify a particular trace list line where disassembly is to begin,
be sure to specify a line number that corresponds to an analyzer state with an
opcode fetch. The analyzer interface disassembles and displays the trace
starting with the state you specify.
Examples
To disassemble instruction data in the trace list starting at line 40:
Place the cursor on line 40, press the select mouse button, and click on
Disassemble From in the popup menu.
Or, using the command line, enter:
display trace disassemble_from_line_number 40
236
Using the Emulation Analyzer
To specify trace disassembly options
To specify trace disassembly options
• Selection of disassembly options is not supported in pulldowns of the
Graphical User Interface. By default, the Graphical User Interface
selects high_word and all_cycles. Use the command line if you
need to specify trace disassembly using other options.
• Using the command line, enter commands as follows:
• To show only instruction cycles in the trace list, enter:
display trace disassemble_from_line_number
<LINE#> instructions_only
• To show all bus cycles in the trace list, enter:
display trace disassemble_from_line_number
<LINE#> all_cycles
Normally, the MC6833x presents the trace list data as it was stored by the
analyzer. That is, all bus cycles are shown, and disassembly starts with the
most significant word of the data.
If you don’t want to see operand cycles in the trace list, specify the
instructions_only option.
The disassembly options remain in effect until you specify a new disassembly
option.
Note that although the "high_word," "low_word" and "align" options are
displayed, these are for 32-bit processors only, and will not perform any
action.
237
Using the Emulation Analyzer
To specify trace dequeueing options
Examples
Show only instruction cycles in the trace list starting at line 40:
display trace disassemble_from_line_number 40
instructions_only
Show all bus cycles in the trace list:
display trace disassemble_from_line_number 40
all_cycles
To specify trace dequeueing options
• Choose Trace→Display Options... and in the dialog box, select
Dequeue Enable. Then click the OK or Apply pushbutton.
• Using the command line, enter commands as follows:
• To dequeue the trace list, enter:
display trace dequeue on
• To display the trace list without dequeueing, enter:
display trace dequeue off
<LINE #> is a line number corresponding to a state in the trace list.
<STATE#> is the line number of the data operand that is associated with the
instruction at <LINE#>.
A dequeued trace list is available through the disassembly options. In a
dequeued trace list, unused instruction prefetch cycles are discarded, and
operand cycles are placed immediately following the corresponding
instruction fetch. If you choose a non-dequeued trace list, instruction and
operand fetches are shown exactly as captured by the analyzer.
238
Using the Emulation Analyzer
To specify trace dequeueing options
Once the dequeuer has been started on the correct opcode, it will continue to
disassemble correctly unless an unusual condition causes it to misinterpret
the data. By specifying the first instruction state for disassembly and the
number of the first operand cycle for that instruction, you can resynchronize
the disassembly.
You may see TAKEN, NOT TAKEN, or ?TAKEN? beside a branch in your
dequeued trace list. TAKEN is shown beside a branch if the dequeuer
determines that the branch was taken. NOT TAKEN is shown if the
dequeuer determines that the branch was definitely not taken. ?TAKEN?
means the dequeuer was not able to determine whether or not the branch
was taken. If you read down the trace list and see that the branch was taken,
use the disassemble_from_line_number command to restart disassembly
at the trace list line number of the branch destination.
Examples
Dequeue the trace list:
Choose Trace→Display Options... and in the dialog box, select Dequeue
Enable. Then click the OK or Apply pushbutton.
Or, using the command line, enter:
display trace dequeue on
Display the trace list without dequeueing:
display trace dequeue off
239
Using the Emulation Analyzer
To display the trace without disassembly
To display the trace without disassembly
• Choose Trace→Display Options... and in the dialog box, select
Data Format Absolute. You can select Hex, Binary, or Mnemonic
format for display of status information. Then click the OK or Apply
pushbutton.
• Using the command line, enter commands as follows:
• To display the trace list without instruction disassembly and with status
information in binary format, enter:
display trace absolute status binary
• To display the trace list without instruction disassembly and with status
information in hexadecimal format, enter:
display trace absolute status hex
• To display the trace list without instruction disassembly and with status
information in mnemonic format, enter:
display trace absolute status mnemonic
For some measurements, it may be more convenient for you to view the trace
data without instruction disassembly. The Data Format Absolute selection
in the Trace→Display Options... dialog box, or the display trace
absolute command allows you to do this. Notice that once you enter this
format selection, subsequent trace lists will displayed in this format until you
select the mnemonic format with the dialog box or display trace mnemonic
command again.
You can select the display format for the status information when you choose
Data Format Absolute in the dialog box, or when you use the display
trace absolute command. The status information can be displayed in
binary, hex, or as mnemonics that indicate the nature of the current bus
cycle (such as a read or write).
240
Using the Emulation Analyzer
To display the trace without disassembly
Examples
Display the trace list without instruction disassembly and with status
information in binary format:
Choose Trace→Display Options... and in the dialog box, select Data
Format Absolute. Select Status Format Binary. Then click the OK or
Apply pushbutton.
Or, using the command line, enter:
display trace absolute status binary
Display the trace list without instruction disassembly and with status
information in hexadecimal format, make appropriate entries in the
Trace→Display Options... dialog box, or enter the following command:
display trace absolute status hex
Display the trace list without instruction disassembly and with status
information in mnemonic format, make appropriate entries in the
Trace→Display Options... dialog box, or enter the following command:
display trace absolute status mnemonic
241
Using the Emulation Analyzer
To display symbols in the trace list
To display symbols in the trace list
• Choose Settings→Source/Symbol Modes→Symbols, or choose
Settings→Display Modes ..., and in the dialog box, click on
Symbolic Addresses. In the Field Widths area of the dialog box,
you can select the widths of the Label Field and Symbols in
Mnemonic Field to control the display space allocated to the
symbols. To select symbol types, use the command line, described
below.
• Using the command line, enter commands as follows:
• To display symbols in the trace list, enter:
set symbols on
• To display only high level symbols, enter:
set symbols high
• To display only low level symbols, enter:
set symbols low
• To display all symbols (both high and low level), enter:
set symbols all
When you enable symbol display, addresses and operands are replaced by the
symbols that correspond to those values. The symbol information is derived
from the SRU symbol database for that command file. See Chapter 6, "Using
the Emulator" for more information on SRU and symbol handling.
High-level symbols are those that are available only from high-level languages
such as a compiler. Low-level symbols are those that are available from
assembly language modules (which may include symbols generated internally
by a compiler).
242
Using the Emulation Analyzer
To display source lines in the trace list
The Settings→Source/Symbol Modes..., Settings→Display Modes..., or
set symbols command remains in effect until you enter a new
Settings→Source/Symbol Modes..., Settings→Display Modes..., or
set symbols command with different options.
Refer to Chapter 6, "Using the Emulator", for details of how to set up and use
the Display Modes dialog box.
To display source lines in the trace list
• Choose Settings→Source/Symbol Modes→Source Mixed or
Settings→Source/Symbol Modes→Source Only.
• Choose Settings→Display Modes..., and in the dialog box, click on
Source in Trace and select either Source Mixed or Source Only
from the submenu.
• Using the command line, enter commands as follows:
• To display mixed source and assembly language in the trace list, enter:
set source on
• To display only source language statements in the trace list, enter:
set source only
• To display only assembly language in the trace list, enter:
set source off
If you developed your target programs in a high-level language such as “C,”
you can display the source code in the trace list with the corresponding
assembly language statements. Or, you can choose to display only the source
listing without the assembly language information.
The analyzer uses the line-number information in the SRU symbol database
for the absolute file to reference between source lines and assembly language
information. Refer to Chapter 6, "Using the Emulator" for more information
on SRU and symbol handling.
243
Using the Emulation Analyzer
To change the column width
To change the column width
• Choose Settings→Display Modes..., and select desired widths for
information in the trace list by using the dialog box. Refer to the
"Examples" page under "To display symbols in the trace list", earlier
in this chapter for details of how to use the dialog box.
• To set the column width for the address column in the trace list,
enter:
set width label <WIDTH>
• To set the column width for the mnemonic column in the trace list,
enter:
set width mnemonic <WIDTH>
• To set the column width for source lines in the trace list, enter:
set width source <WIDTH>
<WIDTH> is an integer between 1 and 80, specifying the width of the column
in characters. (<WIDTH> is restricted to certain values which are shown if
you press the <WIDTH> softkey.)
You can display more information by widening a column or ignore the
information by narrowing the column. For example, you might want to widen
the label column so that you can see the complete names of the symbols in
that column.
You can combine multiple options on the command line to set the width for
several columns at once.
244
Using the Emulation Analyzer
To select the type of count information in the trace list
Example
Set the width of the address label column to 30 characters and the width of
the mnemonic column to 50 characters:
set width label 30 mnemonic 50
To select the type of count information in the trace list
• Choose Trace→Display Options... and in the dialog box, select
Count Format Relative or Absolute, as desired. Then click the OK or
Apply pushbutton.
• To display count information in the trace list relative to the trigger
state, enter:
display trace count absolute
• To display count information in the trace list relative to the previous
trace list state, enter:
display trace count relative
Count information may be displayed two ways: relative (which is the default),
or absolute. When relative is selected, count information is displayed relative
to the previous state. When absolute is selected, count information is
displayed relative to the trigger condition.
The count information in the trace list is always displayed if count display is
turned on. To turn on the trace counting function, enter a command
beginning with trace counting on the command line. Refer to "To count
states or time" later in this manual for details.
When using the 1K analyzer, the trace memory is 512 states deep if counting
states or time is turned on and 1024 states deep if counting is turned off. To
disable counting in the 1K analyzer, use the command trace counting off.
When using the deep analyzer, full memory depth is always available; the
depth of the deep analyzer is not affected by the counting selected. See “To
count states or time.”
245
Using the Emulation Analyzer
To select the type of count information in the trace list
Examples
Count time and store only each iteration of the update_sys symbol in the
demo program (if using the 1K analyzer, make sure the clock speed is set to
"Slow" in the configuration):
Specify the trace for the emulator:
trace only update_sys counting time
Now, start the program run; then display the trace:
run from transfer_address
display trace count relative
Count absolute entries into the get_targets routine of the demo program:
trace only address range update_sys thru
update_sys end counting state get_targets
run from transfer_address
display trace count absolute
246
Using the Emulation Analyzer
To offset addresses in the trace list
To offset addresses in the trace list
• Choose Trace→Display Options... and in the dialog box, enter the
desired offset value in the field beside Address Offset. Then click the
OK or Apply pushbutton.
• Use the offset_by command-line option to the display trace
command.
The Address Offset or offset_by trace display options allow you to cause the
address information in the trace display to be offset by the amount specified.
The offset value is subtracted from the instruction’s physical address to yield
the address that is displayed.
If code gets relocated and therefore makes symbolic information invalid, you
can use the Address Offset or offset_by option to change the address
information so that it again agrees with the symbolic information.
You can also specify an offset to cause the listed addresses to match the
addresses in compiler or assembler listings.
Example
Trace execution from entry of the demo program (the main label) then offset
by the value of main so that the addresses appear the same as the location
counter in the assembler listing:
reset
trace
run from transfer_address
display trace offset_by main
247
Using the Emulation Analyzer
To reset the trace display defaults
To reset the trace display defaults
• Choose Settings→Display Modes... Then in the dialog box, click
on Default All Settings, and click the OK pushbutton. This leaves the
trace display in the "source intermixed and symbols on" mode.
• Using the command line, enter:
set default
This turns off all symbolics and source references in the interface.
To change the number of states available for display
• Choose Trace→Display Options... and in the dialog box, enter the
desired number of states to be made available for display in the field
beside Unload Depth. Then click the OK or Apply pushbutton.
• Using the command line, set the depth of the trace list with:
display trace depth <DEPTH#>
<DEPTH#> is the number of states to be available in the trace list for
displaying, copying, or storing to a file. If you are using the deep analyzer,
the depth of the trace list buffer depends on whether or not you installed
memory modules on the analyzer card, and the capacity of the memory
modules installed. Refer to the Hewlett-Packard MC6833x
Emulator/Analyzer Installation/Service/Terminal Interface Guide for
details. If you are using the 1K analyzer, the trace list buffer is 512 or 1024
states deep (depending on whether or not you turn on the state/time count).
See "To count states or time" in this chapter.)
When you display the trace list, the interface requests the number of states
specified by the trace depth from the emulator. If you want faster trace
display, you can decrease the trace depth. To display more states, you can
increase the trace depth. Notice that the trace depth setting only regulates
the number of states sent from the emulation-bus analyzer to the interface.
You still need to use the Pg Up and Pg Dn keys to page through the trace list.
248
Using the Emulation Analyzer
To display program memory associated with a trace list line
Examples
Set the depth of the trace memory to 256 states:
Choose Trace→Display Options... and in the dialog box, enter 256 in the
field beside Unload Depth. Then click the OK or Apply pushbutton.
Set the depth of the trace to 1024 states:
display trace depth 1024
To display program memory associated with a trace
list line
• Using the mouse, place the cursor on the line in the trace list where
you want to see the associated content of program memory. Then
press the select mouse button, and click on Display Memory At in
the trace list popup menu.
You will see a display of memory at the location of the program that emitted
the selected trace list line. This is the same as placing the program address
of the selected trace list line in the entry buffer and choosing
Display→Memory→At() in the pulldown menus.
To open an edit window into the source file associated
with a trace list line
• Using the mouse, place the cursor on the line in the trace list whose
source file you wish to edit. Then press the select mouse button, and
click on Edit Source in the trace list popup menu.
A new window will open. It will show the source file that emitted the line you
selected in the trace list. An edit session will be in progress on the source file
in the new window. When you complete the desired edit, save the file and
close the window.
249
Saving and Restoring Trace Data and
Specifications
The emulator/analyzer can save your trace data and trace specifications in a
file for later use. This can help you record measurement results that you can
use for comparison with other tests, and it is useful to automate
measurements.
Suppose you’re using the emulator in a manufacturing test application. The
target system is your product board. You might build a command file that
recalls a trace specification, makes the trace on the target board, and then
recalls a previous measurement result (from a working product) and
compares it to the new measurement (using the UNIX diff command).
This section describes how to:
•
•
•
•
Store a trace specification.
Store trace data.
Load a trace specification.
Load trace data.
To store a trace specification
• Choose File→Store→Trace Spec... In the dialog box, select an
existing filename or specify a new filename to contain the present
trace specification. Then click OK.
• Using the command line, store the current trace specification by
entering:
store trace_spec <filename>
<filename> is any UNIX file name including paths. The extension .TS is
automatically added to the file name.
The trace specification file is a binary file.
The store trace_spec command allows you to save a trace specification
(effectively the current trace command with all trigger, storage and sequence
options) in a file for later use. For example, you might have several trace
250
Using the Emulation Analyzer
To store trace data
commands that you want to make every time your target system program is
modified. You can store each trace command in a separate file and recall it
later using the load trace_spec command.
Example
Store a trace specification to a file:
store trace_spec tspec.TS
To store trace data
• Choose File→Store→Trace Data... In the dialog box, select an
existing filename or specify a new filename to contain the present
trace memory content. Then click OK.
• Using the command line, store the current trace data by entering:
store trace <filename>
<filename> is any UNIX file name including paths. The trace data file is a
binary file. The extension .TR is automatically added to the file name. A
trace data file can be reloaded into the interface and displayed like any other
trace listing.
You can store the trace data resulting from a measurement. This can be
useful if you want to compare the results of later measurements with a
reference result obtained in an earlier measurement.
Example
Store a trace to a file:
store trace trace1.TR
251
Using the Emulation Analyzer
To load a trace specification
To load a trace specification
• Choose File→Load→Trace Spec... In the dialog box, click on the
name of the trace specification you want to load (placing it in the
Load Trace Specification box). Then click OK.
• Using the command line, load an existing trace specification from a
file by entering:
load trace_spec <filename>
<filename> is any UNIX file name including paths. The extension .TS is
assumed.
Once you save a trace specification in a file using the File→Store→Trace
Spec... or store trace_spec command, you can load it using the appropriate
command above. To start a trace with the trace specification that you loaded,
use the Trace→Again or trace again command.
Example
Load a trace specification from a file and start the trace:
load trace_spec tspec
trace again
252
Using the Emulation Analyzer
To load trace data
To load trace data
• Choose File→Load→Trace Data... In the dialog box, click on the
name of the trace data file (file of trace memory content) you want to
load (placing it in the Load Trace Data box). Then click OK.
• Using the command line, load trace data from a file by entering:
load trace <filename>
<filename> is any UNIX file name including paths. The extension .TR is
assumed.
Loads a previously saved trace from a binary trace data file (with a ".TR"
suffix).
Once you save trace data in a file using the File→Store→Trace Data... or
store trace command, you can reload it. To view the data you loaded, use
the Display→Trace, Trace→Display, or display trace command.
Remember that a new trace measurement will overwrite this trace data (but
not the file from which it was loaded).
The interface will try to display the trace listing in the display format active
when the trace data was stored. If the interface needs symbols to replace
absolute addresses or to find high-level source lines, and symbols are not
loaded, an error occurs.
For example, suppose "source-mixed" was the display mode when the trace
was captured and the executable file "test1" was the file being executed in
the emulator/target system. To reload and display a trace listing saved from
that emulation session requires reloading the symbols for "test1".
Example
Load a trace from a file:
load trace trace1
253
254
8
Making Software Performance
Measurements
255
Making Software Performance Measurements
The Software Performance Measurement Tool (SPMT) is a feature of the
Softkey Interface that allows you to make software performance
measurements on your programs.
The SPMT allows you to make some of the measurements that are possible
with the HP 64708 Software Performance Analyzer and its Graphical User
Interface (HP B1487).
The SPMT post-processes information from the analyzer trace list. When you
end a performance measurement, the SPMT dumps the post-processed
information to a binary file, which is then read using the perf32 report
generator utility.
Two types of software performance measurements can be made with the
SPMT: activity measurements, and duration measurements.
This chapter describes tasks you perform while using the Software
Performance Measurement Tool (SPMT). These tasks are grouped into the
following sections:
• Activity performance measurements.
• Duration performance measurements.
• Running performance measurements and creating reports.
256
Activity Performance Measurements
Activity measurements are measurements of the number of accesses (reads
or writes) within an address range. The SPMT shows you the percentage of
analyzer trace states that are in the specified address range, as well as the
percentage of time taken by those states. Two types of activity are
measured: memory activity, and program activity.
Memory activity is all activity that occurs within the address range.
Program activity is the activity caused by instruction execution in the
address range. Program activity includes opcode fetches and the cycles that
result from the execution of those instructions (reads and writes to memory,
stack pushes, etc.).
For example, suppose an address range being measured for activity contains
an opcode that causes a stack push, which results in multiple write
operations to the stack area (outside the range). The memory activity
measurement will count only the stack push opcode cycle. However, the
program activity measurement will count the stack push opcode cycle and
the write operations to the stack.
By comparing the program activity and the memory activity in an address
range, you can get an idea of how much activity in other areas is caused by
the code being measured. An activity measurement report of the code
(prog), data, and stack sections of a program is shown below.
Label
prog
Address Range
ADEH thru
Memory Activity
State Percent
Time
Rel = 57.77
Mean = 295.80
Percent Rel = 60.97
Program Activity
State Percent
Time
Rel = 99.82
Mean = 511.10
Percent Rel = 99.84
1261H
Abs =
Sdv =
Abs =
57.77
26.77
60.97
Abs =
Sdv =
Abs =
99.82
0.88
99.84
257
Making Software Performance Measurements
data
Address Range
6007AH thru
Memory Activity
State Percent
Time
Rel = 30.51
Mean = 156.20
Percent Rel = 28.09
Program Activity
State Percent
Time
Rel =
Mean =
Percent Rel =
0.18
0.90
0.16
603A5H
Abs =
Sdv =
Abs =
30.51
31.87
28.09
Abs =
Sdv =
Abs =
0.18
0.88
0.16
stack
Address Range
40000H thru
Memory Activity
State Percent
Time
Rel =
Mean =
Percent Rel =
Program Activity
State Percent
Time
Rel =
Mean =
Percent Rel =
43FFFH
11.72
60.00
10.94
Abs =
Sdv =
Abs =
11.72
29.24
10.94
0.00
0.00
0.00
Abs =
Sdv =
Abs =
0.00
0.00
0.00
prog
data
stack
Graph of Memory Activity relative state percents >= 1
57.77% *****************************
30.51% ****************
11.72% ******
prog
data
stack
Graph of Memory Activity relative time percents >= 1
60.97% *******************************
28.09% **************
10.94% ******
prog
Graph of Program Activity relative state percents >= 1
99.82% **************************************************
258
Making Software Performance Measurements
prog
Graph of Program Activity relative time percents >= 1
99.84% **************************************************
Summary Information for
10 traces
Memory Activity
State count
Relative count
5120
Mean sample
170.67
Mean Standard Dv 29.30
95% Confidence 12.28% Error tolerance
Time count
Relative Time - Us 2221.20
Program Activity
State count
Relative count
5120
Mean sample
170.67
Mean Standard Dv 0.58
95% Confidence 0.24% Error tolerance
Time count
Relative Time - Us 2221.20
Absolute Totals
Absolute count - state
5120
Absolute count - time - Us 2221.20
This section describes how to:
• Set up the trace command for activity measurements.
• Initialize activity performance measurements.
• Interpret activity measurement reports.
259
Making Software Performance Measurements
To set up the trace command for activity measurements
To set up the trace command for activity
measurements
1 Specify a trace display depth of 512.
2 Trace after any state, store all states, and count time.
Before you initialize and run performance measurements, the current trace
command (in other words, the last trace command entered) must be properly
set up.
In general, you want to give the SPMT as many trace states as possible to
post-process, so you should increase the trace depth to the maximum
number, as shown in the following command.
If you wish to measure activity as a percentage of all activity, the current
trace command should be the default (in other words, trace <RETURN>).
The default trace command triggers on any state, and all captured states are
stored. It is important that time be counted by the analyzer; otherwise, the
SPMT measurements will not be correct. Also, since states are stored "after"
the trigger state, the maximum number of captured states appears in each
trace list.
You can qualify trace commands any way you like to obtain specific
information. However, when you qualify the states that get stored in the
trace memory, your SPMT results will be biased by your qualifications; the
percentages shown will be of only those states stored in the trace list.
Examples
To specify a trace depth of 512:
display trace depth 512
To trace after any state, store all states, and count time:
trace counting time
260
Making Software Performance Measurements
To initialize activity performance measurements
To initialize activity performance measurements
• Use the performance_measurement_initialize command.
After you set up the trace command, you must tell the SPMT the address
ranges on which you wish to make activity measurements. This is done by
initializing the performance measurement. You can initialize the performance
measurement in the following ways:
• Default initialization (using global symbols if the symbols database is
loaded).
•
•
•
•
Initialize with user-defined files.
Initialize with global symbols.
Initialize with local symbols.
Restore a previous performance measurement (if the emulation system
has been exited and re-entered).
Default Initialization
Entering the performance_measurement_initialize command with no
options specifies an activity measurement. If a valid symbolic database has
been loaded, the addresses of all global procedures and static symbols will be
used; otherwise, a default set of ranges that cover the entire processor
address range will be used.
Initialization with User Defined Ranges
You can specifically give the SPMT address ranges to use by placing the
information in a file and entering the file name in the
performance_measurement_initialize command.
261
Making Software Performance Measurements
To initialize activity performance measurements
Address range files may contain program symbols (procedure name or
static), user defined address ranges, and comments. An example address
range file is shown below.
# Any line which starts with a # is a comment.
# All user’s labels must be preceded by a "|".
|users_label 10H 1000H
program_symbol
# A program symbol can be a procedure name or a static.
# cedure name the range of that procedure will be used.
In the case of a pro-
|users_label2 program_symbol1 -> program_symbol2
# "->" means thru. The above will define a range which starts with symbol1
# and goes thru symbol2. If both symbols are procedures then the range will
# be defined as the start of symbol1 thru the end of symbol2.
dir1/dir2/source_file.s:local_symbol
# The above defines a range based on the address of local_symbol.
Initialization with Global Symbols
When the performance_measurement_initialize command is entered
with no options or with the global_symbols option, the global symbols in the
symbols database become the address ranges for which activity is measured.
If the symbols database is not loaded, a default set of ranges that cover the
entire processor address range will be used.
The global symbols database contains procedure symbols, which are
associated with the address range from the beginning of the procedure to the
end, and static symbols, which are associated with the address of the static
variable.
262
Making Software Performance Measurements
To initialize activity performance measurements
Initialization with Local Symbols
When the performance_measurement_initialize command is entered
with the local_symbols_in option and a source file name, the symbols
associated with that source file become the address ranges for which activity
is measured. If the symbols database is not loaded, an error message will
occur telling you that the source filename symbol was not found.
You can also use the local_symbols_in option with procedure symbols; this
allows you to measure activity related to the symbols defined in a single
function or procedure.
Restoring the Current Measurement
The performance_measurement_initialize restore command allows you
to restore old performance measurement data from the perf.out file in the
current directory.
If you have not exited and re-entered emulation, you can add traces to a
performance measurement simply by entering another
performance_measurement_run command. However, if you exit and
re-enter the emulation system, you must enter the
performance_measurement _initialize restore command before you
can add traces to a performance measurement. When you restore a
performance measurement, make sure your current trace command is
identical to the command used with the restored measurement.
The restore option checks the emulator software version and will only work if
the perf.out files you are restoring were made with the same software version
as is presently running in the emulator. If you ran tests using a former
software version and saved perf.out files, then updated your software to a
new version number, you will not be able to restore old perf.out
measurement files.
263
Making Software Performance Measurements
To initialize activity performance measurements
Examples
Suppose the "addr_ranges" file contains the names of all the functions in the
"ecs" demo program loop:
combsort
do_sort
gen_ascii_data
get_targets
graph_data
interrupt_sim
proc_specific
read_conditions
save_points
set_outputs
strcpy8
update_system
write_hdwr
Since these labels are program symbols, you do not have to specify the
address range associated with each label; the SPMT will search the symbol
database for the addresses of each label.
An easy way to create the "addr_ranges" file is to use the copy
global_symbols command to copy the global symbols to a file named
"addr_ranges"; then, fork a shell to UNIX (by entering "! <RETURN>" on the
Softkey Interface command line) and edit the file so that it contains the
procedure names shown above. Enter a <CTRL>d at the UNIX prompt to
return to the Softkey Interface.
To initialize the activity measurement with a user-defined address range file:
performance_measurement_initialize addr_ranges
264
Making Software Performance Measurements
To interpret activity measurement reports
To interpret activity measurement reports
• View the performance measurement report.
Activity measurements are measurements of the number of accesses (reads
or writes) within an address range. The reports generated for activity
measurements show you the percentage of analyzer trace states that are in
the specified address range, as well as the percentage of time taken by those
states. The performance measurement must include four traces before
statistics (mean and standard deviation) appear in the activity report. The
information you will see in activity measurement reports is described below.
Memory Activity All activity found within the address range.
Program Activity All activity caused by instruction execution in the
address range. Program activity includes opcode fetches and the cycles
that result from the execution of those instructions (reads and writes to
memory, stack pushes, etc.).
Relative With respect to activity in all ranges defined in the
performance measurement.
Absolute With respect to all activity, not just activity in those ranges
defined in the performance measurement.
Mean Average number of states in the range per trace. The following
equation is used to calculate the mean:
265
Making Software Performance Measurements
To interpret activity measurement reports
Standard Deviation Deviation from the mean of state count. The
following equation is used to calculate standard deviation:
N
mean
Ssumq
Where:
Number of traces in the measurement.
Average number of states in the range per trace.
Sum of squares of states in the range per trace.
Symbols Within Range Names of other symbols that identify
addresses or ranges of addresses within the range of this symbol.
Additional Symbols for Address Names of other symbols that also
identify this address.
Note that some compilers emit more than one symbol for certain addresses.
For example, a compiler may emit "interrupt_sim" and "_interrupt_sim" for
the first address in a routine named interrupt_sim. The analyzer will show
the first symbol it finds to represent a range of addresses, or a single address
point, and it will show the other symbols under either "Symbols within range"
or "Additional symbols for address", as applicable. In the "interrupt_sim"
example, it may show either "interrupt_sim" or "_interrupt_sim" to represent
the range, depending on which symbol it finds first. The other symbol will be
shown below "Symbols within range" in the report. These conditions appear
particularly in default measurements that include all global and local symbols.
Relative and Absolute Counts Relative count is the total number of
states associated with the address ranges in the performance
measurement. Relative time is the total amount of time associated with
the address ranges in the performance measurement. The absolute
counts are the number of states or amount of time associated with all the
states in all the traces.
266
Making Software Performance Measurements
To interpret activity measurement reports
Error Tolerance and Confidence Level An approximate error may
exist in displayed information. Error tolerance for a level of confidence is
calculated using the mean of the standard deviations and the mean of the
means. Error tolerance gives an indication of the stability of the
information. For example, if the error is 5% for a confidence level of
95%, then you can be 95% confident that the information has an error of
5% or less.
The Student’s "T" distribution is used in these calculations because it
improves the accuracy for small samples. As the size of the sample increases,
the Student’s "T" distribution approaches the normal distribution.
The following equation is used to calculate error tolerance:
Om
t
N
Pm
Examples
Where:
Mean of the standard deviations.
Table entry in Student’s "T" table for a given confidence level.
Number of traces in the measurement.
Mean of the means (i.e., mean sample).
Consider the following activity measurement report (generated with the
commands shown):
display trace depth 512
trace counting time
performance_measurement_initialize addr_ranges
performance_measurement_run 20
performance_measurement_end
!perf32 | more
267
Making Software Performance Measurements
To interpret activity measurement reports
Label
set_outputs
Address Range
1784H thru
1814H
Memory Activity
State Percent
Time
Rel = 30.28
Mean = 128.00
Percent Rel = 30.45
Program Activity
State Percent
Time
update_system
Address Range
Rel = 28.97
Mean = 128.00
Percent Rel = 29.28
159CH thru
Rel = 30.28
Mean = 128.00
Percent Rel = 30.44
Program Activity
State Percent
Time
read_conditions
Address Range
Rel = 28.99
Mean = 128.10
Percent Rel = 29.29
16EEH thru
Memory Activity
State Percent
Time
Rel =
Mean =
Percent Rel =
Program Activity
State Percent
Time
strcpy8
268
Rel =
Mean =
Percent Rel =
Abs = 25.00
Sdv = 227.46
Abs = 25.45
1656H
Memory Activity
State Percent
Time
Abs = 25.00
Sdv = 227.46
Abs = 25.45
Abs = 25.00
Sdv = 227.46
Abs = 25.45
Abs = 25.02
Sdv = 227.40
Abs = 25.46
177CH
12.11
51.20
12.18
Abs = 10.00
Sdv = 157.59
Abs = 10.18
11.59
51.20
11.71
Abs = 10.00
Sdv = 157.59
Abs = 10.18
Making Software Performance Measurements
To interpret activity measurement reports
Address Range
10B0H thru
Memory Activity
State Percent
Time
Rel =
Mean =
Percent Rel =
Program Activity
State Percent
Time
interrupt_sim
Address Range
Rel =
Mean =
Percent Rel =
101EH thru
Memory Activity
State Percent
Time
Rel =
Mean =
Percent Rel =
Program Activity
State Percent
Time
write_hdwr
Address Range
Rel =
Mean =
Percent Rel =
181CH thru
Memory Activity
State Percent
Time
Rel =
Mean =
Percent Rel =
Program Activity
State Percent
Time
proc_specific
Address Range
Rel =
Mean =
Percent Rel =
1A6CH thru
110AH
9.75
41.20
9.45
Abs =
8.05
Sdv = 116.63
Abs =
7.90
12.39
54.75
11.83
Abs = 10.69
Sdv = 149.76
Abs = 10.28
10A8H
6.15
26.00
5.96
Abs =
5.08
Sdv = 114.41
Abs =
4.98
5.97
26.40
5.81
Abs =
5.16
Sdv = 114.35
Abs =
5.05
1894H
6.06
25.60
6.10
Abs =
5.00
Sdv = 114.49
Abs =
5.10
5.79
25.60
5.86
Abs =
5.00
Sdv = 114.49
Abs =
5.10
1A8CH
269
Making Software Performance Measurements
To interpret activity measurement reports
Memory Activity
State Percent
Time
Rel =
Mean =
Percent Rel =
Program Activity
State Percent
Time
Rel =
Mean =
Percent Rel =
3.84
16.25
3.86
Abs =
Sdv =
Abs =
3.17
72.67
3.23
3.70
16.35
3.73
Abs =
Sdv =
Abs =
3.19
73.12
3.24
combsort
Address Range
124EH thru
Memory Activity
State Percent
Time
Rel =
Mean =
Percent Rel =
Program Activity
State Percent
Time
Rel =
Mean =
Percent Rel =
1444H
1.06
4.50
1.06
Abs =
Sdv =
Abs =
0.88
20.12
0.89
1.90
8.40
1.80
Abs =
Sdv =
Abs =
1.64
37.57
1.56
do_sort
Address Range
144CH thru
Memory Activity
State Percent
Time
Rel =
Mean =
Percent Rel =
Program Activity
State Percent
Time
gen_ascii_data
Address Range
Rel =
Mean =
Percent Rel =
1112H thru
Memory Activity
State Percent
270
Rel =
14EAH
0.47
2.00
0.49
Abs =
Sdv =
Abs =
0.39
5.30
0.41
0.70
3.10
0.69
Abs =
Sdv =
Abs =
0.61
7.68
0.60
1246H
0.00
Abs =
0.00
Making Software Performance Measurements
To interpret activity measurement reports
Time
Mean =
Rel =
0.00
0.00
Sdv =
Abs =
0.00
0.00
Rel =
Mean =
Percent Rel =
0.00
0.00
0.00
Abs =
Sdv =
Abs =
0.00
0.00
0.00
Percent
Program Activity
State Percent
Time
get_targets
Address Range
165EH thru
Memory Activity
State Percent
Time
Rel =
Mean =
Percent Rel =
Program Activity
State Percent
Time
graph_data
Address Range
Rel =
Mean =
Percent Rel =
1988H thru
Memory Activity
State Percent
Time
Rel =
Mean =
Percent Rel =
Program Activity
State Percent
Time
proc_spec_init
Address Range
Rel =
Mean =
Percent Rel =
1A48H thru
Memory Activity
State Percent
Time
Rel =
Mean =
Percent Rel =
16E6H
0.00
0.00
0.00
Abs =
Sdv =
Abs =
0.00
0.00
0.00
0.00
0.00
0.00
Abs =
Sdv =
Abs =
0.00
0.00
0.00
1A40H
0.00
0.00
0.00
Abs =
Sdv =
Abs =
0.00
0.00
0.00
0.00
0.00
0.00
Abs =
Sdv =
Abs =
0.00
0.00
0.00
1A64H
0.00
0.00
0.00
Abs =
Sdv =
Abs =
0.00
0.00
0.00
271
Making Software Performance Measurements
To interpret activity measurement reports
Program Activity
State Percent
Time
save_points
Address Range
Rel =
Mean =
Percent Rel =
189CH thru
Memory Activity
State Percent
Time
Rel =
Mean =
Percent Rel =
Program Activity
State Percent
Time
Rel =
Mean =
Percent Rel =
0.00
0.00
0.00
Abs =
Sdv =
Abs =
0.00
0.00
0.00
1980H
0.00
0.00
0.00
Abs =
Sdv =
Abs =
0.00
0.00
0.00
0.00
0.00
0.00
Abs =
Sdv =
Abs =
0.00
0.00
0.00
Graph of Memory Activity relative state percents >= 1
set_outputs
30.28% ***************
update_system
30.28% ***************
read_conditions
12.11% ******
strcpy8
9.75% *****
interrupt_sim
6.15% ***
write_hdwr
6.06% ***
proc_specific
3.84% **
combsort
1.06% *
Graph of Memory Activity relative time percents >= 1
set_outputs
30.45% ***************
update_system
30.44% ***************
read_conditions
12.18% ******
strcpy8
9.45% *****
interrupt_sim
5.96% ***
write_hdwr
6.10% ***
proc_specific
3.86% **
combsort
1.06% *
Graph of Program Activity relative state percents >= 1
272
Making Software Performance Measurements
To interpret activity measurement reports
set_outputs
update_system
read_conditions
strcpy8
interrupt_sim
write_hdwr
proc_specific
combsort
28.97%
28.99%
11.59%
12.39%
5.97%
5.79%
3.70%
1.90%
***************
***************
******
******
***
***
**
*
Graph of Program Activity relative time percents >= 1
set_outputs
29.28% ***************
update_system
29.29% ***************
read_conditions
11.71% ******
strcpy8
11.83% ******
interrupt_sim
5.81% ***
write_hdwr
5.86% ***
proc_specific
3.73% **
combsort
1.80% *
Summary Information for
20 traces
Memory Activity
State count
Relative count
8455
Mean sample
30.20
Mean Standard Dv 75.44
95% Confidence 116.98% Error tolerance
Time count
Relative Time - Us 3500.92
Program Activity
State count
Relative count
8838
Mean sample
31.56
Mean Standard Dv 79.24
95% Confidence 117.55% Error tolerance
Time count
Relative Time - Us 3641.08
Absolute Totals
Absolute count - state
10240
Absolute count - time - Us 4188.56
273
Making Software Performance Measurements
To interpret activity measurement reports
The measurements for each label are printed in descending order according
to the amount of activity. You can see that the set_outputs function has the
most activity. Also, you can see that no activity is recorded for several of the
functions. The histogram portion of the report compares the activity in the
functions that account for at least 1% of the activity for all labels defined in
the measurement.
274
Duration Performance Measurements
Duration measurements provide a best-case/worst-case characterization of
code execution time. These measurements record execution times that fall
within a set of specified time ranges. The analyzer trace command is set up
to store only the entry and exit states of the module to be measured (for
example, a C function or Pascal procedure). The SPMT provides two types of
duration measurements: module duration, and module usage.
Module duration measurements record how much time it takes to execute a
particular code segment (for example, a function in the source file).
Module usage shows how much of the execution time is spent outside of the
module (from exit to entry). This measurement gives an indication of how
often the module is being used.
When using the SPMT to perform duration measurements, there should be
only two addresses stored in the trace memory: the entry address, and the
exit address. Recursion can place several entry addresses before the first
exit address, and/or several exit addresses before the first entry address.
Duration measurements are made between the last entry address in a series
of entry addresses, and the last exit address in a series of exit addresses (see
the figure below). All of the entry and exit addresses which precede these
last addresses are assumed to be unused prefetches, and are ignored during
time measurements.
START
START
START
START
END
END
END
END
START
START
START
START
END
END
-
assumed prefetch
assumed prefetch
assumed prefetch
last ENTRY address assumed prefetch
assumed prefetch
assumed prefetch
last EXIT address assumed prefetch
assumed prefetch
assumed prefetch
last ENTRY address assumed prefetch
assumed prefetch
Measure duration
Measure duration
275
Making Software Performance Measurements
To set up the trace command for duration measurements
When measuring a recursive function, module duration will be measured
between the last recursive call and the true end of the recursive execution.
This will affect the accuracy of the measurement.
If a module is entered at the normal point, and then exited by a point other
than the defined exit point, the entry point will be ignored. It will be judged
the same as any other unused prefetch, and no time-duration measurement
will be made. Its time will be included in the measure of time spent outside
the procedure or function.
If a module is exited from the normal point, and then re-entered from some
other point, the exit will also be assumed to be an unused prefetch of the exit
state.
Note that if you are making duration measurements on a function that is
recursive, or one that has multiple entry and/or exit points, you may wind up
with invalid information.
This section describes how to:
• Set up the trace command for duration measurements.
• Initialize duration performance measurements.
• Interpret duration measurement reports.
To set up the trace command for duration
measurements
1 Specify a trace display depth of 512.
2 Trace after and store only function start and end addresses.
For duration measurements, the trace command must be set up to store only
the entry and exit points of the module of interest. Since the trigger state is
always stored, you should trigger on the entry or exit points. For example:
trace after symbol_entry or symbol_exit only
symbol_entry or symbol_exit counting time
CAUTION
The previous command depends on the generation of correct exit address
symbols by the software development tools.
276
Making Software Performance Measurements
To set up the trace command for duration measurements
Or:
trace after module_name start or module_name end
only module_name start or module_name end
counting time
Where "symbol_entry" and "symbol_exit" are symbols from the user program.
Or, where "module_name" is the name of a C function or Pascal procedure
(and is listed as a procedure symbol in the global symbol display).
Examples
To specify a trace display depth of 512:
display trace depth 512
To set up the trace command for duration measurements on the
interrupt_sim function:
trace after interrupt_sim start or interrupt_sim
end only interrupt_sim start or interrupt_sim end
counting time
The trace specification sets up the analyzer to capture only the states that
contain the start address of the interrupt_sim function or the end address of
the interrupt_sim function. Since the trigger state is also stored, the analyzer
is set up to trigger on the entry or exit address of the interrupt_sim function.
With these states in memory, the analyzer will derive two measurements:
time from start to end of interrupt_sim, and time from end to start of
interrupt_sim.
277
Making Software Performance Measurements
To initialize duration performance measurements
To initialize duration performance measurements
• Use the performance_measurement_initialize command with the
duration option.
After you set up the trace command, you must tell the SPMT the time ranges
to be used in the duration measurement. This is done by initializing the
performance measurement. You can initialize the performance measurement
in the following ways:
• Initialize with user-defined files.
• Restore a previous performance measurement (if the emulation system
has been exited and re-entered).
Initialization with User Defined Ranges
You can specifically give the SPMT time ranges to use by placing the
information in a file and entering the file name in the
performance_measurement_initialize command.
Time range files may contain comments and time ranges in units of
microseconds (us), milliseconds (ms), or seconds (s). An example time
range file is shown below.
# Any line which starts with a # is a comment.
1 us 20 us
10.1 ms 100.6 ms
3.55 s 6.77 s
#
#
#
#
#
#
us microseconds
ms milliseconds
s seconds
The above are the only abbreviations allowed.
and the units abbreviation is required.
The space between the
number
When no user defined time range file is specified, the following set of default
time ranges are used.
278
Making Software Performance Measurements
To initialize duration performance measurements
1 us 10 us
10.1 us 100 us
100.1 us 500 us
500.1 us 1 ms
1.001 ms 5 ms
5.001 ms 10 ms
10.1 ms 20 ms
20.1 ms 40 ms
40.1 ms 80 ms
80.1 ms 160 ms
160.1 ms 320 ms
320.1 ms 640 ms
640.1 ms 1.2 s
Restoring the Current Measurement
The performance_measurement_initialize restore command allows you
to restore old performance measurement data from the perf.out file in the
current directory.
If you have not exited and re-entered emulation, you can add traces to a
performance measurement simply by entering another
performance_measurement_run command. However, if you exit and
re-enter the emulation system, you must enter the
performance_measurement _initialize restore command before you
can add traces to a performance measurement. When you restore a
performance measurement, make sure your current trace command is
identical to the command used with the restored measurement.
The restore option checks the emulator software version and will only work if
the perf.out files you are restoring were made with the same software version
as is presently running in the emulator. If you ran tests using a former
software version and saved perf.out files, then updated your software to a
new version number, you will not be able to restore old perf.out
measurement files.
Examples
To initialize the duration measurement:
performance_measurement_initialize duration
279
Making Software Performance Measurements
To interpret duration measurement reports
To interpret duration measurement reports
• View the performance measurement report.
Duration measurements provide a best-case/worst-case characterization of
code execution time. These measurements record execution times that fall
within a set of specified time ranges. The information you will see in duration
measurement reports is described below.
Number of Intervals Number of "from address" and "to address" pairs
(after prefetch correction).
Maximum Time The greatest amount of time between the "from
address" to the "to address".
Minimum Time The shortest amount of time between the "from
address" to the "to address".
Average Time Average time between the "from address" and the "to
address". The following equation is used to calculate the average time:
280
Making Software Performance Measurements
To interpret duration measurement reports
Standard Deviation Deviation from the mean of time. The following
equation is used to calculate standard deviation:
N
mean
Ssumq
Where:
Number of intervals.
Average time.
Sum of squares of time in the intervals.
Error Tolerance and Confidence Level An approximate error may
exist in displayed information. Error tolerance for a level of confidence is
calculated using the mean of the standard deviations and the mean of the
means. Error tolerance gives an indication of the stability of the
information. For example, if the error is 5% for a confidence level of
95%, then you can be 95% confident that the information has an error of
5% or less.
The Student’s "T" distribution is used in these calculations because it
improves the accuracy for small samples. As the size of the sample increases,
the Student’s "T" distribution approaches the normal distribution.
The following equation is used to calculate error tolerance:
Om
t
N
Pm
Where:
Mean of the standard deviations in each time range.
Table entry in Student’s "T" table for a given confidence level.
Number of intervals.
Mean of the means (i.e., mean of the average times in each time range).
281
Making Software Performance Measurements
To interpret duration measurement reports
Examples
Consider the following duration measurement report (generated with the
commands shown):
display trace depth 512
trace after interrupt_sim start or interrupt_sim
end only interrupt_sim start or interrupt_sim end
counting time
performance_measurement_initialize duration
performance_measurement_run 10
performance_measurement_end
!perf32 | more
Time Interval Profile
From Address
10A8
File main(module)."/users/guest/demo/debug_env/hp64782/main.c"
Symbolic Reference at interrupt_sim+8A
To Address
101E
File main(module)."/users/guest/demo/debug_env/hp64782/main.c"
Symbolic Reference at main.interrupt_sim
Number of intervals
2550
Maximum Time 73297.920 us
Minimum Time 48230.400 us
Avg Time
55672.752 us
Statistical summary - for
10 traces
Stdv 11442.64
95% Confidence 0.80% Error tolerance
Graph of relative percents
1 us 10 us
0.00%
10.1 us 100 us
0.00%
100.1 us 500 us
0.00%
500.1 us 1 ms
0.00%
1.001 ms 5 ms
0.00%
5.001 ms 10 ms
0.00%
282
Making Software Performance Measurements
To interpret duration measurement reports
10.1 ms 20 ms
0.00%
20.1 ms 40 ms
0.00%
40.1 ms 80 ms
100.00%
**************************************************
80.1 ms 160 ms
0.00%
160.1 ms 320 ms
0.00%
320.1 ms 640 ms
0.00%
640.1 ms 1.2 s
0.00%
From Address
101E
File main(module)."/users/guest/demo/debug_env/hp64782/main.c"
Symbolic Reference at main.interrupt_sim
To Address
10A8
File main(module)."/users/guest/demo/debug_env/hp64782/main.c"
Symbolic Reference at interrupt_sim+8A
Number of intervals
2550
Maximum Time 342343.680 us
Minimum Time 52.320 us
Avg Time
36987.751 us
Statistical summary - for
10 traces
Stdv 76924.84
95% Confidence 8.07% Error tolerance
Graph of relative percents
1 us 10 us
0.00%
10.1 us 100 us
14.82% ********
100.1 us 500 us
5.06% ***
500.1 us 1 ms
0.00%
1.001 ms 5 ms
24.82% *************
5.001 ms 10 ms
20.27% **********
10.1 ms 20 ms
10.08% *****
20.1 ms 40 ms
0.00%
40.1 ms 80 ms
9.88% *****
80.1 ms 160 ms
5.02% ***
160.1 ms 320 ms
7.57% ****
320.1 ms 640 ms
2.47% *
640.1 ms 1.2 s
0.00%
283
Making Software Performance Measurements
To interpret duration measurement reports
Two sets of information are given in the duration measurement report:
module duration and module usage.
The first set is the "module usage" measurement. Module usage
measurements show how much time is spent outside the module of interest;
they indicate how often the module is used. The information shown in the
first part of the duration report above shows that the average amount of time
spent outside the interrupt_sim function is about 55.7 milliseconds.
The second set of information in the duration measurement report is the
"module duration" measurement. The module duration report shows that the
amount of time it takes for the interrupt_sim function to execute varies from
52.3 microseconds to 342.3 milliseconds. The average amount of time it takes
for the interrupt_sim module to execute is roughly 37 milliseconds.
284
Running Measurements and Creating Reports
Several performance measurement tasks are the same whether you are
making activity or duration measurements.
This section describes how to:
• Run performance measurements.
• End performance measurements.
• Create a performance measurement report.
To run performance measurements
• Use the performance_measurement_run command.
The performance_measurement_run command processes analyzer trace
data. When you end the performance measurement, this processed data is
dumped to the binary "perf.out" file in the current directory. The perf32
report generator utility is used to read the binary information in the "perf.out"
file.
If the performance_measurement_run command is entered without a
count, the current trace data is processed. If a count is specified, the current
trace command is executed consecutively the number of times specified.
The data that results from each trace command is processed and combined
with the existing processed data. The STATUS line will say "Processing trace
<NO.>" during the run so you will know how your measurement is
progressing. The only way to stop this series of traces is by using <CTRL>c
(sig INT).
The more traces you include in your sample, the more accurate will be your
results. At least four consecutive traces are required to obtain statistical
interpretation of activity measurement results.
285
Making Software Performance Measurements
To end performance measurements
Examples
To run the performance measurement, enter the following command:
performance_measurement_run 20
The command above causes 20 traces to occur. The SPMT processes the
trace information after each trace, and the number of the trace being
processed is shown on the status line.
To end performance measurements
• Use the performance_measurement_end command.
The performance_measurement_end command takes the data generated
by the performance_measurement_run command and places it in a file
named perf.out in the current directory. If a file named "perf.out" already
exists in the current directory, it will be overwritten. Therefore, if you wish
to save a performance measurement, you must rename the perf.out file
before performing another measurement.
The performance_measurement_end command does not affect the
current performance measurement data which exists within the emulation
system. In other words, you can add more traces later to the existing
performance measurement by entering another
performance_measurement_run command.
Once you have entered the performance_measurement_end command,
you can use the perf32 report generator to look at the data saved in the
perf.out file.
Note that the "perf.out" file is a binary file. Do not try to read it with the
UNIX more or cat commands. The perf32 report generator utility (described
in the following section) must be used to read the contents of the "perf.out"
file.
286
Making Software Performance Measurements
To create a performance measurement report
Examples
To cause the processed trace information to be dumped to the "perf.out" file:
performance_measurement_end
To create a performance measurement report
• Use the perf32 command at the UNIX prompt.
The perf32 report generator utility must be used to read the information in
the "perf.out" file and other files dumped by the SPMT (in other words,
renamed "perf.out" files). The perf32 utility is run from the UNIX shell. You
can fork a shell while in the Softkey Interface and run perf32, or you can exit
the Softkey Interface and run perf32.
-h
-s
-p
-m
-f<file>
Options to "perf32"
A default report, containing all performance measurement information, is
generated when the perf32 command is used without any options. The
options available with perf32 allow you to limit the information in the
generated report. These options are described below.
Produce outputs limited to histograms.
Produce a summary limited to the statistical data.
Produce a summary limited to the program activity.
Produce a summary limited to the memory activity.
Produce a report based on the information contained in <file> instead of the
information contained in perf.out.
For example, the following commands save the current performance
measurement information in a file called "perf1.out", and produce a histogram
showing only the program activity occupied by the functions and variables.
mv perf.out perf1.out
perf32 -hpf perf1.out
287
Making Software Performance Measurements
To create a performance measurement report
Options -h, -s, -p, and -m affect the contents of reports generated for activity
measurements. These options have no effect on the contents of reports
generated for duration (time interval) measurements.
Examples
Now, to generate a report from the "perf.out" file, type the following on the
command line to fork a shell and run the perf32 utility:
!perf32 | more
288
9
Using the External State
Analyzer
289
Using the External State Analyzer
The HP 64703A analyzer provides an external analyzer with 16 external trace
channels. These trace channels allow you to capture activity on signals
external to the emulator, typically other target system signals. The external
analyzer may be configured as an extension to the emulation analyzer, as an
independent state analyzer, or as an independent timing analyzer.
When the external analyzer is configured as an independent state analyzer,
the emulator/analyzer interface does not control the external analyzer.
However, you can use pod commands to control the independent state
analyzer via the terminal interface. Refer to the 6833x Emulator User’s
Guide for the Terminal Interface for information on using the external
analyzer when it is configured as an independent state analyzer.
When the external analyzer is configured as an independent timing analyzer,
you must use a special Timing Analyzer Interface program. Refer to the
Timing Analyzer Interface User’s Guide for information on using the
external analyzer when it is configured as an independent timing analyzer.
The tasks you perform with the external analyzer are grouped into the
following sections:
• Setting up the external analyzer.
• Configuring the external analyzer.
290
Setting Up the External Analyzer
This section assumes you have already connected the external analyzer
probe to the HP 64700 Card Cage.
Before you can use the external analyzer, you must:
•
•
•
•
Connect the external analyzer probe to the target system.
Specify threshold voltages of external trace signals.
Label the external trace signals.
Select the external analyzer mode.
To connect the external analyzer probe to the target
system
1 Assemble the Analyzer Probe. The analyzer probe is a two-piece assembly, consisting of ribbon cable and
18 probe wires (16 data channels and the J and K clock inputs) attached to a connector. Either end of the
ribbon cable may be connected to the 18 wire connector, and the connectors are keyed so they may only be
attached one way. Align the key of the ribbon cable connector with the slot in the 18 wire connector, and
firmly press the connectors together.
291
Using the External State Analyzer
To connect the external analyzer probe to the target system
2 Attach grabbers to probe wires. Each of the 18 probe wires has a signal and a ground connection. Each
probe wire is labeled for easy identification. Thirty-six grabbers are provided for the signal and ground
connections of each of the 18 probe wires. The signal and ground connections are attached to the pin in the
grabber handle.
292
Using the External State Analyzer
To connect the external analyzer probe to the target system
CAUTION
Turn OFF target system power before connecting analyzer probe wires to
the target system. The probe grabbers are difficult to handle with precision,
and it is extremely easy to short the pins of a chip (or other connectors
which are close together) with the probe wire while trying to connect it.
3 You can connect the grabbers to pins, connectors, wires, etc., in the target system. Pull the hilt of the
grabber towards the back of the grabber handle to uncover the wire hook. When the wire hook is around the
desired pin or connector, release the hilt to allow the grabber spring tension to hold the connection.
293
Configuring the External Analyzer
After you have assembled the external analyzer probe and connected it to the
emulator and target system, the next step is to configure the external
analyzer.
The external analyzer is a versatile instrument, and you can configure it to
suit your needs. For example, you can specify threshold voltage levels on the
external analyzer channels, and you can operate the external analyzer in
several different modes.
The default configuration specifies that the external analyzer is aligned with
the emulation analyzer. TTL level threshold voltages are defined, as well as
an external label named "xbits" which contains all 16 channels.
In order to configure the external analyzer, you must first start the
configuration interface and access the "External Analyzer" configuration
section (refer to the "Using the Configuration Interface" section in the
"Configuring the Emulator" chapter).
294
Using the External State Analyzer
To connect the external analyzer probe to the target system
Figure 25
If you’re using the Softkey Interface from a terminal or terminal emulation
window, you don’t get a dialog box from which to choose configuration
sections; however, you have access to the same configuration options
through a series of configuration questions. To access the questions in the
295
Using the External State Analyzer
To control the external analyzer with the emulator/analyzer interface
"External Analyzer" section, answer "yes" to the "Modify external analyzer
configuration?" question.
This section describes how to:
• Specify whether the emulation emulator/analyzer interface should control
the external analyzer.
• Specify the threshold voltages for the external channels.
• Select the external analyzer mode.
• Specify the slave clock mode when configured as an independent state
analyzer.
• Define labels for the external analyzer channels.
To control the external analyzer with the
emulator/analyzer interface
• Choose "yes" or "no" for the "Should emulation control the external
bits" configuration option.
Answer "yes" if the emulation emulator/analyzer interface should control the
external analyzer. You must answer "yes" to access the remaining external
analyzer configuration questions. At the end of the configuration process the
external analyzer mode and threshold voltages will be set; existing labels will
be deleted, and only the labels specified in response to the questions below
will be defined.
Answer "no" if the emulation emulator/analyzer interface shouldn’t control
the external analyzer. If emulation does not control the external bits, the
external analyzer configuration will not be modified in any way by the
emulation interface.
To specify the threshold voltage
1 Choose "yes" for the "Should emulation control the external bits"
configuration option.
2 Enter the "Threshold voltage for bits 0-7 and J clock" value.
3 Enter the "Threshold voltage for bits 8-15 and K clock" value.
The external analyzer probe signals are divided into two groups: the lower
byte (channels 0 through 7 and the J clock), and the upper byte (channels 8
296
Using the External State Analyzer
To specify the external analyzer mode
through 15 and the K clock). You can specify a threshold voltage for each of
these groups.
The default threshold voltages are specified as TTL which translates to 1.40
volts.
Voltages may be in the range from -6.40 volts to 6.35 volts (with a 0.05V
resolution). You may also specify CMOS (which translates to 2.5 volts), or
ECL (which translates to -1.3 volts).
To specify the external analyzer mode
1 Choose "yes" for the "Should emulation control the external bits"
configuration option.
2 Choose "Emulation", "State", or "Timing" for the "External analyzer
mode" configuration option.
The default configuration selects the "emulation" external analyzer mode. In
this mode, you have 16 external trace signals on which data is captured
synchronously with the emulation clock.
The external analyzer may also operate as an independent state analyzer, or
it may operate as an independent timing analyzer if a host computer interface
program is used.
Choose "emulation" to select the emulation mode. In this mode, the external
analyzer becomes an extension of the emulation analyzer. In other words,
they operate as one analyzer. The external bits are clocked with the
emulation clock. External labels may be used in trace commands to qualify
trigger, storage, prestore, or count states. External labels may be viewed in
the trace display.
Choose "state" to select the independent state mode of the external analyzer.
The external bits are not available for use from the emulation interface. You
can, however, use pod commands to control the external state analyzer in its
independent mode.
Choose "timing" to select the timing mode of the external analyzer. The
external bits are not available for use from the emulation interface. Because
the pod commands for the timing analyzer dump information in binary
format, you will need to use Timing Analyzer Interface, or other interface
program, to capture the timing analyzer data.
297
Using the External State Analyzer
To specify the slave clock mode
To specify the slave clock mode
1 Choose "yes" for the "Should emulation control the external bits"
configuration option.
2 Choose "State" for the "External analyzer mode" configuration option.
3 Choose "Off", "Mixed", or "Demux" for the "Slave clock mode for
external bits" configuration item.
There are two modes of demultiplexing that can be set for the 16 channels of
the external analyzer: mixed clocks and true demultiplexing.
Choose "off" to turn slave clocks OFF. If the slave clock is "off", all 16
external bits are clocked with the emulation clock.
Choose "mixed" to specify the mixed clock demultiplexing mode. In this
mode, the lower eight external bits (0-7) are latched when the slave clock (as
specified by your answers to the next four questions) is received. The upper
eight bits and the latched lower eight are then clocked into the analyzer
when the emulation clock is received (see the figure below).
Figure 26
If no slave clock has appeared since the last master clock, the data on the
lower 8 bits of the pod will be latched at the same time as the upper 8 bits. If
298
Using the External State Analyzer
To specify the slave clock mode
more than one slave clock has appeared since the last master clock, only the
first slave data will be available to the analyzer (see the figure below).
Figure 27
Choose "demux" to specify the true demultiplexing mode. In this mode, only
the lower eight external channels (0-7) are used. The slave clock (as
specified by your answers to the next four questions) latches these bits and
the emulation clock samples the same channels again. The latched bits show
up as bits 0-7 in the trace data, and the second sample shows up as bits 8-15
(see the figure below).
299
Using the External State Analyzer
To specify the slave clock mode
Figure 28
If no slave clock has appeared since the last master clock, the data on the
lower 8 bits of the pod will be the same as the upper 8 bits. If more than one
slave clock has appeared since the last master clock, only the first slave data
will be available to the analyzer.
300
Using the External State Analyzer
To define labels for the external analyzer signals
4 If the "mixed" or "true demultiplexing" slave clock modes are
selected, choose "None", "rising", "falling", or "Both" for the "Edges of
J (K,L,M) clock used for slave clock" configuration options.
Four configuration options are present when you select either the "mixed" or
"demux" slave clock mode. They allow you to define the slave clock. You can
specify rising, falling, both, or neither (none) edges of the J, K, L, and M
clocks. When several clock edges are specified, any one of the edges clocks
the trace.
Clocks J and K are the external clock inputs of the external analyzer probe.
The L and M clocks are generated by the emulator. Typically, the L clock is
the emulation clock derived by the emulator and the M clock is not used.
To define labels for the external analyzer signals
1 Choose "yes" for the "Should emulation control the external bits"
configuration option.
2 For each defined external label (there can be up to 8), choose the
"name", "start bit", "width", and "polarity".
You can define up to eight labels for the 16 external data channels in the
configuration. These external analyzer labels can be used in trace
commands, and the data associated with these labels can be displayed in the
trace list. One external analyzer label, "xbits", is defined by the default
configuration and is included in the default trace list.
External labels can be defined with bits in the range of 0 through 15. The
start bit may be in the range 0 through 15, but the width of the label must not
cause the label to extend past bit 15. Thus, the sum of the start bit number
plus the width must not exceed 16.
The "polarity" configuration option allows you to specify positive or negative
logic for the external bits. In other words, positive means high=1, low=0.
Negative means low=1, high=0.
Once external labels are defined, they may be used in trace commands to
qualify events (if the emulation controls the external analyzer). Also, you
can modify the trace display to include data for the various trace labels.
Note that the Timing Analyzer Interface does not use the external labels
defined in the emulator/analyzer interface. You maintain labels for the timing
analyzer within the Timing Analyzer Interface itself.
301
302
10
Making Coordinated
Measurements
303
Making Coordinated Measurements
When HP 64700 Card Cages are connected together via the Coordinated
Measurement Bus (CMB), you can start and stop up to 32 emulators at the
same time.
You can use the analyzer in one HP 64700 to arm (that is, activate) the
analyzers in other HP 64700 Card Cages or to cause emulator execution in
other HP 64700 Card Cages to break into the monitor.
You can use the HP 64700’s BNC connector (labeled TRIGGER IN/OUT on
the lower left corner of the HP 64700 rear panel) to trigger an external
instrument (for example, a logic analyzer or oscilloscope) when the analyzer
finds its trigger condition. Also, you can allow an external instrument to arm
the analyzer or break emulator execution into the monitor.
The coordinated measurement tasks you can perform are grouped into the
following sections:
•
•
•
•
•
Setting up for coordinated measurements.
Starting and stopping multiple emulators.
Driving trigger signals to the CMB or BNC.
Stopping program execution on trigger signals.
Arming analyzers on trigger signals.
304
Making Coordinated Measurements
The location of the CMB and BNC connectors on the HP 64700 rear panel is
shown in the following figure.
Figure 29
CMB Connector
BNC Connector
Signal Lines on the CMB
There are three bi-directional signal lines on the CMB connector on the rear
panel of the emulator. These CMB signals are:
TRIGGER The CMB TRIGGER line is low true. This signal can be
driven or received by any HP 64700 connected to the CMB. This signal
can be used to trigger an analyzer. It can be used as a break source for
the emulator.
READY The CMB READY line is high true. It is an open collector and
performs an ANDing of the ready state of enabled emulators on the CMB.
Each emulator on the CMB releases this line when it is ready to run.
This line goes true when all enabled emulators are ready to run,
providing for a synchronized start.
305
Making Coordinated Measurements
When CMB is enabled, each emulator is required to break to background
when CMB READY goes false, and will wait for CMB READY to go true before
returning to the run state. When an enabled emulator breaks, it will drive the
CMB READY false and will hold it false until it is ready to resume running.
When an emulator is reset, it also drives CMB READY false.
EXECUTE The CMB EXECUTE line is low true. Any HP 64700 on the
CMB can drive this line. It serves as a global interrupt and is processed
by both the emulator and the analyzer. This signal causes an emulator to
run from a specified address when CMB READY returns true.
BNC Trigger Signal
The BNC trigger signal is a positive rising edge TTL level signal. The BNC
trigger line can be used to either drive or receive an analyzer trigger, or
receive a break request for the emulator.
Comparison Between CMB and BNC Triggers The CMB trigger and
BNC trigger lines have the same logical purpose: to provide a means for
connecting the internal trigger signals (trig1 and trig2) to external
instruments. The CMB and BNC trigger lines are bi-directional. Either
signal may be used directly as a break condition.
The CMB trigger is level-sensitive, while the BNC trigger is edge-sensitive.
The CMB trigger line puts out a true pulse following receipt of EXECUTE,
despite the commands used to configure it. This pulse is internally ignored.
Note that if you use the EXECUTE function, the CMB TRIGGER should not
be used to trigger external instruments, because a false trigger will be
generated when EXECUTE is activated.
306
Setting Up for Coordinated Measurements
This section describes how to:
• Connect the Coordinated Measurement Bus.
• Connect the rear panel BNC.
To connect the Coordinated Measurement Bus (CMB)
CAUTION
Be careful not to confuse the 9-pin connector used for CMB with those used
by some computer systems for RS-232C communications. Applying RS-232C
signals to the CMB connector is likely to result in damage to the HP 64700
Card Cage.
To use the CMB, you will need one CMB cable for the first two emulators and
one additional cable for every emulator after the first two. The CMB cable is
orderable from HP under product number HP 64023A. The cable is four meters
long.
You can build your own compatible CMB cables using standard 9-pin D type
subminiature connectors and 26 AWG wire.
Note that Hewlett-Packard does not ensure proper CMB operation if you are
using a self-built cable!
307
Making Coordinated Measurements
To connect the Coordinated Measurement Bus (CMB)
1 Connect the cables to the HP 64700 CMB ports.
308
Making Coordinated Measurements
To connect to the rear panel BNC
Number of HP 64700 Series
Emulators
Maximum Total Length of Cable
Restrictions on the CMB
Connection
2 to 8
100 meters
None.
9 to 16
50 meters
None.
9 to 16
100 meters
Only 8 emulators may have rear
panel pullups connected. *
17 to 32
50 meters
Only 16 emulators may have rear
panel pullups connected. *
* A modification must be performed by your HP Customer Engineer.
Emulators using the CMB must use background emulation monitors.
At least 3/4 of the HP 64700-Series emulators connected to the CMB must be powered up before
proper operation of the entire CMB configuration can be assured.
To connect to the rear panel BNC
CAUTION
The BNC line on the HP 64700 accepts input and output of TTL levels only.
(TTL levels should not be less than 0 volts or greater than 5 volts.) Failure to
observe these specifications may result in damage to the HP 64700 Card
Cage.
309
Making Coordinated Measurements
To connect to the rear panel BNC
1 Connect one end of a 50-ohm coaxial cable with male BNC connectors to the HP 64700 BNC
receptacle and the other end to the appropriate BNC receptacle on the other measuring instrument.
The BNC connector is capable of driving TTL level signals into a 50-ohm load. (A positive rising edge
is the trigger signal.) It requires a driver that can supply at least 4 mA at 2 volts when used as a
receiver. The BNC connector is configured as an open-emitter structure which allows for multiple
drivers to be connected. It can be used for cross-triggering between multiple HP 64700Bs when no
other cross-measurements are needed. The output of the BNC connector is short-circuit protected
and is protected from TTL level signals when the emulator is powered down.
310
Starting/Stopping Multiple Emulators
When HP 64700 Card Cages are connected together via the Coordinated
Measurement Bus (CMB), you can start and stop up to 32 emulators at the
same time. These are called synchronous measurements.
This section describes how to:
• Enable synchronous measurements.
• Start synchronous measurements.
• Disable synchronous measurements.
To enable synchronous measurements
• Enter the specify run command.
You can enable the emulator’s interaction with the CMB by using the
specify run command. When the EXECUTE signal is received, the emulator
will run at the current program counter address or the address specified in
the specify run command.
Note that when the CMB is being actively controlled by another emulator, the
step command does not work correctly. The emulator may end up running in
user code (NOT stepping). Disable CMB interaction (see "To disable
synchronous measurements" below) while stepping the processor.
Note that enabling CMB interaction does not affect the operation of analyzer
cross-triggering.
You can use the specify trace command to specify that an analyzer
measurement begin upon reception of the CMB EXECUTE signal.
The trace measurement defined by the specify trace command will be
started when the EXECUTE signal becomes active. When the trace
measurement begins, you will see the message "CMB execute; emulation
trace started".
When you enter a normal trace command, trace at execute is disabled, and
the analyzer ignores the CMB EXECUTE signal.
311
Making Coordinated Measurements
To start synchronous measurements
Examples
To enable synchronous measurements:
specify run from 1e8h
To trace when synchronous execution begins:
specify trace after address main
To start synchronous measurements
• Enter the cmb_execute command.
The cmb_execute command will cause the EXECUTE line to be pulsed,
thereby initiating a synchronous measurement. CMB interaction does not
have to be enabled in order to use either of these commands. (When you
enable CMB interaction, you only specify how the emulator will react to the
CMB EXECUTE signal.)
All emulators whose CMB interaction is enabled will break into the monitor
when any one of those emulators breaks into its monitor.
To disable synchronous measurements
• Enter the specify run disable command.
You can disable the emulator’s interaction with the CMB by using the
specify run disable command. When interaction is disabled, the emulator
ignores the CMB EXECUTE and READY lines.
312
Using Trigger Signals
The HP 64700 contains two internal lines, trig1 and trig2, over which trigger
signals can pass from the emulator or analyzer to other HP 64700s on the
Coordinated Measurement Bus (CMB) or other instruments connected to the
BNC connector.
You can configure the internal lines to make connections between the
emulator, analyzer, external analyzer (if its configured as an independent
state or timing analyzer), CMB connector, or BNC connector. Measurements
that depend on these connections are called interactive measurements or
coordinated measurements.
This figure below illustrates the possible connections between the internal
lines (trig1 and trig2) and the emulator, analyzer, and external devices.
Figure 30
Note that the "External Analyzer" connection for "Trig2" is only available if
you have selected "state" or "timing" for the external analyzer mode.
Notice that the analyzer always drives trig1, and the emulator always receives
trig1. This provides for the break_on_trigger syntax of the trace
command.
313
Making Coordinated Measurements
To disable synchronous measurements
You can use the trig1 or trig2 line to make a connection between the analyzer
and the CMB connector or BNC connector so that, when the analyzer finds its
trigger condition, a trigger signal is driven on the HP 64700’s Coordinated
Measurement Bus (CMB) or BNC connector. This can also be done for the
external analyzer when it is configured as an independent state or timing
analyzer.
You can use the trig1 or trig2 line to make a connection between the
emulator break input and the CMB connector, BNC connector, analyzer, (or
external analyzer when configured as an independent state or timing
analyzer) so that program execution can break when a trigger signal is
received from the CMB, BNC, or analyzer.
You can use the trig2 line to make a connection between the analyzer and the
CMB connector or BNC connector so that the analyzer can be armed (that is,
enabled) when a trigger signal is received from the CMB or BNC connector.
This can also be done for the external analyzer when it is configured as an
independent state or timing analyzer.
You can use the trig1 and trig2 lines to make several type of connections at
the same time. For example, when the analyzer finds its trigger condition, a
signal is driven on the trig1 line. This signal may be used to stop user
program execution, but the trigger signal may also be driven on the CMB and
BNC connectors.
Also, it’s possible for signals to be driven and received on the CMB or BNC
connectors. So, for example, while the analyzer’s trigger signal can be driven
on the CMB and BNC connectors, signals can also be received from the CMB
and BNC connectors and used to stop user program execution. In this case,
the emulator will break into the monitor on either the analyzer trigger or on
the reception of a trigger signal from the CMB or BNC.
You can disable connections made by the internal trig1 and trig2 lines by
choosing "neither" or "no" to the appropriate interactive measurement
configuration options.
In order to modify the interactive measurement specification, you must first
start the configuration interface and access the "Interactive Measurement
Specification" configuration section (refer to the "Using the Configuration
Interface" section in the "Configuring the Emulator" chapter).
314
Making Coordinated Measurements
To disable synchronous measurements
Figure 31
If you’re using the Softkey Interface from a terminal or terminal emulation
window, you don’t get a dialog box from which to choose configuration
sections; however, you have access to the same configuration options
through a series of configuration questions. To access the questions in the
"Interactive Measurement Specification" section, answer "yes" to the "Modify
interactive measurement specification?" question.
This section shows you how to:
•
•
•
•
•
•
•
Drive the emulation analyzer trigger signal to the CMB.
Drive the emulation analyzer trigger signal to the BNC connector.
Drive the external analyzer trigger signal to the CMB.
Drive the external analyzer trigger signal to the BNC connector.
Break emulator execution on signal from CMB.
Break emulator execution on signal from BNC.
Break emulator execution on external analyzer trigger.
315
Making Coordinated Measurements
To drive the emulation analyzer trigger signal to the CMB
•
•
•
•
•
•
Arm the emulation analyzer on signal from CMB.
Arm the emulation analyzer on signal from BNC.
Arm the emulation analyzer on external analyzer trigger.
Arm the external analyzer on signal from CMB.
Arm the external analyzer on signal from BNC.
Arm the external analyzer on emulation analyzer trigger.
To drive the emulation analyzer trigger signal to the
CMB
• Choose "receive" for the "Should CMBT drive or receive Trig1"
configuration option.
You could also drive the emulation analyzer trigger to the CMB over the trig2
internal line by specifying that the CMBT should receive trig2 and that the
emulation analyzer should drive trig2.
To drive the emulation analyzer trigger signal to the
BNC connector
• Choose "receive" for the "Should BNC drive or receive Trig1"
configuration option.
You could also drive the emulation analyzer trigger to the BNC over the trig2
internal line by specifying that the BNC should receive trig2 and that the
emulation analyzer should drive trig2.
To drive the external analyzer trigger signal to the
CMB
1 Choose "receive" for the "Should CMBT drive or receive Trig2"
configuration option.
2 Choose "drive" for the "Should External Analyzer drive or receive
Trig2" configuration option.
316
Making Coordinated Measurements
To drive the external analyzer trigger signal to the BNC connector
To drive the external analyzer trigger signal to the
BNC connector
1 Choose "receive" for the "Should BNC drive or receive Trig2"
configuration option.
2 Choose "drive" for the "Should External Analyzer drive or receive
Trig2" configuration option.
To break emulator execution on signal from CMB
• Choose "drive" for the "Should CMBT drive or receive Trig1"
configuration option.
You could also break emulator execution on a trigger signal from the CMB
over the trig2 internal line by specifying that the CMB should drive trig2 and
that the emulator break should receive trig2.
To break emulator execution on signal from BNC
• Choose "drive" for the "Should BNC drive or receive Trig1"
configuration option.
You could also break emulator execution on a trigger signal from the BNC
over the trig2 internal line by specifying that the BNC should drive trig2 and
that the emulator break should receive trig2.
To break emulator execution on external analyzer
trigger
1 Choose "yes" for the "Should Emulator break receive Trig2"
configuration option.
2 Choose "drive" for the "Should External Analyzer drive or receive
Trig2" configuration option.
When an emulator break occurs due to the analyzer trigger, the analyzer will
stop driving the internal signal that caused the break. Therefore, if trig2 is
used both to break and to drive the CMB TRIGGER (for example), TRIGGER
will go true when the trigger is found and then will go false after the emulator
317
Making Coordinated Measurements
To arm the emulation analyzer on signal from CMB
breaks. However, if trig1 is used to cause the break and trig2 is used to drive
the CMB TRIGGER, TRIGGER will stay true until the trace is halted or until
the next trace starts.
To arm the emulation analyzer on signal from CMB
1 Choose "drive" for the "Should CMBT drive or receive Trig2"
configuration option.
2 Choose "receive" for the "Should Analyzer drive or receive Trig2"
configuration option.
3 Use the arm_trig2 option to the trace command.
To arm the emulation analyzer on signal from BNC
1 Choose "drive" for the "Should BNC drive or receive Trig2"
configuration option.
2 Choose "receive" for the "Should Analyzer drive or receive Trig2"
configuration option.
3 Use the arm_trig2 option to the trace command.
To arm the emulation analyzer on external analyzer
trigger
1 Choose "receive" for the "Should Analyzer drive or receive Trig2"
configuration option.
2 Choose "drive" for the "Should External Analyzer drive or receive
Trig2" configuration option.
3 Use the arm_trig2 option to the trace command.
318
Making Coordinated Measurements
To arm the external analyzer on signal from CMB
To arm the external analyzer on signal from CMB
1 Choose "drive" for the "Should CMBT drive or receive Trig2"
configuration option.
2 Choose "receive" for the "Should External Analyzer drive or receive
Trig2" configuration option.
To arm the external analyzer on signal from BNC
1 Choose "drive" for the "Should BNC drive or receive Trig2"
configuration option.
2 Choose "receive" for the "Should External Analyzer drive or receive
Trig2" configuration option.
To arm the external analyzer on emulation analyzer
trigger
1 Choose "drive" for the "Should Analyzer drive or receive Trig2"
configuration option.
2 Choose "receive" for the "Should External Analyzer drive or receive
Trig2" configuration option.
319
320
11
Setting X Resources
321
Setting X Resources
The Graphical User Interface is an X Window System application which
means it is a client in the X Window System client-server model.
The X server is a program that controls all access to input devices (typically a
mouse and a keyboard) and all output devices (typically a display screen). It
is an interface between application programs you run on your system and the
system input and output devices.
An X resource controls an element of appearance or behavior in an X
application. For example, in the graphical interface, one resource controls
the text in action key pushbuttons as well as the action performed when the
pushbutton is clicked.
By modifying resource settings, you can change the appearance or behavior
of certain elements in the graphical interface.
When the graphical interface starts up, it reads resource specifications from a
set of configuration files. Resources specifications in later files override
those in earlier files. Files are read in the following order:
1 The application defaults file. For example,
/usr/lib/X11/app-defaults/HP64_Softkey in HP-UX or
/usr/openwin/lib/X11/app-defaults/HP64_Softkey in SunOS.
2 The $XAPPLRESDIR/HP64_Softkey file. (The XAPPLRESDIR
environment variable defines a directory containing system-wide
custom application defaults.)
3 The server’s RESOURCE_MANAGER property. (The xrdb command
loads user-defined resource specifications into the
RESOURCE_MANAGER property.)
If no RESOURCE_MANAGER property exists, user defined resource
settings are read from the $HOME/.Xdefaults file.
4 The file named by the XENVIRONMENT environment variable.
If the XENVIRONMENT variable is not set, the
$HOME/.Xdefaults-host file (typically containing resource
specifications for a specific remote host) is read.
5 Resource specifications included in the command line with the -xrm
option.
6 System scheme files in directory /usr/hp64000/lib/X11/HP64_schemes.
322
Setting X Resources
7 System-wide custom scheme files located in directory
$XAPPLRESDIR/HP64_schemes.
8 User-defined scheme files located in directory
$HOME/.HP64_schemes (note the dot in the directory name).
Scheme files group resource specifications for different displays, computing
environments, and languages.
This chapter shows you how to:
•
•
•
•
•
Modify the Graphical User Interface resources.
Use customized scheme files.
Set up custom action keys.
Set initial recall buffer values.
Set up demos or tutorials.
Refer to the "X Resources and the Graphical Interface" section in the
"Concepts" chapter for more detailed information.
323
Setting X Resources
To modify the Graphical User Interface resources
To modify the Graphical User Interface resources
You can customize the appearance of an X Windows application by modifying
its X resources. The following tables describe some of the commonly
modified application resources.
Application Resources for Schemes
Resource
Values
Description
HP64_Softkey.platformScheme
HP-UX
SunOS
(custom)
Names the subdirectory for platform specific
schemes. This resource should be set to the
platform on which the X server is running
(and displaying the Graphical User Interface)
if it is different than the platform where the
application is running.
HP64_Softkey.colorScheme
BW
Color
(custom)
Names the color scheme file.
HP64_Softkey.sizeScheme
Small
Large
(custom)
Names the size scheme file which defines the
fonts and the spacing used.
HP64_Softkey.labelScheme
Label
$LANG
(custom)
Names to use for labels and button text. The
default uses the $LANG environment variable
if it is set and if a scheme file named
Softkey.$LANG exists in one of the
directories searched for scheme files;
otherwise, the default is Label.
HP64_Softkey.inputScheme
Input
(custom)
Specifies mouse and keyboard operation.
324
Setting X Resources
To modify the Graphical User Interface resources
Commonly Modified Application Resources
Resource
Values
Description
HP64_Softkey.lines
24
(min. 18)
Specifies the number of lines in the main
display area.
HP64_Softkey.columns
100
(min. 80)
Specifies the number of columns, in
characters, in the main display area.
HP64_Softkey.enableCmdline
True
False
Specifies whether the command line area is
displayed when you initially enter the
Graphical User Interface.
*editFile
(example)
vi %s
Specifies the command used to edit files.
*editFileLine
(example)
vi +%d %s
Specifies the command used to edit a file at a
certain line number.
*<proc>*actionKeysSub.keyDefs
(paired list
of strings)
Specifies the text that should appear on the
action key push buttons and the commands
that should be executed in the command line
area when the action key is pushed. Refer to
the "To set up custom action keys" section for
more information.
*<proc>*dirSelectSub.entries
(list of
strings)
Specifies the initial values that are placed in
the File→Context→Directory popup recall
buffer. Refer to the "To set initial recall
buffer values" section for more information.
*<proc>*recallSub.entries
(list of
strings)
Specifies the initial values that are placed in
the entry buffer (labeled "():"). Refer to the
"To set initial recall buffer values" section for
more information.
325
Setting X Resources
To modify the Graphical User Interface resources
The following steps show you how to modify the Graphical User Interface’s X
resources.
1 Copy part or all of the HP64_Softkey application defaults file to a
temporary file.
The HP64_Softkey file contains the default definitions for the graphical
interface application’s X resources.
For example, on an HP 9000 computer you can use the following command to
copy the complete HP64_Softkey file to HP64_Softkey.tmp (note that the
HP64_Softkey file is several hundred lines long):
cp /usr/lib/X11/app-defaults/HP64_Softkey HP64_Softkey.tmp
NOTE: The HP64_Softkey application defaults file is re-created each time
Graphical User Interface software is installed or updated. You can use the
UNIX diff command to check for differences between the new HP64_Softkey
application defaults file and the old application defaults file that is saved as
/usr/hp64000/lib/X11/HP64_schemes/old/HP64_Softkey.
2 Modify the temporary file.
Modify the resource that defines the behavior or appearance that you wish to
change.
For example, to change the number of lines in the main display area to 36:
vi HP64_Softkey.tmp
Search for the string "HP64_Softkey.lines". You should see lines similar to
the following.
!-----------------------------------------------------------------------------! The lines and columns set the vertical and horizontal dimensions of the
! main display area in characters, respectively. Minimum values are 18 lines
! and 80 columns. These minimums are silently enforced.
!
! Note: The application cannot be resized by using the window manager.
!HP64_Softkey.lines:
!HP64_Softkey.columns:
326
24
85
Setting X Resources
To modify the Graphical User Interface resources
Edit the line containing "HP64_Softkey.lines" so that it is uncommented and
is set to the new value:
!-----------------------------------------------------------------------------! The lines and columns set the vertical and horizontal dimensions of the
! main display area in characters, respectively. Minimum values are 18 lines
! and 80 columns. These minimums are silently enforced.
!
! Note: The application cannot be resized by using the window manager.
HP64_Softkey.lines:
36
!HP64_Softkey.columns: 85
Save your changes and exit the editor.
3 If the RESOURCE_MANAGER property exists (as is the case with
HP VUE — if you’re not sure, you can check by entering the xrdb
-query command), use the xrdb command to add the resources to
the RESOURCE_MANAGER property. For example:
xrdb -merge -nocpp HP64_Softkey.tmp
Otherwise, if the RESOURCE_MANAGER property does not exist, append
the temporary file to your $HOME/.Xdefaults file. For example:
cat HP64_Softkey.tmp >> $HOME/.Xdefaults
4 Remove the temporary file.
5 Start or restart the Graphical User Interface.
After you have completed the above steps, you must either start, or restart
by exiting and starting again, the Graphical User Interface. Starting and
exiting the Graphical User Interface is described in the "Starting and Exiting
HP 64700 Interfaces" chapter.
327
Setting X Resources
To use customized scheme files
To use customized scheme files
Scheme files are used to set platform specific resources that deal with color,
fonts and sizes, mouse and keyboard operation, and labels and titles. You can
create and use customized scheme files by following these steps.
1 Create the $HOME/.HP64_schemes/<platform> directory.
For example:
mkdir $HOME/.HP64_schemes
mkdir $HOME/.HP64_schemes/HP-UX
2 Copy the scheme file to be modified to the
$HOME/.HP64_schemes/<platform> directory.
Label scheme files are not platform specific; therefore, they should be placed
in the $HOME/.HP64_schemes directory. All other scheme files should be
placed in the $HOME/.HP64_schemes/<platform> directory.
For example:
cp /usr/hp64000/lib/X11/HP64_schemes/HP-UX/Softkey.Color
$HOME/.HP64_schemes/HP-UX/Softkey.MyColor
Note that if your custom scheme file has the same name as the default
scheme file, the load order requires resources in the custom file to explicitly
override resources in the default file.
3 Modify the $HOME/.HP64_schemes/<platform>/Softkey.<scheme>
file.
For example, you could modify the
"$HOME/.HP64_schemes/HP-UX/Softkey.MyColor" file to change the defined
foreground and background colors. Also, since the scheme file name is
different than the default, you could comment out various resource settings
to cause general foreground and background color definitions to apply to the
Graphical User Interface. At least one resource must be defined in your color
scheme file for it to be recognized.
328
Setting X Resources
To use customized scheme files
4 If your custom scheme file has a different name than the default, you
must modify the scheme resource definitions.
The Graphical User Interface application defaults file contains resources that
specify which scheme files are used. If your custom scheme files are named
differently than the default scheme files, you must modify these resource
settings so that your customized scheme files are used instead of the default
scheme files.
For example, to use the "$HOME/.HP64_schemes/HP-UX/Softkey.MyColor"
color scheme file you would set the "HP64_Softkey.colorScheme" resource to
"MyColor":
HP64_Softkey.colorScheme: MyColor
Refer to the previous "To customize Graphical User Interface resources"
section for more detailed information on modifying resources.
329
Setting X Resources
To set up custom action keys
To set up custom action keys
• Modify the "actionKeysSub.keyDefs" resource.
The "actionKeysSub.keyDefs" resource defines a list of paired strings. The
first string defines the text that should appear on the action key pushbutton.
The second string defines the command that should be sent to the command
line area and executed when the action key is pushed.
A pair of parentheses (with no spaces, that is "()") can be used in the
command definition to indicate that text from the entry buffer should replace
the parentheses when the command is executed.
Action keys that use the entry buffer should always include the entry buffer
symbol, "( )", in the action key label as a visual cue to remind you to place
information in the entry buffer before clicking the action key.
Shell commands can be executed by using an exclamation point prefix. A
second exclamation point ends the command string and allows additional
options on the command line.
Also, command files can be executed by placing the name of the file in the
command definition.
Finally, an empty action ("") means to repeat the previous operation, whether
it came from a pulldown, a dialog, a popup, or another action key.
Examples
To set up custom action keys when the graphical interface is used with 6833x
emulators, modify the "*m6833x*actionKeysSub.keyDefs" resource:
*m6833x*actionKeysSub.keyDefs: \
"Make"
"cd /users/project2/6833x; !make! in_browser" \
"Load Pgm"
"load configuration config.EA; load program2" \
"Run Pgm"
"run from reset" \
"Trace after ( )"
"trace after (); display trace" \
"Step Source"
"set source on; display memory mnemonic; step source" \
"Again"
""
Refer to the previous "To modify Graphical User Interface resources" section
for more detailed information on modifying resources.
330
Setting X Resources
To set initial recall buffer values
To set initial recall buffer values
• Modify the "entries" resource for the particular recall buffer.
There are six popup recall buffers present in the Graphical User Interface.
The resources for these popup recall buffers are listed in the following table.
The window manager resource "*transientDecoration" controls the borders
around dialog box windows. The most natural setting for this resource is
"title."
Popup Recall Buffer Resources
Recall Popup
Resources
Description
File→Context→Directory ...
*dirSelect.textColumns
*dirSelect.listVisibleItemCount
*dirSelectSub.entries
The default number of text
columns in the popup is 50.
File→Context→Symbols ...
*symSelect.textColumns
*symSelect.listVisibleItemCount
*symSelectSub.entries
Trace→Trace Spec ...
*modtrace.textColumns
*modtrace.listVisibleItemCount
*modtraceSub.entries
Entry Buffer ():
*recall.textColumns
*recall.listVisibleItemCount
*recallSub.entries
Command Line command
recall
*recallCmd.textColumns
*recallCmd.listVisibleItemCount
*recallCmdSub.entries
Command Line pod/simio
recall
*recallKbd.textColumns
*recallKbd.listVisibleItemCount
*recallKbdSub.entries
The default number of visible lines
in the popup is 12.
The "entries" resource is defined
as a list of strings (see the
following example).
Up to 40 unique values are saved
in each of the recall buffers (as
specified by the resource settings
"*XcRecall.maxDepth: 40" and
"*XcRecall.onlyUnique: True").
331
Setting X Resources
To set up demos or tutorials
Examples
To set the initial values for the directory selection dialog box when the
Graphical User Interface is used with 6833x emulators, modify the
"*m6833x*dirSelectSub.entries" resource:
*m6833x*dirSelectSub.entries: \
"$HOME" \
".." \
"/users/project1" \
"/users/project2/6833x"
Refer to the previous "To modify the Graphical User Interface resources"
section for more detailed information on modifying resources.
To set up demos or tutorials
You can add demos or tutorials to the Graphical User Interface by modifying
the resources described in the following tables.
Demo Related Component Resources
Resource
Value
Description
*enableDemo
False
True
Specifies whether Help→Demo
appears in the pulldown menu.
*demoPopupSub.indexFile
./Xdemo/Index-topics
Specifies the file containing the list of
topic and file pairs.
*demoPopup.textColumns
30
Specifies the width, in characters, of
the of the demo topic list popup.
*demoPopup.listVisibleItemCount
10
Specifies the length, in lines, of the
demo topic list popup.
*demoTopic
About demos
Specifies the default topic in the
demo popup selection buffer.
332
Setting X Resources
To set up demos or tutorials
Tutorial Related Component Resources
Resource
Value
Description
*enableTutorial
False
True
Specifies whether Help→Tutorial
appears in the pulldown menu.
*tutorialPopupSub.indexFile
./Xtutorial/Index-topics
Specifies the file containing the list
of topic and file pairs.
*tutorialPopup.textColumns
30
Specifies the width, in characters,
of the of the tutorial topic list
popup.
*tutorialPopup.listVisibleItemCount
10
Specifies the length, in lines, of the
tutorial topic list popup.
*tutorialTopic
About tutorials
Specifies the default topic in the
tutorial popup selection buffer.
The mechanism for providing demos and tutorials in the graphical interface is
identical. The following steps show you how to set up demos or tutorials in
the Graphical User Interface.
1 Create the demo or tutorial topic files and the associated command
files.
Topic files are simply ASCII text files. You can use "\I" to produce inverse
video in the text, "\U" to produce underlining in the text, and "\N" to restore
normal text.
Command files are executed when the "Press to perform demo (or tutorial)"
button (in the topic popup dialog) is pushed. A command file must have the
same name as the topic file with ".cmd" appended. Also, a command file
must be in the same directory as the associated topic file.
333
Setting X Resources
To set up demos or tutorials
2 Create the demo or tutorial index file.
Each line in the index file contains first a quoted string that is the name of
the topic which appears in the index popup and second the name of the file
that is raised when the topic is selected. For example:
"About demos"
"Loading programs"
"Running programs"
/users/guest/gui_demos/general
/users/guest/gui_demos/loadprog
/users/guest/gui_demos/runprog
You can use absolute paths (for example, /users/guest/topic1), paths relative
to the directory in which the interface was started (for example,
mydir/topic2), or paths relative to the product directory (for example,
./Xdemo/general where the product directory is something like
/usr/hp64000/inst/emul/64742A).
3 Set the "*enableDemo" or "*enableTutorial" resource to "True".
4 Define the demo index file by setting the "*demoPopupSub.indexFile"
or "*tutorialPopupSub.indexFile" resource.
For example:
*demoPopupSub.indexFile:
/users/guest/gui_demos/index
You can use absolute paths (for example, /users/guest/Index), paths relative
to the directory in which the interface was started (for example,
mydir/indexfile), or paths relative to the product directory (for example,
./Xdemo/Index-topics where the product directory is something like
/usr/hp64000/inst/emul/64742A).
5 If you wish to define a default topic to be selected, set the
"*demoTopic" or "*tutorialTopic" resource to the topic string.
For example:
*demoTopic:
"About demos"
Refer to the previous "To customize Graphical User Interface resources"
section for more detailed information on modifying resources.
334
Part 3
Reference
335
Part 3
Descriptions of the product in a dictionary or encyclopedia format.
336
12
Emulator/Analyzer Interface
Commands
337
Emulator/Analyzer Interface Commands
This chapter describes the emulator/analyzer interface commands in
alphabetical order. First, the syntax conventions are described and the
commands are summarized.
How Pulldown Menus Map to the Command Line
Pulldown menu items and corresponding softkey commands are shown below.
Pulldown
Command Line
File→Context→Directory
File→Context→Symbols
cd
cws
File→Load→Emulator Config
File→Load→Executable
File→Load→Program Only
File→Load→Symbols Only
File→Load→Trace Data
File→Load→Trace Spec
load configuration
load <abs_file>
load <abs_file> nosymbols
load symbols
load trace <FILE>
load trace <FILE>
File→Store→Trace Data
File→Store→Trace Spec
File→Store→BBA Data
store trace
store trace_spec
bbaunload
File→Copy→Display
File→Copy→Memory
File→Copy→Data Values
File→Copy→Configuration Info
File→Copy→Trace
File→Copy→Registers
File→Copy→Breakpoints
File→Copy→Status
File→Copy→Global Symbols
File→Copy→Local Symbols ()
File→Copy→Pod Commands
File→Copy→Error Log
File→Copy→Event Log
copy display to
copy memory to
copy data to
copy configuration_info to
copy trace to
copy registers to
copy software_breakpoints to
copy status to
copy global_symbols to
copy local_symbols_in --SYMB-- to
copy pod_command to
copy error_log to
copy event_log to
338
Emulator/Analyzer Interface Commands
Pulldown
Command Line
File→Log→Playback
File→Log→Record
File→Log→Stop
<command file>
log_commands to
log_commands off
File→Emul700→High-Level Debugger
File→Emul700→Performance Analyzer
File→Emul700→Emulator/Analyzer
File→Emul700→Timing Analyzer
File→Emul700→SPA for VRTXsa
File→Emul700→SPA for VRTX
N/A
N/A
N/A
N/A
N/A
N/A
File→Edit→File
File→Edit→At () Location
File→Edit→At PC Location
! vi <file> ! no_prompt_before_exit
! vi +<line> <file> ! no_prompt_before_exit
! vi +<line> <file> ! no_prompt_before_exit
File→Term
!
File→Exit→Window (save session)
File→Exit→Locked (all windows, save
session)
File→Exit→Released (all windows, release
emulator)
end
end locked
Display→Context
pwd, pws
Display→Memory
Display→Memory→Mnemonic ()
Display→Memory→Mnemonic at PC
Display→Memory→Mnemonic Previous
Display→Memory→Hex ()→bytes
Display→Memory→Hex ()→words
Display→Memory→Hex ()→long
Display→Memory→Real ()→short
Display→Memory→Real ()→long
Display→Memory→At ()
Display→Memory→Repetitively
display memory
display memory --EXPR-- mnemonic
display memory mnemonic at_pc
display memory mnemonic previous_display
display memory --EXPR-- blocked bytes
display memory --EXPR-- blocked words
display memory --EXPR-- blocked long
display memory --EXPR-- real short
display memory --EXPR-- real long
display memory --EXPR-display memory repetitively
Display→Data Values
Display→Data Values→New ()→<type>
Display→Data Values→Add ()→<type>
display data
display data --EXPR-- <type>
display data, --EXPR-- <type>
end release_system
339
Emulator/Analyzer Interface Commands
Pulldown
Command Line
Display→Configuration Info
Display→Configuration Info→Diagnostics
Display→Configuration Info→Chip Selects
(SIM)
Display→Configuration Info→Chip Selects
(Emulator SIM)
Display→Configuration Info→Bus Interface
Ports (SIM)
Display→Configuration Info→Bus Interface
Ports (Emulator SIM)
Display→Configuration Info→Memory Map
Display→Configuration Info→Reset Mode
Value
Display→Configuration Info→Initialization
Source Code
display configuration_info
display configuration_info diagnostics
display configuration_info sim_chip_selects
Display→SIM Register Differences
Display→Trace
Display→Registers
Display→Breakpoints
Display→Status
Display→Simulated IO
Display→Global Symbols
Display→Local Symbols ()
Display→Pod Commands
Display→Error Log
Display→Event Log
sync_sim_registers difference
display trace
display registers
display software_breakpoints
display status
display simulated_io
display global_symbols
display local_symbols_in --SYMB-display pod_command
display error_log
display event_log
Modify→Emulator Config
Modify→Memory
Modify→Memory at ()
Modify→Register
Modify→SIM Registers→Copy Processor SIM
to Emulator SIM
Modify→SIM Registers→Copy Emulator SIM
to Processor SIM
Modify→SIM Registers→Default Emulator
SIM to Reset Values
modify configuration
modify memory
modify memory --EXPR-modify register
sync_sim_registers from_6833x_to_config
340
display configuration_info emsim_chip_selects
display configuration_info bus_interface_ports
display configuration_info embus_interface_ports
display configuration_info memory_map
display configuration_info reset_mode
display configuration_info init_source_code
sync_sim_registers to_6833x_from_config
sync_sym_registers default_emsim
Emulator/Analyzer Interface Commands
Pulldown
Command Line
Execution→Run→from PC
Execution→Run→from ()
Execution→Run→from Transfer Address
Execution→Run→from Reset
Execution→Run→until ()
Execution→Step Source→from PC
Execution→Step Source→from ()
Execution→Step Source→from Transfer
Address
Execution→Step Instruction→from PC
Execution→Step Instruction→from ()
Execution→Step Instruction→from Transfer
Address
Execution→Break
Execution→Reset
run
run from --EXPR-run from transfer_address
run from reset
run until --EXPR-step source
step source from --EXPR-step source from transfer_address
Breakpoints→Display
Breakpoints→Enable
Breakpoints→Permanent ()
display software_breakpoints
modify software_breakpoints enable/disable
modify software_breakpoints set --EXPR-permanent
modify software_breakpoints set --EXPR-temporary
modify software_breakpoints set
modify software_breakpoints clear --EXPR-modify software_breakpoints clear
Breakpoints→Temporary ()
Breakpoints→Set All
Breakpoints→Clear ()
Breakpoints→Clear All
step
step from --EXPR-step from transfer_address
break
reset
341
Emulator/Analyzer Interface Commands
Pulldown
Command Line
Trace→Display
Trace→Display Options
Trace→Trace Spec
Trace→After ()
Trace→Before ()
Trace→About ()
Trace→Only ()
Trace→Only () Prestore
Trace→Again
Trace→Repetitively
Trace→Everything
Trace→Until ()
Trace→Until Stop
Trace→Stop
display trace
display trace
N/A (browses recall buffer for trace commands)
trace after STATE
trace before STATE
trace about STATE
trace only STATE
trace only STATE prestore anything
trace again
<previous trace spec> repetitively
trace
trace before STATE break_on_trigger
trace on_halt
stop_trace
Settings→Source/Symbol Modes→Absolute
Settings→Source/Symbol Modes→Symbols
Settings→Source/Symbol Modes→Source
Mixed
Settings→Source/Symbol Modes→Source
Only
Settings→Display Modes
Settings→Pod Command Keyboard
Settings→Simulated IO Keyboard
Settings→Command Line
set source off symbols off
set source off symbols on
set source on inverse_video on symbols on
342
set source only inverse_video off symbols on
set
display pod_command; pod_command keyboard
display simulated_io; modify keyboard_to_simio
N/A (toggles the command line)
Emulator/Analyzer Interface Commands
How Popup Menus Map to the Command Line
The following tables show the items available in the popup menus and the
command line commands to which they map.
Mnemonic Memory Display Popup
Command Line
Set/Clear Software Breakpoint
Edit Source
Run Until
Trace After
Trace Before
Trace About
Trace Until
modify software_breakpoints set/clear --EXPR-! vi +<line> <file> ! no_prompt_before_exit
run until --EXPR-trace after STATE
trace before STATE
trace about STATE
trace before STATE break_on_trigger
Breakpoints Display Popup
Command Line
Set/Inactivate Breakpoint
Clear (delete) Breakpoint
Enable/Disable Software Breakpoints
Set All Breakpoints
Clear (delete) All Breakpoints
modify software_breakpoints set/deactivate --EXPR-modify software_breakpoints clear --EXPR-modify software_breakpoints enable/disable
modify software_breakpoints set
modify software_breakpoints clear
Symbols Display Popup
Command Line
Display Local Symbols
Display Parent Symbols
display local_symbols_in --SYMB-display local_symbols_in --SYMB--, display
global_symbols
N/A
! vi +<line> <file> ! no_prompt_before_exit
Cut Full Symbol Name
Edit File Defining Symbol
343
Emulator/Analyzer Interface Commands
Status Line Popup
Command Line
Remove Temporary Message
Command Line On/Off
Display Error Log
Display Event Log
N/A
(toggles command line)
display error_log
display event_log
Command Line Popup
Command Line
Position Cursor, Replace Mode
Position Cursor, Insert Mode
Execute Command
Clear to End of Line
Clear Entire Line
Command Line Off
<INSERT CHAR> key (when in insert mode)
<INSERT CHAR> key
<RETURN> key
<CTRL>e
<CTRL>u
(toggles command line)
344
Emulator/Analyzer Interface Commands
Syntax Conventions
Conventions used in the command syntax diagrams are defined below.
Oval-shaped Symbols
Oval-shaped symbols show options available on the softkeys and other
commands that are available, but do not appear on softkeys (such as
log_commands and wait). These appear in the syntax diagrams as:
Rectangular-shaped Symbols
Rectangular-shaped symbols contain prompts or references to other syntax
diagrams. Prompts are enclosed with angle brackets (< and >). References
to other diagrams are shown in all capital letters. Also, references to
expressions are shown in all capital letters, for example --EXPR-- and
--SYMB-- (see those syntax diagrams). These appear in the following syntax
diagrams as:
Circles
Circles indicate operators and delimiters used in expressions and on the
command line as you enter commands. These appear in the syntax diagrams
as:
The -NORMAL- Key
The softkey labeled -NORMAL- allows you exit the --SYMB-- definition, and
access softkeys that are not displayed when defining expressions. You can
press this key after you have defined an expression to view other available
options.
345
Commands
Emulator/analyzer Softkey Interface commands are summarized in the table
below and described in the following pages.
!UNIX_COMMAND
bbaunload
break
cd (change directory)3
cmb_execute
<command file>3
copy configuration_info
copy data4
copy display
copy error_log
copy event_log
copy global_symbols
copy help
copy local_symbols_in
copy memory4
copy pod_command
copy registers1
copy software_breakpoints
copy status
copy trace
cws(change working symbol)3
display configuration_info
display data4
display error_log
1
2
3
4
display event_log
display global_symbols
display local_symbols_in
display memory4
display pod_command
display registers1
display simulated_io2
display software_breakpoints
display status
display trace
end
forward3
help3
load <absolute_file>
load configuration
load emul_mem
load fg_mon
load trace
load trace_spec
load user_memory
log_commands3
modify configuration
modify keyboard_to_simio2
modify memory4
modify register1
modify software_breakpoints1
modify tags
name_of_module3
performance_measurement_end
performance_measurement_init
performance_measurement_run
pod_command
pwd (print working directory)3
pws (print working symbol)3
reset
run
set
specify
step
stop_trace
store memory
store trace
store trace_spec
sync_sim_registers1
trace
wait3
This option is not available in real-time mode.
This is only available when simulated I/O is defined.
These commands are not displayed on softkeys.
This option is not available in real-time mode if addresses are in user memory.
346
Emulator/Analyzer Interface Commands
bbaunld
bbaunld
This command is available when the HP Branch Validator product is installed.
This basis branch analyzer (BBA) product is used to analyze the testing of
your programs, create more complete test suites, and quantify your level of
testing.
The HP Branch Validator records branches executed in a program and
generates reports that provide information about program execution during
testing. It uses a special C preprocessor to add statements that write to a
data array when program branches are taken. After running the program in
the emulator (using test input), you can use the bbaunload command to store
the BBA information to a file. Then, you can generate reports based on the
stored information.
See Also
Refer to the HP Branch Validator (BBA) User’s Guide for complete details
on the bbaunload command syntax.
347
Emulator/Analyzer Interface Commands
break
break
running
reset
running in monitor
See Also
This command causes the emulator to leave user program execution and
begin executing in the monitor.
The behavior of break depends on the state of the emulator:
Break diverts the processor from execution of your program to the emulation
monitor.
Break releases the processor from reset, and diverts execution to the monitor.
The break command does not perform any operation while the emulator is
executing in the monitor.
The reset, run, and step commands.
348
Emulator/Analyzer Interface Commands
cmb_execute
cmb_execute
The cmb_execute command causes the emulator to emit an EXECUTE pulse
on its rear panel Coordinated Measurement Bus (CMB) connector. All
emulators connected to the CMB (including the one sending the CMB
EXECUTE pulse) and configured to respond to this signal will take part in
the measurement.
See Also
The specify run and specify trace commands.
349
Emulator/Analyzer Interface Commands
copy
copy
Use this command with various parameters to save or print emulation and
analysis information.
The copy command copies selected information to your system printer or
listing file, or directs it to an UNIX process.
350
Emulator/Analyzer Interface Commands
copy
configuration_info
data
display
error_log
event_log
<FILE>
global_symbols
help
<HELP_FILE>
UNIX CMD
local_symbols_in
memory
noappend
noheader
pod_command
Depending on the information you choose to copy, default values may be
options selected for the previous execution of the display command. For
example, if you display memory locations 10h through 20h, then issue a copy
memory to myfile command, myfile will list only memory locations 10h
through 20h.
The parameters are as follows:
Copies the last configuration information display.
Copies a list of memory contents formatted in various data types (see display
data).
Copies the display to a selected destination.
Copies the most recent errors that have occurred.
Copies the most recent events that have occurred.
This prompts you for the name of a file where you want the specified
information to be copied. If you want to specify a file name that begins with a
number, you must precede the file name with a backslash. For example:
copy display to \12.10.
Copies a list of global symbols to the selected destination.
Copies the contents of the emulation help files to the selected destination.
This represents the name of the help file to be copied. Available help file
names are displayed on the softkey labels.
This represents an UNIX filter or pipe where you want to route the output of
the copy command. UNIX commands must be preceded by an exclamation
point (!). An exclamation point following the UNIX command continues
command line execution after the UNIX command executes. Emulation is
not affected when using an UNIX command that is a shell intrinsic.
Copies all the children of a given symbol to the selected destination. See the
--SYMB-- syntax page and the Symbolic Retrieval Utilities User’s Guide for
information on symbol hierarchy.
Copies a list of the contents of memory to the selected destination.
This causes any copied information to overwrite an existing file with the
same name specified by <FILE>. If this option is not selected, the default
operation is to append the copied information to the end of an existing file
with the same name that you specify.
Copies the information into a file without headings.
This allows you to copy the most recent commands sent to the HP 64700
Series emulator/analyzer.
351
Emulator/Analyzer Interface Commands
copy
printer
This option specifies your system printer as the destination device for the
copy command. Before you can specify the printer as the destination device,
you must define PRINTER as a shell variable. For example, you could enter
the text shown below after the "$" symbol:
$ PRINTER=lp
$ export PRINTER
If you don’t want the print message to overwrite the command line, execute:
$ set PRINTER = "lp -s"
registers
software
_breakpoints
status
to
trace
wait_for_exit
!
Copies a list of the contents of the emulation processor registers to the
selected destination.
Copies a list of the current software breakpoints to a selected destination.
Copies emulation and analysis status information.
This allows you to specify a destination for the copied information.
Copies the current trace listing to the selected destination.
Waits for the UNIX command to complete before returning.
An exclamation point specifies the delimiter for UNIX commands. An
exclamation point must precede all UNIX commands. A trailing exclamation
point should be used if you want to return to the command line and specify
noheader. Otherwise, the trailing exclamation point is optional. If an
exclamation point is part of the UNIX command, a backslash (\) must
precede the exclamation point.
Examples
See the following pages on various copy syntax diagrams.
See Also
See the following pages on various copy syntax diagrams.
352
Emulator/Analyzer Interface Commands
copy local_symbols_in
copy local_symbols_in
--SYMB--
Examples
This command lets you copy local symbols contained in a source file and
relative segments (program, data, or common) to the selected destination.
Local symbols are symbols that are children of the particular file or symbol
defined by --SYMB--, that is, they are defined in that file or scope.
For additional information on symbols, refer to the --SYMB-- syntax pages
and the Symbolic Retrieval Utilities User’s Guide.
--SYMB-- is the current working symbol.
The parameters are as follows:
This option represents the symbol whose children are to be listed. See the
--SYMB-- syntax diagram and the Symbolic Retrieval Utilities User’s Guide
for information on symbol hierarchy.
copy local_symbols_in mod_name to printer
copy local_symbols_in mod_name: to linenumfile
See Also
The display local_symbols_in command.
353
Emulator/Analyzer Interface Commands
copy memory
copy memory
This command copies the contents of a memory location or series of locations
to the specified output.
The memory contents are copied in the same format as specified in the last
display memory command.
Contents of memory can be displayed if program runs are not restricted to
real-time. Memory contents are listed as an asterisk (*) under the following
conditions:
• The address refers to guarded memory.
• Runs are restricted to real-time, the emulator is running a user
program, and the address is located in user memory.
Values in emulation memory can always be displayed.
Initial values are the same as those specified by the command display
memory 0 blocked bytes offset_by 0.
Defaults are to values specified in the previous display memory command.
354
Emulator/Analyzer Interface Commands
copy memory
--EXPR--
FCODE
,
Examples
The parameters are as follows:
An expression is a combination of numeric values, symbols, operators, and
parentheses, specifying a memory address or offset value. See the EXPR
syntax diagram.
The function code used to define the address space being referenced. See the
syntax diagram for FCODE to see a list of the function codes available and for
an explanation of those codes.
A comma used immediately after memory in the command line appends the
current copy memory command to the preceding display memory command.
The data specified in both commands is copied to the destination specified in
the current command. Data is formatted as specified in the current
command. The comma is also used as a delimiter between values when
specifying multiple memory addresses.
copy memory start to printer
copy memory 0 thru 100h , start thru +5 , 500H ,
target2 to memlist
copy memory 2000h thru 204fh to memlist
See Also
The display memory, modify memory, and store memory commands.
355
Emulator/Analyzer Interface Commands
copy registers
copy registers
<CLASS>
<REGISTER>
Examples
This command copies the contents of the processor registers to a file or
printer.
The copy register process does not occur in real-time. The emulation system
must be configured for nonreal-time operation to list the registers while the
processor is running.
With no options specified, the basic register class is copied. This includes the
local and global registers.
The parameters are as follows:
Specifies a particular class of the emulator registers.
copy registers global to printer
copy registers to reglist
See Also
The display registers and modify registers commands.
356
Emulator/Analyzer Interface Commands
copy trace
copy trace
thru_line_number
This command copies the contents of the trace buffer to a file or to the
printer.
Trace information is copied in the same format as specified in the last display
trace command.
Initial values are the same as specified by the last display trace command.
The parameters are as follows:
This specifies the trace list line number from which copying will begin.
Use this with from_line_number and thru_line_number to specify the starting
and ending trace list lines to be copied.
Specifies the last line number of the trace list to include in the copied range.
Examples
copy trace to tlist
from_line_number
<LINE#>
copy trace from_line_number 0 thru_line_number 5
to longtrac
See Also
The display trace and store trace commands.
357
Emulator/Analyzer Interface Commands
display
display
data
error_log
event_log
global_symbols
This command displays selected information on your screen.
You can use the <Up arrow>, <Down arrow>, <PREV>, and <NEXT> keys to
view the displayed information. For software_breakpoints, data, memory,
and trace displays you can use the <CTRL>g and <CTRL>f keys to scroll left
and right if the information goes past the edge of the screen.
Depending on the information you select, defaults may be the options
selected for the previous execution of the display command.
The parameters are as follows:
This allows you to display a list of memory contents formatted in various data
types (see the display data pages for details).
This option displays the recorded list of error messages that occurred during
the emulation session.
This option displays the recorded list of events.
This option lets you display a list of all global symbols in memory.
358
Emulator/Analyzer Interface Commands
display
local_symbols_in
memory
pod_command
registers
simulated_io
software
_breakpoints
status
trace
Examples
This option lets you display all the children of a given symbol. See the
--SYMB-- syntax page and the Symbolic Retrieval Utilities User’s Guide for
details on symbol hierarchy.
This option allows you to display the contents of memory.
This option lets you display the output of previously executed emulator pod
commands.
This allows you to display the contents of emulation processor registers.
This lets you display data written to the simulated I/O display buffer after you
have enabled polling for simulated I/O in the emulation configuration.
This option lets you display the current list of software breakpoints.
This displays the emulator and trace status.
This displays the current trace list.
display event_log
display local_symbols_in mod_name
See Also
The copy command description and the following pages which describe the
various display commands.
359
Emulator/Analyzer Interface Commands
display configuration_info
display configuration_info
This command displays information about emulator configuration and
processor SIM programming. You can also display diagnostic information
about inconsistencies found in the emulator configuration.
360
Emulator/Analyzer Interface Commands
display configuration_info
diagnostics
sim_chip_selects
The parameters are as follows:
Checks all parts of the emulator configuration and reports any
inconsistencies. It identifies errors that result from inconsistencies between
related configuration values. These errors should be resolved in order for the
emulator to operate correctly.
This option primarily checks for inconsistencies between the mapper and the
EMSIM registers, but it also provides status messages about expectations and
limitations of the emulator of which you should be aware. (These checks are
primarily between the reset mode configuration value and the EMSIM
registers.)
If no messages are returned, no inconsistencies are found in the emulator
configuration.
Display chip select information from the sim (processor) register set or the
emsim (emulator) register set. The resulting display shows:
emsim_chip
_selects
bus_interface_ports
embus_interface
_ports
memory_map
reset_mode
init_source_code
How the chip select is assigned.
The base address.
The block size.
Other information from the option register.
Display bus interface information from the sim (processor) register set or the
emsim (emulator) register set. The resulting display shows the pin
assignments for the C, E, and F ports.
When in the memory map section of the emulator configuration, the ranges of
memory that have been mapped are displayed.
The memory map configuration information shows detailed information about
the memory map and how actual mapper resources are allocated due to the
current programming of the chip selects in the EMSIM and EMRAM register
sets.
Displays information about the reset mode configuration value, whether it is
generated internally by the emulator or externally by the target system.
Displays the assembly language program that will initialize the processor as
defined by the current EMSIM register contents.
361
Emulator/Analyzer Interface Commands
display configuration_info
Examples
display configuration_info diagnostics
display configuration_info memory_map
See Also
The sync_sim_registers and modify configuration commands. Also, see
the "Verifying the Emulator Configuration" section in the "Configuring the
Emulator" chapter.
362
Emulator/Analyzer Interface Commands
display data
display data
This command can display the values of simple data types in your program.
Using this command can save you time; otherwise, you would need to search
through memory displays for the location and value of a particular variable.
The address, identifier, and data value of each symbol may be displayed. You
must issue the command set symbols on to see the symbol names displayed.
In the first display data command after you begin an emulation session,
you must supply at least one expression specifying the data item(s) to
display.
Thereafter, the display data command defaults to the expressions
specified in the last display data command, unless new expressions are
supplied or appended (with a leading comma).
363
Emulator/Analyzer Interface Commands
display data
,
--EXPR--
thru --EXPR--
<TYPE>
byte
word
long
int8
int16
int32
u_int8
u_int16
u_int32
char
Symbols are normally set off until you give the command set symbols on.
Otherwise, only the address, data type, and value of the data item will be
displayed.
The parameters are as follows:
A leading comma allows you to append additional expressions to the previous
display data command.
Commas between expression/data type specifications allow you to specify
multiple variables and types for display with the current command.
Prompts you for an expression specifying the data item to display. The
expression can include various math operators and program symbols. See
the --EXPR-- and --SYMB-- syntax pages for more information.
Allows you to specify a range of addresses for which you want data display.
Typically, you use this to display the contents of an array. You can display
both single-dimensioned and multi-dimensioned arrays. Arrays are displayed
in the order specified by the language definition, typically row major order for
most Algol-like languages.
Specifies the format in which to display the information. (Data type
information is not available from the symbol database, so you must specify.)
Hex display of one 8 bit location.
Hex display of one 16 bit location.
Hex display of one 32 bit location.
Note that byte ordering in word and long displays is determined by the
conventions of the processor in use.
Display of one 8 bit location as a signed integer using two’s complement
notation.
Display of two bytes as a signed integer using two’s complement notation.
Display of four bytes as a signed integer using two’s complement notation.
Display of one byte as an unsigned positive integer.
Display of two bytes as an unsigned positive integer.
Display of four bytes as an unsigned positive integer.
Displays one byte as an ASCII character in the range 0 through 127. Control
characters and values in the range 128 through 255 are displayed as a period
(.).
364
Emulator/Analyzer Interface Commands
display data
Examples
display data Msg_A thru +17 char, Stack long
set symbols on
set width label 30
display data , Msg_B thru +17 char, Msg_Dest thru
+17 char
See Also
The copy data and set commands.
365
Emulator/Analyzer Interface Commands
display global_symbols
display global_symbols
This command displays the global symbols defined for the current absolute
file.
Global symbols are symbols declared as global in the source file. They
include procedure names, variables, constants, and file names. When the
display global_symbols command is used, the listing will include the
symbol name and its logical address.
See Also
The copy global_symbols command.
366
Emulator/Analyzer Interface Commands
display local_symbols_in
display local_symbols_in
--SYMB--
Examples
This command displays the local symbols in a specified source file and their
relative segment (program, data, or common).
Local symbols of --SYMB-- are the ones which are children of the file and/or
scope specified by --SYMB--. That is, they are defined in that file or scope.
See the --SYMB-- syntax pages and the Symbolic Retrieval Utilities User’s
Guide for further explanation of symbols.
Displaying the local symbols sets the current working symbol to the one
specified.
The parameters are as follows:
This option represents the symbol whose children are to be listed. See the
--SYMB-- syntax diagram and the Symbolic Retrieval Utilities User’s Guide
for more information on symbol hierarchy and representation.
display local_symbols_in
mod_name
display local_symbols_in mod_name:main
See Also
The copy local_symbols_in command.
367
Emulator/Analyzer Interface Commands
display memory
display memory
This command displays the contents of the specified memory location or
series of locations.
The memory contents can be displayed in mnemonic, hexadecimal, or real
number format. In addition, the memory addresses can be listed offset by a
368
Emulator/Analyzer Interface Commands
display memory
value, which allows the information to be easily compared to the program
listing.
When displaying memory mnemonic and stepping, the next instruction that
will step is highlighted. The memory mnemonic display autopages to the new
address if the next PC goes outside the currently displayed address range.
This feature works even if stepping is performed in a different emulation
window than the one displaying memory mnemonic.
Pending software breakpoints are shown in the memory mnemonic display by
an asterisk (*) in the leftmost column of the assembly instruction or source
line that has a pending breakpoint.
A label column (symbols) may be displayed for all memory displays except
blocked mode. Memory mnemonic may be displayed with source and
assembly code intermixed, or with source code only. Symbols also can be
displayed in the memory mnemonic string. (See the set command.)
Initial values are the same as specified by the command:
display memory 0 blocked bytes offset_by 0
Defaults are values specified in a previous display memory command.
The symbols and source defaults are:
set source off symbols off
absolute
at_pc
blocked
bytes
--EXPR--
FCODE
long
The parameters are as follows:
Formats the memory listing in a single column.
Displays the memory at the address pointed to by the current program
counter value.
Formats the memory listing in multiple columns.
Displays the absolute or blocked memory listing as byte values.
An expression is a combination of numeric values, symbols, operators, and
parentheses, specifying a memory address or memory offset value. See the
EXPR syntax diagram.
The function code used to define the address space being referenced. See the
syntax diagram for FCODE to see a list of the function codes available and for
an explanation of those codes.
Displays memory in a 64-bit real number format or 32-bit long words when
preceded by blocked or absolute.
369
Emulator/Analyzer Interface Commands
display memory
mnemonic
offset_by
previous_display
real
repetitively
short
thru
words
,
This causes the memory listing to be formatted in assembly language
instruction mnemonics with associated operands. When specifying
mnemonic format, you should include a starting address that corresponds to
the first byte of an operand to ensure that the listed mnemonics are correct.
If set source only is on, you will see only the high level language statements
and corresponding line numbers.
This option lets you specify an offset that is subtracted from each of the
absolute addresses before the addresses and corresponding memory contents
are listed. You might select the offset value so that each module appears to
start at address 0000H. The memory contents listing will then appear similar
to the assembler or compiler listing.
This option is also useful for displaying symbols and source lines in
dynamically relocated programs.
Returns to display associated with the previous mnemonic memory display
command.
Formats memory values in the listing as real numbers. (NaN in the display
list means "Not a Number.")
Updates the memory listing display continuously. You should only use this to
monitor memory while running user code, since it is very CPU intensive. To
allow updates to the current memory display whenever memory is modified,
a file is loaded, software breakpoint is set, etc., use the set update command.
Formats the memory list as 32-bit real numbers.
This option lets you specify a range of memory locations to be displayed. Use
the <Up arrow>, <Down arrow>, <NEXT>, and <PREV> keys to view
additional memory locations.
Displays the absolute or blocked memory listing as 16-bit word values.
A comma after memory in the command line appends the current display
memory command to the preceding display memory command. The data
specified in both commands is displayed. The data will be formatted as
specified in the current command. The comma is also a delimiter between
values when specifying multiple addresses.
370
Emulator/Analyzer Interface Commands
display memory
Examples
You can display memory in real number and mnemonic formats:
display memory 2000h thru 202fh , 2100h real long
display memory 400h mnemonic
set symbols on
set source on
display memory main mnemonic
See Also
The copy memory, modify memory, set, and store memory commands.
371
Emulator/Analyzer Interface Commands
display registers
display registers
<CLASS>
<REGISTER>
This command displays the current contents of the emulation processor
registers.
If a step command just executed, the mnemonic representation of the last
instruction is also displayed, if the current display is the register display.
This process does not occur in real-time. The emulation system must be
configured for nonreal-time operation to display registers while the processor
is running. Symbols also may be displayed in the register step mnemonic
string (see set symbols).
With no options specified, the basic register class is displayed as the default.
This includes the local and global registers.
The parameters are as follows:
This allows you to display a particular class of emulation processor registers.
This displays an individual register or control register field.
Examples
display registers
display registers BASIC D2
See Also
The copy registers, modify registers, set, and step commands.
372
Emulator/Analyzer Interface Commands
display simulated_io
display simulated_io
This command displays information written to the simulated I/O display
buffer.
After you have enabled polling for simulated I/O during the emulation
configuration process, six simulated I/O addresses can be defined. You then
define files used for standard input, standard output, and standard error.
For details about setting up simulated I/O, refer to the Simulated I/O User’s
Guide.
Examples
display simulated_io
See Also
The modify configuration and modify keyboard_to_simio commands.
373
Emulator/Analyzer Interface Commands
display software_breakpoints
display software_breakpoints
--EXPR--
offset_by
Examples
This command displays the currently defined software breakpoints and their
status.
If the emulation session is continued from a previous session, the listing will
include any previously defined breakpoints. The column marked "status"
shows whether the breakpoint is pending, inactivated, or unknown.
A pending breakpoint causes the processor to enter the emulation monitor
upon execution of that breakpoint. Executed breakpoints are listed as
inactivated. Entries that show an inactive status can be reactivated by
executing the modify software_breakpoints set command.
A label column also may be displayed for addresses that correspond to a
symbol. See the set command for details.
The parameters are as follows:
An expression is a combination of numeric values, symbols, operators, and
parentheses, specifying an offset value for the breakpoint address. See the
--EXPR-- syntax diagram.
This option allows you to offset the listed software breakpoint address value
from the actual address of the breakpoint. By subtracting the offset value
from the breakpoint address, the system can cause the listed address to
match that given in the assembler or compiler listing.
display software_breakpoints
display software_breakpoints offset_by 1000H
See Also
The copy software_breakpoints, modify software_breakpoints, and
set commands.
374
Emulator/Analyzer Interface Commands
display trace
display trace
This command displays the contents of the trace buffer.
Captured information can be presented as absolute hexadecimal values or in
mnemonic form. The processor status values captured by the analyzer can be
listed mnemonically or in hexadecimal or binary form.
375
Emulator/Analyzer Interface Commands
display trace
Addresses captured by the analyzer are physical addresses.
The offset_by option subtracts the specified offset from the addresses of the
executed instructions before listing the trace. With an appropriate entry for
offset, each instruction in the listed trace will appear as it does in the
assembled or compiled program listing.
The count parameter lists the time associated with a trace event either
relative to the previous event in the trace list or as an absolute count
measured from the trigger event.
The source parameter allows display of source program lines in the trace
listing, enabling you to quickly correlate the trace list with your source
program.
Initial values are the same as specified by the command:
display trace mnemonic count relative offset_by 0
absolute
count
absolute
relative
depth
<DEPTH#>
dequeue
disassemble
_from_line
_number
The parameters are as follows:
Lists trace information in hexadecimal format, rather than mnemonic
opcodes.
This lists the time count for each event of the trace as the total time
measured from the trigger event.
This lists the time count for each event of the trace as the time measured
relative to the previous event.
This defines the number of states to be uploaded by the interface.
Note that after you have changed the trace depth, execute the command wait
measurement_complete before displaying the trace. Otherwise the new trace
states will not be available.
Displays the trace list with or without dequeuing. A dequeued trace list is
available through the disassembly options. In a dequeued trace list, unused
instruction prefetch cycles are discarded, and operand cycles are placed
immediately following the corresponding instruction fetch. If you choose a
non-dequeued trace list, instruction and operand fetches are shown exactly
as captured by the analyzer.
Displays the trace at a certain line number and disassembles instruction
opcodes.
376
Emulator/Analyzer Interface Commands
display trace
--EXPR--
external
binary
<external
_label>
hex
off
then
<LINE#>
mnemonic
offset_by
An expression is a combination of numeric values, symbols, operators, and
parentheses, specifying an offset value to be subtracted from the addresses
traced by the emulation analyzer. See the EXPR syntax diagram.
Displays the external analyzer trace list in binary format.
This option displays a defined external analyzer label.
Displays the external analyzer trace list in hexadecimal format.
Use this option to turn off the external trace list display.
This allows you to display multiple external analysis labels. This option
appears when more than one external analyzer label is in use.
This prompts you for the trace list line number to be centered in the display.
Also, you can use <LINE#> with disassemble_from_line_number. <LINE#>
prompts you for the line number from which the inverse assembler attempts
to disassemble data in the trace list.
Lists trace information with opcodes in mnemonic format.
This option allows you to offset the listed address value from the address of
the instruction. By subtracting the offset value from the physical address of
the instruction, the system makes the listed address match that given in the
assembler or compiler listing.
This option is also useful for displaying symbols and source lines in
dynamically relocated programs.
Note that when using the set source only command, the analyzer may
operate more slowly than when using the set source on command. This is an
operating characteristic of the analyzer:
When you use the command set source on, and are executing only
assembly language code (not high-level language code), no source
lines are displayed. The trace list will then fill immediately with the
captured assembly language instructions.
When using set source only, no inverse assembled code is displayed.
Therefore, the emulation software will try to fill the display with
high-level source code. This requires the emulation software to search
for any captured analysis data generated by a high-level language
statement.
In conclusion, you should not set the trace list to set source only when
tracing assembly code. This will result in optimum analyzer performance.
377
Emulator/Analyzer Interface Commands
display trace
status
binary
hex
mnemonic
Lists absolute status information in binary form.
Lists absolute status information in hexadecimal form.
Lists absolute status information in mnemonic form.
Examples
display trace count absolute
display trace absolute status binary
display trace mnemonic
See Also
The copy trace, store trace, and set commands.
378
Emulator/Analyzer Interface Commands
end
end
locked
release_system
Examples
This command terminates the current emulation session.
You can end the emulation session and keep the emulator in a locked state.
The current emulation configuration is stored, so that you can continue the
emulation session on reentry to the emulator. You also can release the
emulation system when ending the session so that others may use the
emulator.
Note that pressing <CTRL>d performs the same operation as pressing end
<RETURN>. Pressing <CTRL>\ or <CTRL>| performs the same as end
release_system <RETURN>.
When the emulation session ends, control returns to the UNIX shell without
releasing the emulator.
The parameters are as follows:
This option allows you to stop all active instances of an emulator/analyzer
interface session in one or more windows and/or terminals. This option is not
available when operating the emulator in the measurement system.
This option stops all instances of the emulator/analyzer interface in one or
more windows or terminals. The emulation system is released for other
users. If you do not release the emulation system when ending, others
cannot access it.
end
end release_system
See Also
The "Exiting the Emulator/Analyzer Interface" section in the "Starting and
Exiting HP 64700 Interfaces" chapter.
379
Emulator/Analyzer Interface Commands
--EXPR--
--EXPR--
An expression is a combination of numeric values, symbols, operators, and
parentheses used to specify address, data, status, executed address, or any
other value used in the emulation commands.
The function of an expression (--EXPR--) is to let you define the address,
data, status, or executed address expression that fits your needs. You can
combine multiple values to define the expression.
Certain emulation commands will allow the option of <+EXPR> after pressing
a thru softkey. This allows you to enter a range without retyping the original
base address or symbol. For example, you could specify the address range
disp_buf thru disp_buf + 25
as
disp_buf thru +25
DON’T CARE
NUMBER
--NORMAL--
The parameters are as follows:
You can include "don’t care numbers" in expressions. These are indicated by
a number containing an "x." These numbers may be defined as binary, octal,
decimal, or hexadecimal. For example: 1fxxh, 17x7o, and 011xxx10b are
valid.
Note that "Don’t care numbers" are not valid for all commands.
This appears as a softkey label to enable you to return to the --EXPR-- key.
The --NORMAL-- label can be accessed whenever defining an expression, but
380
Emulator/Analyzer Interface Commands
--EXPR--
<NUMBER>
<OP>
is only valid when "C" appears on the status line, which indicates a valid
expression has been defined.
This can be an integer in any base (binary, octal, decimal, or hexadecimal), or
can be a string of characters enclosed with quotation marks.
This represents an algebraic or logical operand and may be any of the
following (in order of precedence):
mod
*
/
&
+
|
--SYMB--
end
start
<UNARY>
( )
modulo
multiplication
division
logical AND
addition
subtraction
logical OR
This allows you to define symbolic information for an address, range of
addresses, or a file. See the --SYMB-- syntax pages and the Symbolic
Retrieval Utilities User’s Guide for more information on symbols.
This displays the last location where the symbol information may be located.
For example, if a particular symbol is associated with a range of addresses,
end will represent the last address in that range.
This displays first memory location where the symbol you specify may be
located. For example, if a particular symbol is associated with a range of
addresses, start will represent the first address in that range.
This defines either the algebraic negation (minus) sign (-) or the logical
negation (NOT) sign (~).
Parentheses may be used in expressions to enclose numbers. For every
opening parenthesis, a closing parenthesis must exist.
Note that when "C" appears on the right side of the status line, a valid
expression exists. The --NORMAL-- key can be accessed at any time, but is
only valid when "C" is on the command line.
381
Emulator/Analyzer Interface Commands
--EXPR--
Note that when a thru softkey has been entered, a <+ EXPR> prompt
appears. This saves you from tedious repeated entry of long symbols and
expressions. For example:
disp_buf thru +25
is the same as
disp_buf thru disp_buf + 25
Examples
05fxh
0ffffh
disp_buf + 5
symb_tbl + (offset / 2)
start
mod_name: line 15 end
See Also
The SYMB syntax description.
382
Emulator/Analyzer Interface Commands
FCODE
FCODE
d
none
p
s
sd
sp
u
ud
up
The function code is used to define the address space being referenced.
Select the appropriate function code from those listed below.
Data space.
Causes the emulator to ignore the function code bits.
Program space.
Supervisor space.
Supervisor data space.
Supervisor program space.
User space.
User data space.
User program space.
Examples
To copy a portion of user data memory to a file:
copy memory fcode ud 1000H thru 1fffH to mymem
To modify a location in program memory:
modify memory fcode p 5000h long to 12345678h
383
Emulator/Analyzer Interface Commands
forward
forward
bms
<COMMAND>
debug
emul
perf
<UINAME>
Examples
This command lets you forward commands to other HP 64700 interfaces that
use the "emul700dmn" daemon process to coordinate actions between the
interfaces.
Sends messages to the Broadcast Message Server or BMS.
An ASCII string, enclosed in quotes, that is the command to be forwarded to
the named interface.
Forwards command to the high-level debugger interface.
Forwards command to the emulator/analyzer interface.
Forwards commands to the software performance analyzer interface.
Forwards commands to a user interface name other than those available on
the softkeys.
To send the "Program Run" command to the debugger:
forward debug "Program Run"
To send the "profile" command to the software performance analyzer:
forward debug "profile"
See Also
The User’s Guide for the interface to which you are forwarding commands.
384
Emulator/Analyzer Interface Commands
help
help
<HELP_FILE>
Examples
Displays information about system and emulation features during an
emulation session.
Typing help or ? displays softkey labels that list the options on which you
may receive help. When you select an option, the system will list the
information to the screen.
The help command is not displayed on the softkeys. You must enter it into
the keyboard. You may use a question mark in place of help to access the
help information.
The parameters are as follows:
This represents one of the available options on the softkey labels. You can
either press a softkey representing the help file, or type in the help file name.
If you are typing in the help file name, make sure you use the complete
syntax. Not all of the softkey labels reflect the complete file name.
help system_commands
? run
This is a summary of the commands that appear on the softkey labels when
you type help or press ?:
system_commands
run
trace
step
break
display
modify
load
store
copy
reset
385
Emulator/Analyzer Interface Commands
help
stop_trace
end
software_breakpoints
registers
expressions (--EXPR--)
symbols (--SYMB--)
specify
cmb
cmb_execute
map
set
wait
pod_command
bbaunload
coverage
performance_measurement_initialize
performance_measurement_run
performance_measurement_end
386
Emulator/Analyzer Interface Commands
load
load
configuration
This command transfers absolute files from the host computer into emulation
or target system RAM. With other parameters, the load command can load
emulator configuration files, trace records, trace specifications, or symbol
files.
The absolute file contains information about where the file is stored. The
memory map specifies that the locations of the file are in user (target
system) memory or emulation memory. This command also allows you to
access and display previously stored trace data, load a previously created
configuration file, and load absolute files with symbols.
Note that any file specified by <FILE> cannot be named "configuration",
"emul_mem", "user_mem", "symbols", "trace", or "trace_spec" because these
are reserved words, and are not recognized by the emulator/analyzer
interface as ordinary file names.
The absolute file is loaded into emulation memory by default.
The parameters are as follows:
This option specifies that a previously created emulation configuration file
will be loaded into the emulator. You can follow this option with a file name.
Otherwise the previously loaded configuration will be reloaded.
387
Emulator/Analyzer Interface Commands
load
emul_mem
FCODE
fg_mon
<FILE>
offset_by
<OFFSET>
noabort
nosymbols
noupdate
symbols
trace
trace_spec
user_mem
Examples
Loads only those portions of the absolute file that reside in memory ranges
mapped as emulation memory.
Specifies the address space where the file will be loaded.
Loads a foreground monitor.
This represents the absolute file to be loaded into either target system
memory, emulation memory (.X files are assumed), or the trace memory (.TR
files are assumed).
Specifies an offset value that is subtracted from the address before the
foreground monitor file is loaded.
This option allows you to load a file even if part of the file is located at
memory mapped as "guarded" or "target ROM" (trom).
This option causes the file specified to be loaded without symbols.
This option suppresses rebuilding of the symbol data base when you load an
absolute file. If you load an absolute file, end emulation, then modify the file
(and relink it), the symbol database will not be updated upon reentering
emulation and reloading the file. The default is to rebuild the database.
This option causes the file specified to be loaded with symbols.
This option allows you to load a previously generated trace file.
This option allows you to load a previously generated trace specification.
Note that the current trace specification will be modified, but a new trace will
not be started. To start a trace with the newly loaded trace specification,
enter trace again or specify trace again (not trace). If you specify trace, a
new trace will begin with the default trace specification, not the one you
loaded.
Loads only those portions of the absolute file that reside in memory ranges
mapped as target memory.
load sort1
load configuration config3
See Also
The display trace command.
388
Emulator/Analyzer Interface Commands
log_commands
log_commands
off
to
This command allows you to record commands that are executed during an
emulation session.
Commands executed during an emulation session are stored in a file until this
feature is turned off. This is a handy method for creating command files.
To execute the saved commands after the file is closed, type the filename on
the command line.
The parameters are as follows:
This represents the file where you want to store commands that are executed
during an emulation session.
If the named file is an existing file, this option causes the new commands to
overwrite any information present in the file. If this option is not specified,
new commands are appended to the existing contents of the file.
This option turns off the capability to log commands.
This allows you to specify a file for the logging of commands.
Examples
log_commands to logfile
<FILE>
noappend
log_commands off
See Also
The wait command.
389
Emulator/Analyzer Interface Commands
modify
modify
This command allows you to observe or change information specific to the
emulator.
The modify command is used to:
•
•
•
•
•
Modify contents of memory (as integers, strings, or real numbers).
Modify the contents of the processor registers.
View or edit the current emulation configuration.
Modify the simulated I/O keyboard settings.
Modify the SIM registers.
The following pages contain detailed information about the various modify
syntax diagrams.
390
Emulator/Analyzer Interface Commands
modify configuration
modify configuration
This command allows you to view and edit the current emulation
configuration items.
The configuration questions are presented in sequence with either the
default response, or the previously entered response. You can select the
currently displayed response by pressing <RETURN>. Otherwise, you can
modify the response as you desire, then press <RETURN>.
The default responses defined on powerup are displayed.
Examples
modify configuration
See Also
The load configuration command.
391
Emulator/Analyzer Interface Commands
modify keyboard_to_simio
modify keyboard_to_simio
This command allows the keyboard to interact with your program through
the simulated I/O software.
When the keyboard is activated for simulated I/O, its normal interaction with
emulation is disabled. The emulation softkeys are blank and the suspend
softkey is displayed on your screen. Pressing suspend <RETURN> will
deactivate keyboard simulated I/O and return the keyboard to normal
emulation mode. For details about setting up simulated I/O, refer to the
Simulated I/O User’s Guide.
See Also
The display simulated_io command.
392
Emulator/Analyzer Interface Commands
modify memory
modify memory
This command lets you modify the contents of selected memory locations.
You can modify the contents of individual memory locations to individual
values. Or, you can modify a range of memory to a single value or a sequence
of values.
Modify a series of memory locations by specifying the address of the first
location in the series to be modified, and the values to which the contents of
that location and successive locations are to be changed. The first value listed
will replace the contents of the first memory location. The second value
replaces the contents of the next memory location in the series, and so on,
until the list is exhausted. When more than one value is listed, the value
representations must be separated by commas. (See the examples for more
information.)
393
Emulator/Analyzer Interface Commands
modify memory
bytes
--EXPR-FCODE
long
real
<REAL#>
short
words
string
<STRING>
A range of memory can be modified such that the content of each location in
the range is changed to the single specified value, or to a single or repeated
sequence. This type of memory modification is done by entering the limits of
the memory range to be modified (--EXPR-- thru --EXPR--) and the value or
list of values (--EXPR--, ... , --EXPR--) to which the contents of all locations
in the range are to be changed.
Note that if the specified address range is not large enough to contain the
new data, only the specified addresses are modified.
If the address range contains an odd number of bytes and a word operation is
being executed, the last word of the address range will be modified. Thus the
memory modification will stop one byte after the end of the specified address
range.
If an error occurs in writing to memory (to guarded memory or target
memory with no monitor) the modification is aborted at the address where
the error occurred.
For integer memory modifications, the default is to the current display
memory mode, if one is in effect. Otherwise the default is to "byte."
For real memory modifications, the default is to the current display memory
mode, if one is in effect. Otherwise the default is "word."
The parameters are as follows:
Modify memory in byte values.
An expression is a combination of numeric values, symbols, operators, and
parentheses, specifying a memory address. See the EXPR syntax diagram.
The function code used to define the address space being referenced. See the
syntax diagram for FCODE to see a list of the function codes available and for
an explanation of those codes.
Modify memory values as 32-bit long word values or 64-bit real values when
preceded by real.
Modify memory as real number values.
This prompts you to enter a real number as the value.
Modify memory values as 32-bit real numbers.
Modify memory values as 16-bit values.
Modify memory values to the ASCII character string given by <STRING>.
Quoted ASCII string including special characters as follows:
null
newline
horizontal tab
394
\0
\n
\t
Emulator/Analyzer Interface Commands
modify memory
backspace
carriage return
form feed
backslash
single quote
bit pattern
thru
to
words
,
Examples
\b
\r
\f
\\
\’
\ooo (where ooo is an octal number)
This option lets you specify a range of memory locations to be modified.
This lets you specify values to which the selected memory locations will be
changed.
Modify memory locations as 32-bit values.
A comma is used as a delimiter between values when modifying multiple
memory addresses.
modify memory data1 bytes to 0E3H , 01H , 08H
modify memory data1 thru DATA100 to 0FFFFH
modify memory 0675H real to -1.303
modify memory temp real long to 0.5532E-8
modify memory buffer string to "Test \n\0"
See Also
The copy memory, display memory, and store memory commands.
395
Emulator/Analyzer Interface Commands
modify register
modify register
--EXPR--
<REGISTER>
to
This command allows you to modify the contents of the emulation processor
internal registers.
The entry you specify for <REGISTER> determines which register is
modified. Individual fields of control registers may be modified.
Register modification cannot be performed during real-time operation of the
emulation processor. A break command or condition must occur before you
can modify the registers.
The parameters are as follows:
An expression is a combination of numeric values, symbols, operators, and
parentheses, specifying a register value. For the floating-point registers, the
value is interpreted as a decimal real number. See the --EXPR-- description.
This represents the name of a register.
Allows you to specify the values to which the selected registers will be
changed.
Examples
modify register D2 to 41H
See Also
The copy registers, display registers, and modify registers commands.
396
Emulator/Analyzer Interface Commands
modify SIM registers
modify SIM registers
The 6833x SIM is configured through the registers in the SIM register class;
these registers control how the 6833x uses external signal lines to access
memory.
The emulator’s DE-SIM module is configured through the registers in the
EMSIM register class. The DE-SIM module controls how the emulator
interprets the signals from the 6833x when accessing emulation memory and
passing information to the analysis trace.
Normally, the SIM and EMSIM registers should be programmed with the same
values so they will be working together.
One of the primary functions of the DE-SIM is to provide A23-A19 to the
memory mapper and analyzer so they will have the complete 24-bit address
bus. This is easy if Port C of the 6833x is programmed as address lines;
however, if any of these lines are programmed as chip selects, the
corresponding address lines are not available external to the 6833x. The chip
selects, however, have access to the full 24-bit address inside the 6833x. You
can therefore locate memory using a chip select at an address that is not
possible to decode externally. If properly programmed, the DE-SIM can use
information in the programming of the chip selects to re-create the upper
address lines. This provides the ability to map emulation memory at these
addresses and also provides a correct address in the analysis trace so that
symbolic debugging is possible.
Normally, the DE-SIM would be programmed through the EMSIM registers to
match the programming of the 6833x SIM as it will exist after all of the
boot-up configuration is complete. This can be done before the boot-up code
is run. In fact, the programming of the EMSIM registers is part of the
configuration and will be loaded along with the memory map and other
configuration items when a configuration file is loaded.
The default programming of the DE-SIM matches the reset values of the
6833x SIM (refer to the Motorola MC6833x User’s Manual for specific
values).
397
Emulator/Analyzer Interface Commands
modify SIM registers
If desired, the programming of the DE-SIM can be transferred into the 6833x
SIM with the sync_sim_registers to_6833x_from_config command. This
happens automatically each time a break to the monitor from emulation reset
occurs. This ensures that the 6833x is prepared to properly access memory
when a program is downloaded to the emulator.
Alternatively, the emulator’s DE-SIM can be programmed from the 6833x SIM
with the sync_sim_registers from_6833x_to_config command. This is
useful if initialization code that configures the 6833x SIM exists, but you don’t
know what its values are. In this case, you can use the default configuration,
run from reset to execute the initialization code, and use the
sync_sim_registers from_6833x_to_config command to configure the
emulator to match the 6833x SIM.
At any time, you can verify if the SIM and DE-SIM are programmed the same
with the sync_sim_registers difference command. Any differences
between the two register sets will be listed.
It should be noted that the DE-SIM module is programmed solely from the
EMSIM register set and is therefore static with respect to the application
program. No attempt is made to update the programming of the DE-SIM by
tracking instructions that will program the 6833x SIM.
Examples
sync_sim_registers from_6833x_to_config
sync_sim_registers to_6833x_from_config
sync_sim_registers default_emsim
See Also
The sync_sim_registers command and the "Concepts" chapter.
398
Emulator/Analyzer Interface Commands
performance_measurement_end
performance_measurement_end
This command stores data previously generated by the
performance_measurement_run command, in a file named "perf.out" in
the current working directory.
The file named "perf.out" is overwritten each time this command is executed.
Current measurement data existing in the emulation system is not altered by
this command.
Examples
performance_measurement_end
See Also
The performance_measurement_initialize and
performance_measurement_run commands.
Refer to the "Making Software Performance Measurements" chapter for
examples of performance measurement specification and use.
399
Emulator/Analyzer Interface Commands
performance_measurement_initialize
performance_measurement_initialize
This command sets up performance measurements.
The emulation system will verify whether a symbolic database has been
loaded. If a symbolic database has been loaded, the performance
measurement is set up with the addresses of all global procedures and static
symbols. If a valid database has not been loaded, the system will default to a
predetermined set of addresses, which covers the entire emulation processor
address range.
The measurement will default to "activity" mode.
Default values will vary, depending on the type of operation selected, and
whether symbols have been loaded.
400
Emulator/Analyzer Interface Commands
performance_measurement_initialize
activity
duration
<FILE>
global_symbols
local_symbols_in
restore
--SYMB--
Examples
The parameters are as follows:
This option causes the performance measurement process to operate as
though an option is not specified.
This option sets the measurement mode to "duration." Time ranges will
default to a predetermined set (unless a user-defined file of time ranges is
specified).
This represents a file you specify to supply user-defined address or time
ranges to the emulator.
This option specifies that the performance measurement will be set up with
the addresses of all global symbols and procedures in the source program.
This causes addresses of the local symbols to be used as the default ranges
for the measurement.
This option restores old measurement data so that a measurement can be
continued when using the same trace command as previously used.
This represents the source file that contains the local symbols to be listed.
This also can be a program symbol name, in which case all symbols that are
local to a function or procedure are used. See the SYMB syntax diagram.
performance_measurement_initialize
performance_measurement_initialize duration
performance_measurement_initialize
local_symbols_in mod_name
See Also
The performance_measurement_run and
performance_measurement_end commands.
Refer to the "Making Software Performance Measurements" chapter for
examples of performance measurement specification and use.
401
Emulator/Analyzer Interface Commands
performance_measurement_run
performance_measurement_run
<COUNT>
This command begins a performance measurement.
This command causes the emulation system to reduce trace data contained
in the emulation analyzer, which will then be used for analysis by the
performance measurement software.
The default is to process data presently contained in the analyzer.
The parameters are as follows:
This represents the number of consecutive traces you specify. The emulation
system will execute the trace command, process the resulting data, and
combine it with existing data. This sequence will be repeated the number of
times specified by the COUNT option.
Note that the trace command must be set up correctly for the requested
measurement. For an activity measurement, you can use the default trace
command (trace).
For a duration measurement, you must set up the trace specification to store
only the points of interest. To do this, for example, you could enter:
trace only <symbol_entry> or <symbol_exit>
Examples
performance_measurement_run 10
performance_measurement_run
See Also
The performance_measurement_end and
performance_measurement_initialize commands.
Refer to the "Making Software Performance Measurements" chapter for
examples of performance measurement specification and use.
402
Emulator/Analyzer Interface Commands
pod_command
pod_command
Allows you to control the emulator through the direct HP 64700 Terminal
Interface.
The HP 64700 Card Cage contains a low-level Terminal Interface, which
allows you to control the emulator’s functions directly. You can access this
interface using pod_command. The options to pod_command allow you
to supply only one command at a time. Or, you can select a keyboard mode
which gives you interactive access to the Terminal Interface.
There are certain commands that you should avoid while using the Terminal
Interface through pod_command.
stty, po, xp
Do not use. These commands will change the operation of
the communications channel, and are likely to hang the
Softkey Interface and the channel.
echo, mac
Using these may confuse the communications protocols in
use on the channel.
wait
Do not use. The pod will enter a wait state, blocking access
by the emulator/analyzer interface.
init, pv
These will reset the emulator pod and force an end
release_system command.
t
Do not use. The trace status polling and unload will become
confused.
To see the results of a particular pod_command (the information returned
by the emulator pod), you use display pod_command.
Refer to the 6833x Emulator User’s Guide for the Terminal Interface for
information on using the Terminal Interface to control the emulator.
403
Emulator/Analyzer Interface Commands
pod_command
keyboard
<POD_CMD>
suspend
Examples
The parameters are as follows:
Enters an interactive mode where you can simply type Terminal Interface
commands (unquoted) on the command line. Use display pod_command to
see the results returned from the emulator.
Prompts you for a Terminal Interface command as a quoted string. Enter the
command in quotes and press <RETURN>.
This command is displayed once you have entered keyboard mode. Select it
to stop interactive access to the Terminal Interface and return to the
Graphical User Interface or Softkey Interface.
This example shows a simple interactive session with the Terminal Interface.
display pod_command
pod_command keyboard
cf
tsq
tcq
Click suspend to return to the Graphical User Interface or Softkey Interface.
See Also
The display pod_command command.
Also see the 6833x Emulator User’s Guide for the Terminal Interface and
the Terminal Interface on-line help information.
404
Emulator/Analyzer Interface Commands
QUALIFIER
QUALIFIER
or
RANGE
STATE
The QUALIFIER parameter is used with trace only, trace prestore, and
TRIGGER to specify states captured during the trace measurement.
You may specify a range of states (RANGE) or specific states (STATE) to be
captured. You can continue to "or" states until the analyzer resources are
depleted. You can use only one RANGE statement in the entire trace
command.
You can include "don’t care numbers." These contain an "x" preceded and/or
followed by a number. Some examples include 1fxxh, 17x7o, and 011xxx10b.
"Don’t care numbers" may be entered in binary, octal, or hexadecimal base.
The default is to qualify on all states.
The parameters are as follows:
This option allows you to specify multiple states (STATE) to be captured
during a trace measurement. See the STATE syntax diagram.
This allows you to specify a range of states to be captured during a trace
measurement. See the RANGE syntax diagram.
This represents a unique state that can be a combination of address, data,
status, and executed address values. See the STATE syntax diagram.
405
Emulator/Analyzer Interface Commands
QUALIFIER
Examples
trace only address mod_name:read_input
trace only address range mod_name:read_input thru
output
trace only address range mod_name:clear thru
read_input
See Also
The trace command.
406
Emulator/Analyzer Interface Commands
RANGE
RANGE
address
data
--EXPR--
<external_label>
not
The RANGE parameter allows you to specify a condition for the trace
measurement, made up of one or more values.
The range option can be used for state qualifier labels. Range can only be
used once in a trace measurement.
Refer to the "Qualifying Trigger and Store Conditions" section in the "Using
the Emulation Analyzer" chapter for a list of the predefined values that can
be assigned to the status state qualifiers.
Expression types are "address" when none is chosen.
The parameters are as follows:
The value following this softkey is searched for on the lines that monitor the
emulation processor’s address bus.
The value following this softkey is searched for on the lines that monitor the
emulation processor’s data bus.
An expression is a combination of numeric values, symbols, operators, and
parentheses, specifying an address, data, status, or executed address value.
See the EXPR syntax diagram for details.
This represents a defined external analyzer label.
This specifies that the analyzer search for the logical "not" of the specified
range (this includes any addresses not in the specified range).
407
Emulator/Analyzer Interface Commands
RANGE
range
status
thru
This indicates a range of addresses to be specified (--EXPR-- thru --EXPR--).
The value following this softkey is searched for on the lines that monitor
other emulation processor signals.
This indicates that the following address expression is the upper address in a
range.
Examples
See the trace command examples.
See Also
The trace command and the QUALIFIER syntax description.
408
Emulator/Analyzer Interface Commands
reset
reset
This command suspends target system operation and re-establishes initial
emulator operating parameters, such as reloading control registers.
The reset signal is latched when the reset command is executed and
released by either the run or break command.
See Also
The break and run commands.
409
Emulator/Analyzer Interface Commands
run
run
This command causes the emulator to execute a program.
If the processor is in a reset state, run will cause the reset to be released.
If the emulator is configured to run directly into user code out of reset, the
monitor will not be entered and part of your debug environment may be
temporarily disabled. A subsequent break into the monitor will restore it. See
the "Enter monitor from reset?" question in the configuration menu for more
information.
If the from parameter and an address are specified, the processor will start
running your program at that address. Otherwise, the run will occur from the
address currently stored in the processor’s program counter.
A run from reset command will reset the processor and then allow it to run.
It is equivalent to entering a reset command followed by a run command.
If the emulator is configured to participate in the READY signal on the CMB,
then this emulator will release the READY signal so that it will go TRUE if all
other HP 64700 emulators participating on that signal are also ready. See the
cmb_execute command description.
Qualifying a run command with an until parameter causes a software
breakpoint to be set before the program is run.
If you omit the address option (--EXPR--), the emulator begins program
execution at the current address specified by the emulation processor
program counter. If an absolute file containing a transfer address has just
been loaded, execution starts at that address.
410
Emulator/Analyzer Interface Commands
run
address
--EXPR-FCODE
from
reset
transfer_address
until
Examples
The parameters are as follows:
Specifies an address for a temporary register breakpoint that will be
programmed into one of the processor’s two breakpoint registers. Up to two
addresses may be specified.
An expression is a combination of numeric values, symbols, operators, and
parentheses, specifying a memory address. See the EXPR syntax diagram.
The function code used to define the address space being referenced. See the
syntax diagram for FCODE to see a list of the function codes available and for
an explanation of those codes.
This specifies the address from which program execution is to begin.
This option resets the processor prior to running.
This represents the starting address of the program loaded into emulation or
target memory. The transfer address is defined in the linker map and is part
of the symbol database associated with the absolute file.
Causes a software breakpoint to be set at the specified address before the
program is run.
run
run from 810H
run from COLD_START
run from transfer_address until 910H
See Also
The step command.
411
Emulator/Analyzer Interface Commands
SEQUENCING
SEQUENCING
find_sequence
QUALIFIER
Lets you specify complex branching activity that must be satisfied to trigger
the analyzer.
Sequencing provides you with parameters for the trace command that let
you define branching conditions for the analyzer trigger.
You are limited to a total of seven sequence terms, including the trigger, if no
windowing specification is given. If windowing is selected, you are limited to
a total of four sequence terms.
The analyzer default is no sequencing terms. If you select the sequencer
using the find_sequence parameter, you must specify at least one qualifying
sequence term.
The parameters are as follows:
Specifies that you want to use the analysis sequencer. You must enter at least
one qualifier.
Specifies the address, data, status, or executed address value or value range
that will satisfy this sequence term if looking for a sequence (find_sequence),
or will restart at the beginning of the sequence (restart). See the
QUALIFIER syntax pages for further information.
412
Emulator/Analyzer Interface Commands
SEQUENCING
occurs
<#TIMES>
then
restart
Selects the number of times a particular qualifier must be found before the
analyzer proceeds to the next sequence term or the trigger term. This option
is not available when trace windowing is in use. See the WINDOW syntax
pages.
Prompts you for the number of times a qualifier must be found.
Allows you to add multiple sequence terms, each with its own qualifier and
occurrence count.
Selects global restart. If the analyzer finds the restart qualifier while
searching for a sequence term, the sequencer is reset and searching begins
for the first sequence term.
Examples
trace find_sequence Caller_3 then Write_Num
restart anly."anly.c": line 57 trigger after
Results+0c4h
See Also
The trace command and the QUALIFIER and WINDOW syntax descriptions.
413
Emulator/Analyzer Interface Commands
set
set
414
Emulator/Analyzer Interface Commands
set
Controls the display format for the data, memory, register, software
breakpoint, and trace displays.With the set command, you can adjust the
display format results for various measurements, making them easier to read
and interpret. Formatting of source lines, symbol display selection and
width, and update after measurement can be defined to your needs.
The display command uses the set command specifications to format
measurement results for the display window. Another option to the set
command, <ENV_VAR> = <VALUE>, allows you to set and export system
variables to the UNIX environment.
The default display format parameters are the same as those set by the
commands:
set update
set source off symbols off
You can return the display format to this state by entering:
set default
The parameters are as follows:
This option restores all the set options to their default settings.
Specifies the name of a UNIX environment variable to be set.
The equals sign is used to equate the <ENV_VAR> parameter to a particular
value represented by <VALUE>.
default
<ENV_VAR>
=
inverse video
off
on
This displays source lines in normal video.
This highlights the source lines on the screen (dark characters on light
background) to differentiate the source lines from other data on the screen.
415
Emulator/Analyzer Interface Commands
set
langinfo
In certain languages, you may have symbols with the same names but
different types. For example, in IEEE695, you may have a file named main.c
and a procedure named main. SRU would identify these as main(module)
and main(procedure). The command display local_symbols_in main would
cause an error message to appear (Ambiguous symbol: main(procedure,
module)). Users of C tend to think the procedure is important and users of
ADA tend to think the module is important. By entering "langinfo" and "C",
SRU will interpret the above command to be main(procedure). With langinfo
ADA, SRU will interpret the above command to be main(module).
C
Identifies ANSI C as the language so SRU can use the C hierarchy to
disambiguate symbols.
ADA
Identifies ADA as the language so SRU can use the ADA hierarchy to
disambiguate symbols.
C_IEE695
Identifies C_IEEE-695 as the language so SRU can use the C_IEEE-695
hierarchy to disambiguate symbols.
An alternate method for making the langinfo specification is to use the
environment variable, HP64SYMORDER. By making the following entry in your
.profile, the langinfo setting will always be C, for example.
$ HP64SYMORDER=C
# I want to use the C disambiguating
# hierarchy
$ export HP64SYMORDER
# let children processes know
# about it
memory
noupdate
number_of_
source_lines
Sets update option for memory displays only.
When using multiple windows or terminals, and specifying this option, the
display buffer in that window or terminal will not update when a new
measurement completes. Displays showing memory contents are not
updated when a command executes that could have caused the values in
memory to change (modify memory, load, etc.).
This allows you to specify the number of source lines displayed for the actual
processor instructions with which they correlate. Only source lines up to the
previous actual source line will be displayed. Using this option, you can
specify how many comment lines are displayed preceding the actual source
line. The default value is 5.
416
Emulator/Analyzer Interface Commands
set
<NUMSRC>
This prompts you for the number of source lines to be displayed. Values in
the range 1 through 50 may be entered.
source
memory
off
on
only
This displays source lines of memory.
This option prevents inclusion of source lines in the trace and memory
mnemonic display lists.
This option displays source program lines preceding actual processor
instructions with which they correlate. This enables you to correlate
processor instructions with your source program code. The option works for
both the trace list and memory mnemonic displays.
This option displays only source lines. Processor instructions are only
displayed in memory mnemonic if no source lines correspond to the
instructions. Processor instructions are never displayed in the trace list.
symbols
off
on
high
This displays symbols. This option works for the trace list, memory, software
breakpoints, and register step mnemonics.
Displays only high level symbols, such as those available from a compiler.
See the Symbolic Retrieval Utilities User’s Guide for a detailed discussion
of symbols.
low
Displays only low level symbols, such as those generated internally by a
compiler, or an assembly symbol.
all
Displays all symbols.
tabs_are
<TABS>
trace
update
This prevents symbol display.
This option allows you to define the number of spaces inserted for tab
characters in the source listing.
Prompts you for the number of spaces to use in replacing the tab character.
Values in the range of 2 through 15 may be entered.
Sets update option for trace displays only.
When using multiple windows or terminals, and specifying this option, the
display buffer in that window or terminal will be updated when a new
measurement completes. This is the default. Note that for displays that
show memory contents, the values will be updated when a command
executes that changes memory contents (such as modify memory, load, and
so on).
417
Emulator/Analyzer Interface Commands
set
<VALUE>
Specifies the logical value to which a particular UNIX environment variable is
to be set.
width
source
This allows you to specify the width (in columns) of the source lines in the
memory mnemonic display. To adjust the width of the source lines in the
trace display, increase the widths of the label and/or mnemonic fields.
label
This lets you specify the address width (in columns) of the address field in
the trace list or label (symbols) field in any of the other displays.
mnemonic
<WIDTH>
Examples
This lets you specify the width (in columns) of the mnemonic field in
memory mnemonics, trace list and register step mnemonics displays. It also
changes the width of the status field in the trace list.
This prompts you for the column width of the source, label, mnemonic, or
symbols field.
Note that <CTRL>f and <CTRL>g may be used to shift the display left or
right to display information which is off the screen.
set source on inverse_video on tabs_are 2
set symbols on width label 30 mnemonic 20
set PRINTER = "lp -s"
set HP64KSYMBPATH=".file1:proc1
.file2:proc2:code_block_1"
See Also
The display data, display memory, display software_breakpoints,
and display trace commands.
418
Emulator/Analyzer Interface Commands
specify
specify
disable
This command prepares a command for execution, and is used with the
cmb_execute command.
When you precede a run or trace command with specify, the system does
not execute your command immediately. Instead, it waits until until an
EXECUTE signal is received from the Coordinated Measurement Bus or until
you enter a cmb_execute command.
If the processor is reset and no address is specified, a cmb_execute
command will run the processor from the "reset" condition.
Note that the run specification is active until you enter specify run disable.
The trace specification is active until you enter another trace command
without the specify prefix.
The emulator will run from the current program counter address if no
address is specified in the command.
The parameters are as follows:
This option turns off the specify condition of the run process.
419
Emulator/Analyzer Interface Commands
specify
from
--EXPR--
FCODE
transfer_address
run
TRACE
until
Examples
This is used with the specify run from command. An expression is a
combination of numeric values, symbols, operators, and parentheses,
specifying a memory address. See the EXPR syntax diagram.
The function code used to define the address space being referenced. See the
syntax diagram for FCODE to see a list of the function codes available and for
an explanation of those codes.
This is used with the specify run from command, and represents the address
from which the program will begin running.
This option specifies that the emulator will run from either an expression or
from the transfer address when a CMB EXECUTE signal is received.
This option specifies that a trace measurement will be taken when a CMB
EXECUTE signal is received.
Specifies an address where program execution is to stop. The emulator will
set a software breakpoint at this address and stop execution of your program
when it reaches this address and enter the monitor.
specify run from START
specify trace after address 1234H
See Also
The cmb_execute command.
420
Emulator/Analyzer Interface Commands
STATE
STATE
This parameter lets you specify a trigger condition as a unique combination
of address, data, status, and executed address values.
The STATE option is part of the QUALIFIER parameter to the trace
command, and allows you to specify a condition for the trace measurement.
Refer to the "Qualifying Trigger and Store Conditions" section in the "Using
the Emulation Analyzer" chapter for a list of the predefined values that can
be assigned to the status state qualifiers.
The default STATE expression type is address.
421
Emulator/Analyzer Interface Commands
STATE
address
and
data
--EXPR--
<external_label>
not
status
<STATUS>
Examples
The parameters are as follows:
This specifies that the expression following is an address value. This is the
default, and is therefore not required on the command line when specifying
an address expression.
This lets you specify a combination of status and expression values when
status is specified in the state specification.
The value following this softkey is searched for on the lines that monitor the
emulation processor’s data bus.
An expression is a combination of numeric values, symbols, operators, and
parentheses, specifying an address, data, status, or executed address value.
See the EXPR syntax diagram.
This represents a defined external analyzer label.
This specifies that the analyzer will search for the logical "not" of a specified
state (this includes any address that is not in the specified state).
The value following this softkey is searched for on the lines that monitor
other emulation processor signals.
This prompts you to enter a status value in the command line. Status values
can be entered from softkeys or typed into the keyboard. Numeric values
may be entered using symbols, operators, and parentheses to specify a status
value. See the EXPR syntax diagram.
trace before status write
trace about address 1000H status write
See Also
The trace command and the QUALIFIER syntax description, and the trace
command examples.
422
Emulator/Analyzer Interface Commands
step
step
The step command allows sequential analysis of program instructions by
causing the emulation processor to execute a specified number of assembly
instructions or source lines.
You can display the contents of the processor registers, trace memory, and
emulation or target memory after each step command.
Source line stepping is implemented by single stepping assembly instructions
until the next PC is beyond the address range of the current source line.
When attempting source line stepping on assembly code (with no associated
source line), stepping will complete when a source line is found. Therefore,
stepping only assembly code may step forever. To abort stepping, press
<CTRL>c.
When displaying memory mnemonic and stepping, the next instruction that
will step is highlighted. The memory mnemonic display autopages to the new
address if the next PC goes outside of the currently displayed address range.
This feature works even if stepping is performed in a different emulation
window than one displaying memory mnemonic.
If no value is entered for <NUMBER> times, only one step instruction is
executed each time you press <RETURN>. Multiple instructions can be
executed by holding down the <RETURN> key. Also, the default step is for
assembly code lines, not source code lines.
423
Emulator/Analyzer Interface Commands
step
source
If the from address option (defined by --EXPR-- or transfer_address) is
omitted, stepping begins at the next program counter address.
The parameters are as follows:
An expression is a combination of numeric values, symbols, operators, and
parentheses specifying a memory address. See the EXPR syntax diagram.
The function code used to define the address space being referenced. See the
syntax diagram for FCODE to see a list of the function codes available and for
an explanation of those codes.
Use this option to specify the address from which program stepping begins.
This defines the number of instructions that will be executed by the step
command. The number of instructions to be executed can be entered in
binary (B), octal (O or Q), decimal (D), or hexadecimal (H) notation.
When you specify a number of steps, this option updates the register step
mnemonic only after stepping is complete. This will speed up stepping of
many instructions. The default is to update the register step mnemonic after
each assembly instruction (or source line) executes (if stepping is performed
in the same window as the register display).
This represents the starting address of the program you loaded into
emulation or target memory. The transfer_address is defined in the linker
map.
This option performs stepping on source lines.
Examples
step
--EXPR-FCODE
from
<NUMBER>
silently
transfer_address
step from 810H
step 5 source
step 20 silently
step 4 from main
See Also
The display registers, display memory mnemonic, and set symbols
commands.
424
Emulator/Analyzer Interface Commands
stop_trace
stop_trace
This command terminates the current trace and stops execution of the
current measurement.
The analyzer stops searching for trigger and trace states. If trace memory is
empty (no states acquired), nothing will be displayed.
See Also
The trace command.
425
Emulator/Analyzer Interface Commands
store
store
--EXPR-FCODE
<FILE>
memory
This command lets you save the contents of specific memory locations in an
absolute file. You also can save trace memory contents in a trace file.
The store command creates a new file with the name you specify, if there is
not already an absolute file with the same name. If a file represented by
<FILE> already exists, you must decide whether to keep or delete the old
file. If you respond with yes to the prompt, the new file replaces the old one.
If you respond with no, the store command is canceled and no data is stored.
The transfer address of the absolute file is set to zero.
The parameters are as follows:
This is a combination of numeric values, symbols, operators, and
parentheses, specifying a memory address. See the EXPR syntax diagram.
The function code used to define the address space being referenced. See the
syntax diagram for FCODE to see a list of the function codes available and for
an explanation of those codes.
This represents a file name you specify for the absolute file identifier or trace
file where data is to be stored. If you want to name a file beginning with a
number, you must precede the file name with a backslash (\) so the system
will recognize it as a file name.
This causes selected memory locations to be stored in the specified HP64000
format file with a .X extension.
426
Emulator/Analyzer Interface Commands
store
thru
to
,
This allows you to specify that ranges of memory be stored.
Use this in the store memory command to separate memory locations from
the file identifier.
This option causes the current trace data to be stored in the specified file
with a .TR extension.
This option stores the current trace specification in the specified file with a
.TS extension.
A comma separates memory expressions in the command line.
Examples
store memory 800H thru 20FFH to TEMP2
trace
trace_spec
store memory EXEC thru DONE to \12.10
store trace TRACE
store trace_spec TRACE
See Also
The display memory, display trace, and load commands.
427
Emulator/Analyzer Interface Commands
--SYMB--
--SYMB--
428
Emulator/Analyzer Interface Commands
--SYMB--
This parameter is a symbolic reference to an address, address range, file, or
other value.
Note that if no default file was defined by executing the command display
local_symbols_in --SYMB--, or with the cws command, a source file name
(<FILE>) must be specified with each local symbol in a command line.
Symbols may be:
• Combinations of paths, filenames, and identifiers defining a scope, or
referencing a particular identifier or location (including procedure entry
and exit points).
• Combinations of paths, filenames, and line numbers referencing a
particular source line.
• Combinations of paths, filenames, and segment identifiers identifying a
particular PROG, DATA or COMN segment or a user-defined segment.
The Symbolic Retrieval Utilities (SRU) handle symbol scoping and
referencing. These utilities build trees to identify unique symbol scopes.
If you use the SRU utilities to build a symbol database before entering the
emulation environment, the measurements involving a particular symbol
request will occur immediately. If you then change a module and re-enter
the emulation environment without rebuilding the symbol database, the
emulation software rebuilds the changed portions of the database in
increments as necessary.
Further information regarding the SRU and symbol handling is available in
the Symbolic Retrieval Utilities User’s Guide. Also refer to that manual for
information on the HP64KSYMBPATH environment variable.
The last symbol specified in a display local_symbols_in --SYMB-command, or with the cws command, is the default symbol scope. The
default is "none" if no current working symbol was set in the current
emulation session.
You also can specify the current working symbol by typing the cws command
on the command line and following it with a symbol name. The pws
command displays the current working symbol on the status line.
Display memory mnemonic also can modify the current working symbol.
429
Emulator/Analyzer Interface Commands
--SYMB--
<FILENAME>
line
<LINE#>
<IDENTIFIER>
SCOPE
segment
<SEG_NAME>
(<TYPE>)
filename
module
procedure
static
task
:
The parameters are as follows:
This is an UNIX path specifying a source file. If no file is specified, and the
identifier referenced is not a global symbol in the executable file that was
loaded, then the default file is assumed (the last absolute file specified by a
display local_symbols_in command). A default file is only assumed when
other parameters (such as line) in the --SYMB-- specification expect a file.
This specifies that the following numeric value references a line number in
the specified source file.
Prompts you for the line number of the source file.
Identifier is the name of an identifier as declared in the source file.
Scope is the name of the portion of the program where the specified
identifier is defined or active (such as a procedure block).
This indicates that the following string specifies a standard segment (such as
PROG, DATA, or COMN) or a user-defined segment in the source file.
Prompts you for entry of the segment name.
When two identifier names are identical and have the same scope, you can
distinguish between them by entering the type (in parentheses). Do not type
a space between the identifier name and the type specification. The type will
be one of the following:
Specifies that the identifier is a source file.
These refer to module symbols. For Ada, they are packages. Other language
systems may allow user-defined module names.
Any procedure or function symbol. For languages that allow a change of
scope without explicit naming, SRU assigns an identifier and tags it with type
procedure.
Static symbols, which includes global variables. The logical address of these
symbols will not change.
Task symbols, which are specifically defined by the processor and language
system in use.
A colon is used to specify the UNIX file path from the line, segment, or
symbol specifier. When following the file name with a line or segment
selection, there must be a space after the colon. For a symbol, there must not
be a space after the colon.
430
Emulator/Analyzer Interface Commands
--SYMB--
Examples
The following short C code example should help illustrate how symbols are
maintained by SRU and referenced in your emulation commands.
File /users/dave/control.c:
int *port_one;
main () {
int port_value;
port_ptr = port_one;
port_value = 10;
process_port (port_ptr, port_value);
} /* end main */
File /system/project1/porthand.c:
#include "utils.c"
void process_port (int *port_num, int port_data) {
static int i;
static int i2;
for (i = 0; i <= 64; i++) {
i2 = i * 2;
*port_num = port_data + i2;
delay();
{
static int i;
i = 3;
port_data = port_data + i;
}
}
} /* end of process_port */
File /system/project1/utils.c:
delay() {
int i,j;
int waste_time;
for (i = 0; i <= 256000; i++)
for (j = 0; j <= 256000; j++)
waste_time = 0;
} /* end delay */
431
Emulator/Analyzer Interface Commands
--SYMB--
The symbol tree as built by SRU might appear as follows, depending on the
object module format and compiler used:
Note that SRU does not build tree nodes for variables that are dynamically
allocated on the stack at run-time, such as i and j within the delay ()
procedure. SRU has no way of knowing where these variables will be at run
432
Emulator/Analyzer Interface Commands
--SYMB--
time and therefore cannot build a corresponding symbol tree entry with run
time address.
Here are some examples of referencing different symbols in the above
programs:
control.c:main
control.c:port_one
porthand.c:utils.c:delay
The last example above only works with IEEE-695 object module format; the
HP object module format does not support referencing of include files that
generate program code.
porthand.c:process_port.i
porthand.c:process_port.BLOCK_1.i
Notice how you can reference different variables with matching identifiers by
specifying the complete scope. You also can save typing by specifying a scope
with cws. For example, if you are making many measurements involving
symbols in the file porthand.c, you could specify:
cws porthand.c:process_port
Then:
i
BLOCK_1.i
are prefixed with porthand.c: process_port before the database lookup.
433
Emulator/Analyzer Interface Commands
--SYMB--
If a symbol search with the current working symbol prefix is unsuccessful,
the last scope on the current working symbol is stripped. The symbol you
specified is then retested with the modified current working symbol. Note
that this does not change the actual current working symbol.
For example, if you set the current working symbol as
cws porthand.c:process_port.BLOCK_1
and made a reference to symbol i2, the retrieval utilities attempt to find a
symbol called
porthand.c:process_port.BLOCK_1.i2
which would not be found. The symbol utilities would then strip BLOCK_1
from the current working symbol, yielding
porthand.c:process_port.i2
which is a valid symbol.
You also can specify the symbol type if conflicts arise. Although not shown in
the tree, assume that a procedure called port_one is also defined in control.c.
This would conflict with the identifier port_one which declares an integer
pointer. SRU can resolve the difference. You must specify:
control.c:port_one(static)
to reference the variable, and
control.c:port_one(procedure)
to reference the procedure address.
See Also
The copy local_symbols_in and display local_symbols_in commands.
Also refer to the Symbolic Retrieval Utilities User’s Guide for further
information on symbols.
434
Emulator/Analyzer Interface Commands
sync_sim_registers
sync_sim_registers
from_6833x
_to_config
to_6833x
_from_config
difference
See Also
This command synchronizes the 6833x’s system integration module (SIM)
registers to the emulator’s EMSIM registers.
The parameters are as follows:
Copies the microprocessor’s SIM registers into the emulator’s EMSIM
registers.
Copies the emulator’s EMSIM registers into the microprocessor’s SIM
registers.
Displays the differences between the microprocessor’s SIM registers and the
emulator’s EMSIM registers.
The modify register commands and the "Concepts" chapter.
435
Emulator/Analyzer Interface Commands
trace
trace
This command allows you to trace program execution using the emulation
analyzer.
Note that the options shown can be executed once for each trace command.
Refer to the TRIGGER and QUALIFIER diagrams for details on setting up a
trace.
You can perform analysis tasks either by starting a program run and then
specifying the trace parameters, or by specifying the trace parameters first
and then initiating the program run. Once a trace begins, the analyzer
monitors the system busses of the emulation processor to detect the states
specified in the trace command.
When the trace specification is satisfied and trace memory is filled, a message
will appear on the status line indicating the trace is complete. You can then
436
Emulator/Analyzer Interface Commands
trace
again
anything
arm_trig2
break_on_trigger
modify_command
on_halt
only
prestore
QUALIFIER
use display trace to display the contents of the trace memory. If a previous
trace list is on screen, the current trace automatically updates the display. If
the trace memory contents exceed the page size of the display, the <NEXT>,
<PREV>, <Up arrow>, or <Down arrow> keys may be used to display all the
trace memory contents. You also can press <CTRL>f and <CTRL>g to move
the display left and right.
You can set up trigger and storage qualifications using the specify trace
command. The analyzers will begin tracing when a cmb_execute command
executes, which causes an EXECUTE signal on the Coordinated
Measurement Bus.
The analyzer will trace any state by default.
The parameters are as follows:
This option repeats the previous trace measurement. It also begins a trace
measurement with a newly loaded trace specification. (Using trace without
the again parameter will start a trace with the default specification rather
than the loaded specification.)
This causes the analyzer to capture any type of information.
This option allows you to specify the external trigger as a trace qualifier, for
coordinating measurements between multiple HP 64700s, or an HP 64700
and another instrument.
Before arm_trig2 can appear as an option, you must modify the emulation
configuration interactive measurement specification. When doing this, you
must specify that either BNC or CMBT drive trig2, and that the analyzer
receive trig2. See the chapter on "Making Coordinated Measurements" for
more information.
This stops target system program execution when the trigger is found. The
emulator begins execution in the emulation monitor. When using this option,
the on_halt option cannot be included in the command.
This recalls the last trace command that was executed.
When using this option, the analyzer will continue to capture states until the
emulation processor halts or until a stop_trace command is executed. When
this option is used, the break_on_trigger, repetitively, and TRIGGER options
cannot be included in the command.
This option allows you to qualify the states that are stored, as defined by
QUALIFIER.
This option instructs the analyzer to save specific states that occur prior to
states that are stored (as specified with the "only" option).
This determines which of the traced states will be stored or prestored in the
trace memory for display upon completion of the trace. Events can be
437
Emulator/Analyzer Interface Commands
trace
repetitively
SEQUENCING
TRIGGER
WINDOW
Examples
selectively saved by using trace only to enter the specific events to be saved.
When this is used, only the indicated states are stored in the trace memory.
See the QUALIFIER syntax.
This initiates a new trace after the results of the previous trace are displayed.
The trace will continue until a stop_trace or a new trace command is issued.
When using this option, you cannot use the on_halt option.
Allows you to specify up to seven sequence terms including the trigger. The
analyzer must find each of these terms in the given order before searching for
the trigger. You are limited to four sequence terms if windowing is enabled.
See the SEQUENCING syntax pages for more details.
This represents the event on the emulation bus to be used as the starting,
ending, or centering event for the trace. See the TRIGGER syntax diagram.
When using this option, you cannot include the on_halt option.
Selectively enables and disables analyzer operation based upon independent
enable and disable terms. This can be used as a simple storage qualifier. Or,
you may use it to further qualify complex trigger specifications. See the
WINDOW syntax pages for details.
trace after 1000H
trace only address range 1000H thru 1004H
trace after address 1000H occurs 2 only address
range 1000H thru 1004H break_on_trigger
See Also
The copy trace, display trace, load trace, load trace_spec, specify
trace, store trace, and store trace_spec commands.
438
Emulator/Analyzer Interface Commands
TRIGGER
TRIGGER
about
after
before
occurs
QUALIFIER
<#TIMES>
This parameter lets you define where the analyzer will begin tracing program
information during a trace measurement.
A trigger is a QUALIFIER. When you include the occurs option, you can
specify the trigger to be a specific number of occurrences of a QUALIFIER
(see the QUALIFIER syntax diagram).
The default is to trace after any state occurs once.
The parameters are as follows:
This option captures trace data leading to and following the trigger qualifier.
The trigger is centered in the trace listing.
Trace data is acquired after the trigger qualifier is found.
Trace data is acquired prior to the trigger qualifier.
This specifies a number of qualifier occurrences of a range or state on which
the analyzer is to trigger.
This determines which of the traced states will be stored in trace memory.
This prompts you to enter a number of qualifier occurrences.
439
Emulator/Analyzer Interface Commands
TRIGGER
Examples
trace after MAIN
trace after 1000H then data 5
See Also
The trace command and examples.
Also, refer to the "Making Coordinated Measurements" chapter.
440
Emulator/Analyzer Interface Commands
wait
wait
measurement
_complete
or
seconds
<TIME>
This command allows you to present delays to the system.
The wait command can be an enhancement to a command file, or to normal
operation at the main emulation level. Delays allow the emulation system
and target processor time to reach a certain condition or state before
executing the next emulation command.
The wait command does not appear on the softkey labels. You must type the
wait command into the keyboard. After you type wait, the command
parameters will be accessible through the softkeys.
The system will pause until it receives a <CTRL>c signal.
Note that if set intr <CTRL>c was not executed on your system, <CTRL>c
normally defaults to the backspace key. See your UNIX system administrator
for more details regarding keyboard definitions.
The parameters are as follows:
This causes the system to pause until a pending measurement completes (a
trace data upload process completes), or until a <CTRL>c signal is received.
If a measurement is not in progress, the wait command will complete
immediately.
This causes the system to wait for a <CTRL>c signal or for a pending
measurement to complete. Whichever occurs first will satisfy the condition.
This causes the system to pause for a specific number of seconds.
This prompts you for the number of seconds to insert for the delay.
441
Emulator/Analyzer Interface Commands
wait
Note that a wait command in a command file will cause execution of the
command file to pause until a <CTRL>c signal is received, if <CTRL>c is
defined as the interrupt signal. Subsequent commands in the command file
will not execute while the command file is paused. You can verify whether
the interrupt signal is defined as <CTRL>c by typing set at the system
prompt.
Examples
wait
wait 5; wait measurement_complete
442
Emulator/Analyzer Interface Commands
WINDOW
WINDOW
disable
enable
QUALIFIER
Lets you select which states are stored by the analyzer.
WINDOW allows you to selectively toggle analyzer operation. When enabled,
the analyzer will recognize sequence terms, trigger terms, and will store
states. When disabled, the analyzer is effectively off, and only looks for a
particular enable term.
You specify windowing by selecting an enable qualifier term; the analyzer will
trigger or store all states after this term is satisfied. If the disable term
occurs after the analyzer is enabled, the analyzer will then stop storing states,
and will not recognize trigger or sequence terms. You may specify only one
enable term and one disable term.
The analyzer defaults to recognizing all states. If you specify enable, you
must supply a qualifier term. If you then specify disable, you must specify a
qualifier term.
The parameters are as follows:
Allows you to specify the term which will stop the analyzer from recognizing
states once the enable term has been found.
Allows you to specify the term which will enable the analyzer to begin
monitoring states.
Specifies the actual address, data, status value or range of values that cause
the analyzer to enable or disable recognition of states. Note that the enable
qualifier can be different from the disable qualifier. Refer to the QUALIFIER
syntax pages for further details on analyzer qualifier specification.
Examples
trace enable _rand disable 0ecch
See Also
The trace command and the SEQUENCING and QUALIFIER syntax
descriptions.
443
444
13
Error Messages
445
Error Messages
This chapter alphabetically lists and describes the error messages displayed
on the interface status line and in the error log. The error log records error
messages received during the emulation session. You may want to display the
error log to view the error messages. Sometimes several messages will be
displayed for a single error to help you locate a problem quickly. To prevent
overrun, the error log purges the oldest messages to make room for the new
ones.
To display the error log, enter:
display error_log
Error messages are listed alphabetically by the first letter of the first word of
the error messages. In the error log, some messages may be preceded by a
number. Messages in this chapter that have an error message number
associated with them have the number listed in parentheses following the
message. These are ordered alphabetically by the first letter of the first word.
%s (622)
Cause: Monitor specific message.
<CONFIGURATION FILENAME> does not exist
Cause: The configuration file you are trying to load does not exist.
Action: Try the load configuration command again using a valid configuration
file name.
<LOGICAL NAME>: End, continuing
Cause: This is a status message. The emulation session is being exited with
the end command. When you restart the emulation session later, it will
continue using the same settings as in the session you just ended. The
emulator logical name is located in the /usr/hp64000/etc/64700tab.net (or
64700tab) file.
446
Error Messages
<LOGICAL NAME>: End, released
Cause: This is a status message. The emulation session is being exited with
the end release_system command. When the session has ended, the emulator
is released, meaning that others can access and use it. When you restart the
emulation session later, the new session will use all default settings. The
emulator logical name is located in the /usr/hp64000/etc/64700tab.net (or
64700tab) file.
64700 command aborted (10371)
Cause: User abort occurred due to emulator being monopolized by another
command.
Action: Don’t issue an abort.
Address range too small for request - request truncated
Cause: Too small of an address range is specified in a modify memory
command.
Action: Specify a larger memory range.
Adjust PC failed during break (600)
Cause: System failure or target condition.
Action: Run performance verification (Terminal Interface pv command), and
check target system.
Ambiguous address: %s (312)
Cause: Certain emulators support segmentation or function code information
in addressing. The emulator is unable to determine which of two or more
address ranges you are referring to, based upon the information you entered.
Action: Re-enter the command and fully specify the address, including
segmentation or function code information.
Ambiguous address: (140)
Cause: The address for the tag memory access was ambiguous.
447
Error Messages
Analyzer Break (613)
Cause: Status message.
Analyzer limitation; all range resources in use
Analyzer limitation; all pattern resources in use
Analyzer limitation; all expression resources in use (10360)
Cause: Your trace specification would use more than the maximum number of
resources available to the analyzer.
Action: Simplify the trace specification.
Analyzer trace running (1304)
Cause: This error occurs when you attempt to change the external analyzer
mode while a trace is in progress.
Action: Halt the trace before changing the external analyzer mode.
BNC trigger break (616)
Cause: This status message will be displayed if you have configured the
emulator to break on a BNC trigger signal and the BNC trigger line is
activated during a program run. The emulator is broken to the monitor.
Break caused by CMB not ready (611)
Cause: This status message is printed during coordinated measurements if
the CMB READY line goes false. The emulator breaks to the monitor. When
CMB READY is false, it indicates that one or more of the instruments
participating in the measurement is running in the monitor.
Action: None, information only.
Break condition configuration aborted (653)
Cause: Occurs when <CTRL>c is entered during the configuration of break
conditions.
Break due to cause other than step (689)
Cause: An activity other than a step command caused the emulator to break.
This could include any of the break conditions or a <CTRL>c break.
448
Error Messages
Break failed (602)
Cause: The break command was unable to break the emulator to the monitor.
Action: Determine why the break failed, then correct the condition and retry
the command. See message 608.
Breakpoint code already exists: %s (667)
Cause: You attempted to insert a breakpoint; however, there was already a
software breakpoint instruction at that location which was not already in the
breakpoint table.
Action: Your program code is apparently using the same instructions as used
by the software breakpoints feature. Remove the breakpoint instructions
from your program code and use the modify software_breakpoints set
command to insert them.
Breakpoint disable aborted (671)
Cause: Occurs when <CTRL>c is entered when disabling software
breakpoints.
Breakpoint enable aborted (670)
Cause: Occurs when <CTRL>c is entered when setting software breakpoints.
Breakpoint list full; not added: %s (664)
Cause: The software breakpoint table is already reached the maximum of 32
breakpoints. The breakpoint you just requested, with address %s, was not
inserted.
Action: Clear breakpoints that are no longer in use. Then, set the new
breakpoint.
Breakpoint not added: %s (668)
Cause: You tried to insert a breakpoint in a memory location which was not
mapped or was mapped as guarded memory.
Action: Insert breakpoints only within memory ranges mapped to emulation
or target RAM or ROM.
Breakpoint remove aborted (669)
Cause: Occurs when <CTRL>c is entered when clearing a software
breakpoint.
449
Error Messages
Cannot access register for this processor type (168)
Cause: You have tried to access a register that is not present in the type of
processor that the emulator has determined is present.
Cannot create module file:
Cause: Insufficient disk space for the module file.
Action: Check disk space under /usr/hp64000.
Cannot default emulator; already in use (10332)
Cause: You tried to start an emulator interface, but your attempt failed
because the emulator is already in use by someone else.
Action: Current user must release the emulator.
Cannot interpret emulator output (10350)
Cause: There may be characters dropped in the information returned from
the emulator.
Action: Ignore this message unless it becomes frequent. If it becomes
frequent, you may have a fatal error; call your HP 64700 representative.
Cannot lock emulator; failure in obtaining the accessid
Cannot lock emulator; failure in <ERRNO MSG>
Cannot modify program counter to an odd value (164)
Cause: The emulator will not allow you to modify the content of the program
counter to an odd value.
Cannot modify stack pointer to an odd value (163)
Cause: The emulator will not allow you to modify the stack pointer to an odd
value.
Cannot run emulator pv in ACT mode with processor type = 331 (169)
Cause: The emulator is in ACT mode, the processor type is 68331, and you
have attempted to run the pv command.
Action: When running emulator performance verification with the emulator
in ACT mode, the processor type must be 332.
450
Error Messages
Cannot start. Ending previous session, try again
Cause: The host system could not start a new emulation session, and is
ending the previous session.
Action: After the previous session has ended, try starting a new emulation
session. If that fails, try "emul700 -u <logical name>" to unlock the emulator
and cycle power, if needed.
Cannot start. Pod initialization failed
Cause: The host system could not start a new emulation session because it
could not initialize the emulator.
Action: Cycle power on the emulator; verify that there are no red lights on
the front of the emulator. You may need to run the Terminal Interface "pv"
command to verify that the emulator is functioning properly before starting a
new session.
Cannot unlock emulator; emulator in use by user: <USER NAME>
(10328)
Cause: The emulator is already in use by the named user.
Action: Current user must release the emulator.
Cannot unlock emulator; emulator not locked (10328)
Cause: You have issued a command to unlock an emulator that is not locked.
Action: The emulator is available now. You can start the interface.
Cannot unlock emulator; lock file missing
Cannot unlock emulator; semaphore missing (10328)
Cause: Lock semaphore missing.
Action: Verify existence and permissions of /usr/hp64000 directory. Cycle
emulator power and use emul700 -u <logical name>.
CMB execute; emulation trace started (1305)
Cause: This status message informs you that an emulation trace
measurement has started as a result of a CMB execute signal (as specified by
the specify trace command).
451
Error Messages
CMB execute; run started (693)
Cause: This status message is displayed when you are making coordinated
measurements. The CMB /EXECUTE pulse has been received; the emulation
processor started running at the address specified by the specify run
command.
Action: None; information only.
CMB execute break (623)
Cause: This message occurs when coordinated measurements are enabled
and an EXECUTE pulse causes the emulator to run; the emulator must break
before running.
Action: This is a status message; no action is required.
CMB trigger break (617)
Cause: This status message will be displayed if you have configured the
emulator to break on a CMB trigger signal and the CMB trigger line is
activated during a program run. The emulator is broken to the monitor.
Command not allowed in ACT mode (156)
Cause: This command is not applicable or is not allowed in ACT mode.
Command not applicable in ACT mode (158)
Cause: This message will appear if you execute an emulator command that
does not apply when the emulator is in ACT mode.
Configuration aborted (624)
Cause: Occurs when a <CTRL>c is entered while emulator configuration
items are being set.
Configuration failed; setting unknown: %s=%s (626)
Cause: Target condition or system failure.
Action: Check target system, and run performance verification (Terminal
Interface pv command).
452
Error Messages
Configuration not valid, restoring previous configuration
Configuration not valid, restoring default configuration
Cause: The modifications you tried to make to the emulator configuration are
not valid, so the host system restored the previous configuration.
Action: See the "Configuring the Emulator" chapter for more information
about the emulator configuration items and their settings.
Configuration process QUIT
Cause: The configuration process ended because <CTRL> "\" (SIGQUIT
signal) was encountered. This is an easy way to exit configuration without
saving any changes.
Action: Try starting the emulation session again. If the problem persists, you
may need to cycle power on the emulator.
Connecting to <LOGICAL NAME>
Cause: This is a status message. The host system is making a communication
connection to the emulator whose logical name is defined in
/usr/hp64000/etc/64700tab.net or /usr/hp64000/etc/64700tab.
Continue load failed
Cause: The host system could not continue the previous emulation session
because it could not load the continue file.
Action: Try again. If the failure continues, call your HP Service
Representative.
Continuing previous session, continue file loaded
Cause: This is a status message. An emulation session which was ended
earlier with the end command has been restarted. The host system reported
that the session was continued (using settings from the previous session) and
that the continue file loaded properly.
Continuing previous session, user interface defaulted
Cause: The previous emulation session was continued and the Softkey
Interface was set to the default state.
453
Error Messages
Could not create <CONFIGURATION BINARY FILENAME>
Cause: The system could not create a binary emulation configuration file
(file.EB).
Action: Check the file.EB write permission and verify that the specified
directory exists and is writeable.
Could not create default configuration
Cause: The host system could not create a default configuration for the
emulation session.
Action: Check disk space under /usr/hp64000 and verify proper software
installation.
Could not exec configuration process
Cause: The host system could not fork the configuration process or could not
execute the configuration process.
Action: Make sure that the host system is operating properly, and that all
Softkey Interface files were loaded properly during the installation process.
Try starting the emulation session again.
Could not load default configuration
Cause: The host system could not load the default configuration into the
emulator.
Action: Cycle power on the emulator and run the Terminal Interface "pv"
(performance verification) command on the emulator to verify that it is
functioning properly. Also, verify proper software installation. If loading
default configuration still fails, then call your HP 64000 representative.
Count out of bounds: %s (318)
Cause: You specified an occurrence count less than 1 or greater than 65535.
Action: Re-enter the command, specifying a count value from 1 to 65535.
Coverage commands not allowed when tag mode enabled (149)
Cause: When tag memory is enabled, coverage commands are disabled.
454
Error Messages
CS%s is configured for fast termination; max clock is 8 MHz (171)
Cause: This is a status message output by the display configuration_info
diagnostics command. Whenever chip selects are programmed for fast
termination (-1 wait state) and are used to select emulation memory, the
operating clock rate must be limited.
CS%s is DS qualified and 0 wait states; max clock is 8 MHz (170)
Cause: Any address range mapped to emulation memory and selected with a
chip select that is DS qualified must also specify 1 or more wait states or the
system clock is limited to 8 MHz.
CS%s is set for block size of 1M byte but A19 is not available (167)
Cause: This status message occurs as a result of the display
configuration_info diagnostics command. It informs you if any chip selects
are programmed for a block size of 1 Mbyte when A19 is not available.
CS%s is used in map spec but not defined as a chip select (172)
Cause: This error message is a result of the display configuration_info
diagnostics command. The chip select used in the memory map specification
has not been defined as a chip select in the EMCSPAR0 or EMCSPAR1
registers.
CS%s is used in map spec but not enabled (byte or R/W) (173)
Cause: This error message is a result of the display configuration_info
diagnostics command. The chip select used in the memory map specification
has not been enabled by modifying the BYTE or R/W fields of the EMCSORx
register.
CSBOOT width (8/16 bit) in reset config conflicts with emcspar0 (176)
Cause: This error message is a result of the display configuration_info
diagnostics command. It occurs when there is a conflict between the
EMCSPAR0 value and the reset mode configuration value specified in the
emulator configuration.
455
Error Messages
Disable breakpoint failed: %s (604)
Cause: System failure or target condition.
Action: Run performance verification (Terminal Interface pv command), and
check target system.
Disable breakpoint failed: %s (666)
Cause: System failure or target condition.
Action: Check memory mapping and configuration questions.
Display register failed: %s (634)
Cause: The emulator was unable to display the register you requested.
Action: To resolve this, you must look at the other status messages
displayed. It’s likely that emulator was unable to break to the monitor to
perform the register display. See message 608.
Don’t care number unexpected
Cause: While defining an expression in your command, you included a don’t
care number (a binary, octal, decimal, or hexadecimal number containing
"x"), which was not expected. Don’t care numbers are not valid for all
commands. See the EXPR command syntax for more information about
expressions.
Double bus fault -- fault address register: ________ (157)
Cause: A double bus fault occurred because of multiple address or bus
errors. When this occurs the emulator breaks into the monitor.
Emul700dmn continuation failed
Cause: Communication between the emulator and the host system to
continue the emulation session failed.
Action: Check the data communication switch settings on the rear panel of
the HP 64700 series emulator. If necessary, refer to the HP 64700
Installation/Service Guide.
456
Error Messages
Emul700dmn executable not found
Cause: The emulation session could not begin because the host system could
not locate the HP 64700 emulator daemon process executable.
Action: Make sure that software installation is correct. Then try starting the
emulator again.
Emul700dmn failed to start
Cause: The emulation session could not begin because the host system could
not start the HP 64700 emulator daemon process.
Action: Make sure there is sufficient disk space under /usr/hp64000. Make
sure the host system is operating properly, that all Softkey Interface software
has been loaded correctly, and the data communication switch settings on
the emulator rear panel match the settings in the
/usr/hp64000/etc/64700tab.net (or 64700tab) file.
Emul700dmn message too large
Emul700dmn message too small
Emul700dmn queue and/or semaphores missing
Emul700dmn queue failure
Emul700dmn error in file operation
Emul700dmn queue full
Cause: The HP 64700 emulator daemon process command was too large for
the host system to process.
Action: You must press end_release_system to exit this emulation session
completely; then start a new session. Make sure the host system is operating
properly, that all Softkey Interface software has been loaded correctly, and
the data communication switch settings on the emulator rear panel match the
settings in the /usr/hp64000/etc/64700tab.net (or 64700tab) file. You may
have to cycle power and use emul700 -u ,logical name> to unlock the system.
Emul700dmn sem op failed, perhaps kernel limits too low
Cause: The host system could not start the emulation session; there may be
too many processes running on the host system.
Action: Make sure the host system is operating properly, and is not
overloaded with currently executing processes. Stop or remove some
processes on the system. Also, verify that the semaphore capabilities have
been installed in the UNIX kernel. Then try starting the emulation session
again.
457
Error Messages
Emul700dmn version incompatible with this product
Cause: The emulation session could not begin because the version of the
HP 64700 emulator daemon executable on host system is not compatible with
the version of the Softkey Interface you are using.
Action: Make sure the software has been properly installed. Then try starting
the emulator again.
Emulation analyzer defaulted to delete label
Cause: Analyzer trace labels were changed or modified while labels were in
use in the trace specification.
Action: Enter the previous trace specification and try again.
Emulation memory access failed (702)
Cause: System failure.
Action: Run performance verification (Terminal Interface pv command).
Emulator locked by another user (10326)
Cause: This message occurs when you try to start an emulation interface, but
your attempt failed because the emulator is being used by someone else.
Action: The current user must release the emulator.
Emulator locked by another user interface (10330)
Cause: You tried to start an emulator interface, but your attempt failed
because the emulator is already in use by someone else.
Action: Current user must release the emulator.
Emulator locked by user: <USER NAME> (10329)
Cause: You tried to start an emulator interface, but your attempt failed
because the emulator is already in use by someone else.
Action: Current user must release the emulator.
Enable breakpoint failed: %s (665)
Cause: System failure or target condition.
Action: Check memory mapping and configuration questions.
458
Error Messages
Ending released
Cause: This is a status message. The emulation session is being exited with
the end release_system. The emulator will be released for others to access
and use it.
Error: display size is <LINES> lines by <COLUMNS> columns. It must
be at least 24 by 80.
Cause: You tried to specify an incorrect window size.
Action: Set the window size accordingly, then start the emulation session.
The size of the window must be a minimum of 24 lines (rows) by 80 columns
to operate an emulation session.
Error in configuration process
Error starting configuration process
Cause: Unexpected configuration error.
Action: Verify proper software installation and call your HP 64000
representative.
Exceeded maximum 64700 command line length (10351)
Cause: Your command is longer than 240 characters.
Action: Shorten the command.
Expanded memory map requires more than 12 map resource terms (179)
Cause: This error message occurs as a result of the display
configuration_info diagnostics command. It shows that the memory map has
been expanded to more than 12 terms, which is the maximum available.
When this occurs, you must use block attributes and chip select function
codes with address ranges when mapping memory to override the automatic
expansion of the memory map and thereby reduce the number of actual
mapper resources used.
459
Error Messages
External label in use: <label> (1301)
Cause: This error occurs when you attempt to select the external analyzer’s
independent state mode while an external trace label is currently used as a
qualifier in the emulation analyzer trace specification.
Action: Remove any external trace label qualifiers from emulation trace
specifications before selecting the external analyzer’s independent state
mode.
Failed to disable step mode (684)
Cause: System failure.
Action: Run performance verification (Terminal Interface pv command).
Fatal error from function <ADDRESS OF FUNCTION>
Cause: This is an unexpected fatal system error.
Action: Cycle power on the emulator and start again. If this is a persistent
problem, call your HP 64000 representative.
FATAL SYSTEM SOFTWARE ERROR (204, 205, 208)
Cause: The system has encountered an error from which it cannot recover.
Action: Write down the sequence of commands which caused the error.
Cycle power on the emulator and re-enter the commands. If the error
repeats, call your local HP Sales and Service office for assistance.
File could not be opened
Cause: You tried to store or load trace data to a file with incorrect permission.
Or the analyzer could not find the file you specified, or else there were
already too many files open when you entered your command.
Action: Check the directory and file for correct read and write permission.
Specify a file that is accessible to the analyzer. Close the other files that are
presently open.
File perf.out does not exist
Cause: You tried to execute the "restore" command to continue a previous
software performance measurement, and the SPMT software found that no
"performance_measurement_end" command was previously executed to
create a file from which "restore" could be performed.
Action: Execute a new SPMT measurement.
460
Error Messages
File perf.out not generated by measurement software
Cause: The file named perf.out exists in the current directory, but it was not
created by the "performance_measurement_end" command.
Action: Rename the old "perf.out" file, or move it to another directory.
File transfer aborted (410)
Cause: A transfer operation was aborted due to a break received, most likely
a <CTRL>c from the keyboard.
Action: If you typed <CTRL>c, you probably did so because you thought the
transfer was about to fail. Retry the transfer, making sure to use the correct
command options. If you are unsuccessful, make sure that the data
communications parameters are set correctly on the host and on the
HP 64700, then retry the operation.
Guarded memory access break (614)
Cause: This message is displayed if the emulation processor attempts to read
or write memory mapped as guarded.
Action: Troubleshoot your program; or, you may have mapped memory
incorrectly.
Guarded memory break: %s" (628)
Cause: A memory access to a location mapped as guarded memory has
occurred during execution of the user program.
Action: Investigate the cause of the guarded memory access by the user
program.
HP 64700 I/O error; communications timeout
Cause: This is a communication failure.
Action: Check power to the emulator and check that all cables are connected
properly. If you are using LAN and heavy LAN traffic is present, try setting
the environment variable to HP64700TIMEOUT="30" (or larger if needed).
The value is the number of seconds before timeout occurs. Then try running
again.
461
Error Messages
HP 64700 I/O error; power down detected
Cause: The emulator power was cycled.
Action: Do not do this during a user interface session; this may force the user
interface to end immediately.
HP64700 I/O channel busy; communications timed out
Cause: The communications channel is in use for an unusually long period of
time by another command.
Action: try again later.
HP64700 I/O channel in use by emulator: <LOGICAL NAME> (10331)
Cause: You tried to start an emulator interface, but your attempt failed
because the emulator is already in use by someone else.
Action: Current user must release the emulator.
HP64700 I/O channel semaphore failure: <string>
Cause: Semaphore (ipc) facility not installed.
Action: Reconfigure the kernel to add ipc facility.
HP64700 I/O error; connection timed out
Cause: A user abort occurred while attempting to connect via LAN.
Action: Possibly connecting to an emulator many miles away, be patient.
Illegal status combination
Cause: You tried to specify combinations of status qualifiers in expressions
incorrectly when entering commands.
Action: Refer to the "Emulator/Analyzer Interface Commands" chapter for
information about syntax of commands.
Illegal symbol name
Cause: You tried to specify incorrect symbol names when entering commands.
Action: Specify correct symbol names. To see global symbol names, use the
display global_symbols command. To see local symbol names, use the
display local_symbols_in <SYMB> command.
462
Error Messages
Incompatible compatibility table entry (206)
Cause: The emulation firmware (ROM) is not compatible with the analysis or
system firmware in your HP 64700 system.
Action: The ROMs in your emulator must be compatible with each other for
your emulation system to work correctly. Contact your Hewlett-Packard
Representative.
Incompatible with 64700 firmware version (10352)
Cause: The installed interface firmware combination is incorrect or
incompatible.
Action: Upgrade the interface software of product firmware.
Initialization failed
Cause: The emulator could not be initialized.
Action: Make sure your data communication switch settings are correct, and
that all Softkey Interface software has been loaded properly. Cycle power on
the emulator, then try starting up the emulation session again.
Initialization load failed
Cause: The emulator could not be initialized.
Action: Make sure your data communication switch settings are correct, and
that all Softkey Interface software has been loaded properly. Cycle power on
the emulator, then try starting up the emulation session again.
Initializing emulator with default configuration
Cause: This is a status message. The host system started the emulation
session and initialized the emulator using the default configuration. The
emulator is probably operating correctly.
Initializing user interface with default config file
Cause: This is a status message. The host system started the emulation
session and Softkey Interface using the default configuration file. The
emulator is probably operating correctly.
463
Error Messages
Insufficient emulation memory, memory map may be incomplete
Cause: You can map only the amount of emulation memory available in your
emulator. Trying to map additional unavailable memory may cause
information to be missing from your memory map.
Action: Modify your configuration and update the memory map to correctly
reflect the amount of emulation memory available.
Insufficient emulation memory (21)
Cause: You have attempted to map more emulation memory than is available,
or you have attempted to include tag memory with a target system memory
range when there is not enough emulation memory available.
Action: Reduce the amount of emulation memory or tag memory that you are
trying to map.
Invalid address: %s (146)
Cause: You specified an invalid address value as an argument to one of the
HP 64782 specific commands. For example, you may have specified digits
that don’t correspond to the base specified, or you forgot to precede a
hexadecimal letter digit with a number (even zero (0)).
Action: Re-enter the command and the address specification. See the
<ADDRESS> and <EXPRESSION> syntax pages in the "Commands" chapter
for information on address specifications.
Invalid address range: %s (147)
Cause: You specified an invalid address range as an argument to one of the
HP 64782 specific commands. For example, you may have specified digits
that don’t correspond to the base specified, or you forgot to precede a
hexadecimal letter digit with a number, or the upper boundary of the range
you specified is less than the lower boundary.
Action: Re-enter the command and the address specification. See the
<ADDRESS> and <EXPRESSION> syntax pages in the "Commands" chapter
for information on address specifications. Also, make sure that the upper
boundary specification is greater than the lower boundary specification (the
lower boundary must always precede the upper boundary on the command
line).
464
Error Messages
Invalid analysis subsystem; product address: %s (902)
Cause: This error occurs when the HP 64700 system controller determines
that the analysis firmware (ROM) is invalid.
Action: This message is not likely to occur unless you have upgraded the
ROMs in your emulator. Be sure that the correct ROMs are installed in the
analyzer board.
Invalid answer in <CONFIGURATION FILENAME> ignored
Cause: You must provide acceptable responses to questions in the
configuration file (file.EA). The emulator ignored the incorrect response.
Incorrect responses may appear in configuration files when you have saved
the configuration to a file, edited it later, and tried reloading it into the
emulator. This may also occur if you have loaded a configuration file that you
created while using another emulator, and the response differs from the
response required for this emulator.
Action: Examine your configuration file to check for inappropriate responses
to configuration file questions.
Invalid auxiliary subsystem; product address: %s (904)
Cause: For future products.
Invalid ET subsystem; product address: %s (903)
Cause: Detects an invalid ET. Used only internally.
Invalid firmware for emulation subsystem (901)
Cause: This error occurs when the HP 64700 system controller determines
that the emulation firmware (ROM) is invalid.
Action: This message is not likely to occur unless you have upgraded the
ROMs in your emulator. Be sure that the correct ROM is installed in the
emulation controller.
Invalid number of arguments (145)
Cause: You have either entered too many options to a command or an
insufficient number of options.
Action: Re-enter the command with correct syntax. Refer to the command
syntax pages in this manual for information.
465
Error Messages
Invalid option or operand: %s (148)
Cause: You have specified incorrect option(s) to a command. %s, if printed,
indicates the incorrect option(s).
Action: Re-enter the command with the correct syntax. Refer to the on-line
help information.
Invalid trigger duration: <duration> (2031)
Cause: This error occurs when you attempt to specify an external timing
trigger duration which is in the valid range but is not a multiple of 10 ns.
Action: Re-enter the command with the trigger duration as a multiple of 10
ns.
Invalid word access for odd address (2)
Cause: When the access mode is "word", you have attempted to modify a
target system memory location at an odd address.
Action: Either change to an even address or modify the access mode to bytes
if possible.
Invalid word access for odd number of bytes (3)
Cause: When the access mode is "word" and the display mode is "byte", you
have attempted to modify a range of target system memory (perhaps, as
small as a two byte range) with an odd number of byte values.
Action: Either specify an even number of bytes or modify the access mode to
bytes if possible.
Inverse assembly file <INVERSE ASSEMBLER FILENAME> could not
be loaded
Inverse assembly file <INVERSE ASSEMBLER FILENAME> not found,
<filename>
Inverse assembly not available
Cause: The file does not exist.
Action: Reload your interface and/or real-time operating system software.
Inverse assembly not available
Cause: The inverse assembler for your emulator is missing.
Action: Verify proper software installation.
466
Error Messages
Joining session already in progress, continue file loaded
Cause: This is a status message. When operating the emulator in multiple
windows, a new emulation session is "joined" to a current session. In this
case, the new session was able to continue because the continue file loaded
properly.
Joining session already in progress, user interface defaulted
Cause: When operating the emulator in multiple windows, a new emulation
session is "joined" to a current session. In this case, the new session used the
user interface default selections.
Lab firmware analysis subsystem; product address: %s (912)
Cause: This message should never occur. It shows that you have an
unreleased version of analysis firmware.
Lab firmware auxiliary subsystem; product address: %s (914)
Cause: This message should never occur. It shows that you have an
unreleased firmware version of the auxiliary subsystem.
Lab firmware for emulation subsystem (911)
Cause: This message should never occur. It shows that you have an
unreleased version of emulation firmware.
Lab firmware subsystem; product address: %s (913)
Cause: This message should never occur. It shows that you have an
unreleased version of system controller firmware.
Load aborted
Cause: While loading a file into the emulator, an event occurred that caused
the host system to stop the load process.
Action: Use the display error_log command to view any errors. If the problem
persists, make sure the host system and emulator are operating properly, and
that you are trying to load an acceptable file. See the "Emulator/Analyzer
Interface Commands" chapter for information about the load command.
467
Error Messages
Load completed with errors
Cause: While loading a file into the emulator, one or more events occurred
that caused errors during the load process.
Action: Use the display error_log command to view any errors. You may need
to modify the configuration and map memory before you load the file again. If
the problem persists, make sure the host system and emulator are operating
properly, and that you are trying to load an acceptable file.
Logical emulator name unknown; not found in 64700tab file (10315)
Cause: This message may occur while trying to start up the emulator. It
indicates that the emulator name specified could not be found in the
64700tab.net or /etc/hosts files.
Action: Specify the name in one of these files.
Map term n limited to 4 chip selects (165)
Cause: This status message occurs if more than 4 chip selects are assigned to
a mapped term (as defined by the EMSIM registers: EMCSOR[0-10],
EMCSBR[0-10], EMCSORBT, or EMCSBRBT). Only the first 4 chip selects
will be allowed.
Measurement system not found
Cause: You tried to end the current emulation session and select another
measurement system module which could not be located by the host system.
Action: Either try the end select measurement_system command again or
end and release the emulation session.
Memory allocation failed, ending released
Cause: This is a fatal system error because the emulation session was unable
to allocate memory.
Action: You may need to reconfigure your UNIX kernel to increase the per
process maximum memory limit and available swap space. Reboot your
UNIX system and try starting a new session again.
Memory block list unreadable
Memory mapping not allowed in ACT mode (154)
Cause: When the emulator is in ACT mode the memory system is disabled.
Therefore, you cannot map memory.
468
Error Messages
Memory modify aborted; next address: %s (754)
Cause: This message is displayed if a break occurs during processing of a
modify memory command. The break could result from any of the break
conditions (except a software breakpoint) or could have resulted from a
<CTRL>c break.
Action: Retry the operation. If breaks are occurring continuously, you may
wish to disable some of the break conditions.
Memory range overflow
Cause: A modify memory command is attempted that would cross physical 0.
Action: Limit the modify memory command to not overflow physical 0 or
break the command into two separate modify commands.
Memory range overflow (710)
Cause: Accessing a word or short word, for example display memory 0ffffffff
blocked word will cause a rounding error that overflows physical memory.
Action: Reduce memory display request.
Message overflow (151)
Cause: The display configuration_info diagnostics command may emit more
messages than the HP 64700 will allow (16). This status message occurs
when there are more than 16 messages.
Need %s or chip select for map entry #%d (174)
Cause: This error message is a result of the display configuration_info
diagnostics command. If you have mapped an address range using the p, d, s,
u, sp, sd, up, or ud function codes, the EMCSPAR0 register must be
programmed to set up the function code pins or one of the EMCSBRx
registers must be set up to provide a chip select for that address range.
Need DSACK1 at port E or chip select DSACK for map entry #%d (178)
Cause: If DSACK1 line is not available at port E, any term that is mapped as
emulation RAM or emulation ROM will have to be accessed with a chip select
that generates an external DSACK or else the emulator will not be able to
complete the bus cycle.
469
Error Messages
Negated patterns not allowed in timing (2030)
Cause: This error occurs when you attempt to specify a "not equals"
expression when defining the external timing trigger. You can only specify
labels which equal patterns (of 1’s, 0’s, or X’s).
Action: Do not attempt to specify negated timing patterns.
No address label defined
Cause: The address trace label was somehow removed in the terminal
interface using the tlb command.
Action: End session and start again.
No more processes may be attached to this session
Cause: You can operate an emulator in four windows. Each time you start the
emulator in another window, a new process is attached to the current session.
Action: Do not try to use more than four windows. Once you have started the
emulator in four windows, you have reached the maximum number of
processes allowed for that emulator.
No chip selects programmed for address range of map entry #%d (175)
Cause: This error message is a result of the display configuration_info
diagnostics command. It can occur when you have mapped an address range
using one of the chip select function codes but have not programmed any of
the EMCSBRx registers to set up a chip select for that address range.
It’s also possible that you have programmed the EMCSBRx registers to set up
chip selects but not programmed the EMCSORx registers to enable the chip
selects.
No internal registers for m6833x at address: ________ (161)
Cause: Not all addresses in the internal register block are active (depending
on the chip register content). This error occurs if a command cannot access
a particular address in a valid register block.
No symbols loaded
Cause: You tried to step through lines in the source file before symbols are
loaded.
Action: Load symbols and try again, or use step with the "source" option (i.e.
step assembly language program).
470
Error Messages
No valid trace data
Cause: You tried to store trace data before a trace was completed.
Action: Wait until valid trace data is available before attempting to store a
trace.
No tag memory at address: (159)
Cause: You have tried to access tag memory by issuing a modify tags
command, but tag memory has not been defined at the address you specified.
Tag memory is available for address ranges mapped as emulation memory.
Tag memory can also be assigned to target memory ranges by using the "tag"
attribute when mapping.
Normal emulation mode not allowed with HP 64782A (155)
Cause: The HP 64782A emulator, which supports only ACT mode, does not
allow you to configure the emulator for the Normal mode.
Not a valid trace file - load aborted
Cause: You tried to load a file.TR that was not created by the emulation
session.
Action: Only load trace data files that were created by the emulator.
Not an absolute file
No absolute file: <file>
No absolute file, No database: <file>
Cause: You tried to load a file into the emulator that is not an executable or
absolute file, so the host system stopped the load process.
Action: Try your command again, and make sure you specify a valid absolute
file name to be loaded.
Not compatible trace file - load aborted
Cause: You tried to load a file.TR that was created by another type of
emulator.
Action: Only load trace data files that were created by the same type of
emulator.
471
Error Messages
Number of chip select function codes limited to 4 (166)
Cause: This status message occurs when you specify more than 4 chip select
function codes when mapping an address range. Only the first 4 chip selects
will be allowed.
Number of lines not in range: 1 <= valid lines <= 50
Cause: You tried to enter a number of lines that was outside the range from 1
to 50.
Action: Try entering the command again using a valid number of lines.
Number of spaces not in range: 2 <= valid spaces <= 15
Cause: You tried to enter a number of spaces outside the range from 2 to 15.
Action: Try entering the command again using a valid number of spaces.
opcode extends beyond specified address range
Cause: Memory disassembly is attempted on an address range that is too
small.
Action: Display memory mnemonic using a large address range, or no address
range at all.
perf.out file could not be opened - created
Cause: The performance analyzer failed to open or create a file named
"perf.out" in response to your "performance_measurement_end" command.
Action: Free up some file space or correct the write permissions in your
current working directory.
Perfinit - Absolute file (database) must be loaded line <LINE NUMBER>
Cause: No symbolic data base has been opened (or exists) for the target file
when you executed the "performance_measurement_initialize" command.
Action: Make sure a data base has been loaded for the target file.
Perfinit - error in input file line <LINE NUMBER> invalid symbol
You included a "label" file name with your
"performance_measurement_initialize" command, and that file contains an
invalid symbol.
Action: Edit the file and correct the invalid symbol.
472
Error Messages
Perfinit - error in input file line <NUMBER>
Cause: You included an input file name with your
"performance_measurement_initialize" command, and that file contains a
syntax error.
Action: Edit the file and correct the syntax error.
Perfinit - File could not be opened
Cause: You specified a file as an option to
"performance_measurement_initialize", and the file you specified could not
be found or opened by SPMT software.
Action: Make sure you entered the correct file name.
Perfinit - No events in file
Cause: You specified a file along with your
"performance_measurement"initialize" command that contained no events.
Any measurement displayed from this file will have NULL results.
Action: Either edit the file to add events, or use the default setup to start a
new measurement.
Perfinit <—-EXPR—- ERROR> line <LINE NUMBER>
Performance tool must be initialized
Cause: You tried to make a performance measurement when the Software
Performance Measurement Tool (SPMT) was not initialized.
Action: The Software Performance Measurement Tool (SPMT) must be
initialized before making performance measurements on your software. Use
the performance_measurement_initialize command to initialize the SPMT.
Performance tool not initialized
Cause: The Software Performance Measurement Tool (SPMT) has not been
initialized.
Action: To make accurate activity or duration measurements on current data,
use the performance_measurement_initialize command to initialize the SPMT
before running a performance measurement.
473
Error Messages
Period not in 1/2/5 sequence: <period> (2021)
Cause: This error message occurs when the external timing sample period is
not in a 1/2/5 sequence; for example, 10ns, 20ns, 50ns, 100ns, 200ns, 500ns,
1us, 2us, 5us, etc. Some examples of invalid sample period specifications are:
12ns, 18ns, 25ns, 60ns, 80ns, etc.
Action: Use a number in the 1/2/5 sequence when specifying the external
timing sample period.
Pin is %s at reset config, emsim definition is %s (177)
Cause: This error message is a result of the display configuration_info
diagnostics command which checks for inconsistencies between the reset
mode configuration value (as specified in the emulator configuration) and
how the EMSIM registers are programmed.
Program counter is odd (84)
Cause: You attempted to modify the program counter to an odd value using
the modify registers command on a processor which expects even alignment
of opcodes.
Action: Modify the program counter only to even numbered values.
The following error messages are unique to the 6833x emulator.
Question file missing or invalid
Cause: Some of the Softkey User Interface files are missing or are corrupted.
Action: Reinstall the host software and try starting the emulation session
again.
Range crosses segment boundary
Cause: On a segment offset processor, an address range is specified that
would cross different segments.
Action: Break the memory command into multiple commands so that the
address ranges start and end in the same segment.
Read memory failed at <PHYSICAL ADDRESS> - store aborted
Cause: While storing memory from the emulator to a file, a read memory
error occurred.
Action: Use the display error_log command to view any errors. You may need
to modify the configuration and map memory before storing the file again.
474
Error Messages
Read PC failed during break (603)
Cause: System failure or target condition.
Action: Try again.
Record checksum failure (400)
Cause: During a transfer operation, the checksum specified in a file did not
agree with that calculated by the HP 64700.
Action: Retry the transfer operation. If the failure is repeated, make sure
that both your host and the HP 64700 data communications parameters are
configured correctly.
Records expected: %s; records received: %s (401)
Cause: The HP 64700 received a different number of records than it
expected to receive during a transfer operation.
Action: Retry the transfer. If the failure is repeated, make sure that the data
communications parameters are set correctly on the host and on the
HP 64700.
Register access aborted (630)
Cause: Occurs when a <CTRL>c is entered during register display.
Register class cannot be modified: %s (637)
Cause: You tried to modify a register class instead of an individual register.
Action: You can only modify individual registers. Refer to the display
registers command description for a list of register names.
Register not writable: %s (636)
Cause: This error occurs when you attempt to modify a read only register.
Action: If this error occurs, you cannot modify the contents of the register
with the modify register command.
475
Error Messages
Request access to guarded memory: %s (707)
Cause: The address or address range specified in the command included
addresses within a range mapped as guarded memory. When the emulator
attempts to access these during command processing, the above message is
printed, along with the specific address or addresses accessed.
Action: Re-enter the command and specify only addresses or address ranges
within emulation or target RAM or ROM. Or, you can remap memory so that
the desired addresses are no longer mapped as guarded.
Request access to guarded memory: (142)
Cause: The command tried to access guarded memory.
Restore original processor state failed (152)
Cause: The emulator could not restore the SFC or DFC registers after
modifying them for a monitor memory access. This usually means that the
emulator has lost control of the background monitor. Loss of the clock would
be one reason this might occur.
Restricted to real time runs (40)
Cause: While the emulator is restricted to real-time execution, you have
attempted to use a command that requires a temporary break in execution to
the monitor. The emulator does not permit the command and issues this
error message.
Action: You must break the emulator’s execution into the monitor before you
can enter the command.
Retry limit exceeded, transfer failed (412)
Cause: The limit for repeated attempts to send a record during a transfer
operation was exceeded, therefore the transfer was aborted.
Action: Retry the transfer. Make sure you are using the correct command
options for both the host and the HP 64700. The data communications
parameters need to be set correctly for both devices. Also, if you are in a
remote location from the host, it is possible that line noise may cause the
failure.
476
Error Messages
Run failed during CMB execute (694)
Cause: System failure or target condition.
Action: Run performance verification (Terminal Interface pv command), and
check target system.
Sample period out of bounds: <bounds> (2022)
Cause: The external timing sample period must be between 10 ns and 50 ms
(in a 1/2/5 sequence).
Action: Re-enter the command with the sample period between the bounds
shown.
Session aborted
Cause: This will only happen when running multiple emulation windows and
a fatal system error occurs.
Action: Find the window that caused the error and see the error message that
it displayed. All the additional windows will simply state "session aborted".
Cycle power on the emulator and enter emul700 -u <logical name> to make
sure the emulator is unlocked.
Session cannot be continued, ending released
Cause: The emulation session is ending automatically because it could not be
continued from the previous session. When the session has ended the
emulator will be released, meaning that others can access and use it.
Action: When you restart the emulation session later, the new session will use
all default settings.
Severe error detected, file transfer failed (411)
Cause: An unrecoverable error occurred during a transfer operation.
Action: Retry the transfer. If it fails again, make sure that the data
communications parameters are set correctly on the host and on the
HP 64700. Also make sure that you are using the correct command options,
both on the HP 64700 and on the host.
Slave clock requires at least one edge
Cause: The analyzer has an invalid clock specification.
Action: Modify your configuration and try your command again.
477
Error Messages
Software breakpoint: %s (615)
Cause: This status message will be displayed if a software breakpoint is
encountered during a program run. The emulator is broken to the monitor.
The string %s indicates the address where the breakpoint was encountered.
Software breakpoint break condition is disabled (661)
Cause: You have attempted to set or clear a software breakpoint when
software breakpoints are disabled.
Action: You must enable software breakpoints before you can set them.
Specified breakpoint not in list: %s (663)
Cause: You tried to clear a software breakpoint that was not previously set.
The string %s prints the address of the breakpoint you attempted to clear.
Action: You must first set a software breakpoint before it can be cleared.
Starting address greater than ending address
Cause: You specified a starting address that is greater than the ending
address.
Action: Specify a starting address that is less than or equal to the ending
address.
Starting new session, continue file loaded
Cause: This is a status message. The emulator was started using a new
emulation session, and the continue file loaded properly.
Starting new session, user interface defaulted
Cause: The emulator was started using a new emulation session, and the user
interface was set to default selections.
Action: Call your HP Service Representative.
Status unknown, run "emul700 -l <LOGICAL NAME>"
Cause: The host system cannot determine the status of the emulator.
Action: To verify communication between the emulator and the host system,
and display the emulator status, enter the emul700 -l <logical name>
command. The emulator logical name is located in the
/usr/hp64000/etc/64700tab.net (or 64700tab) file.
478
Error Messages
Step count must be 1 through 999
Cause: You tried to use a step count greater than 999.
Action: Use a step count less than 1000.
Step display failed (688)
Cause: System failure or target condition.
Action: Check memory mapping and configuration questions.
Stepping aborted; number steps completed: %d (686)
Cause: This message is displayed if a break was received during a step
command with a step count greater than zero. The break could have been
due to any of the break conditions or a <CTRL>c break. The number of steps
completed is displayed.
Stepping aborted; number steps completed: <STEPS TAKEN>
Cause: Stepping aborted because <CTRL>c or software breakpoint was hit,
guarded memory was accessed, or some other kind of error occurred.
Action: See the error log display for any abnormal errors. Correct those
errors and then step again.
Stepping complete
Cause: Stepping was completed successfully.
Stepping failed (680)
Cause: Stepping has failed for some reason.
Action: Usually, this error message will occur with other error messages.
Refer to the descriptions of the accompanying error messages to find out
more about why stepping failed.
Symbols not accessible, symbol database not loaded
Cause: You specified a trace list with values expressed using symbols defined
in the source code modules, such as source on, and the database file has not
been loaded into emulation. Example: display trace symbols on.
479
Error Messages
Tag commands not allowed when tag mode disabled (150)
Cause: When tag memory is disabled, the extra bits of emulation memory are
being used for the coverage function. Therefore, the tag commands are
disabled.
Tag memory access failed (141)
Cause: The access to the tag memory failed. This could occur because the
processor is not performing external bus accesses, or a hardware failure
occurred in the memory system.
Tag memory modify aborted; next address: (144)
Cause: The tag memory command was aborted with a <CTRL>c.
Tag memory range overflow (143)
Cause: The command requests an operation to tag memory which is greater
than the allocated memory range.
Target memory access failed (700)
Cause: This message is displayed if the emulator was unable to perform the
requested operation on memory mapped to the target system.
Action: In most cases, the problem results from the emulator’s inability to
break to the monitor to perform the operation. See message 608.
Timeout, receiver failed to respond (415)
Cause: Communication link or transfer protocol incorrect.
Action: Check link and transfer options.
Timeout in emul700dmn communication
Cause: The host system could not start the emulation session because the
HP 64700 emulator process ran out of time before the emulator could start.
Action: You must press end_release_system to exit this emulation session
completely; then start a new session. Make sure the host system is operating
properly, that all Softkey Interface software has been loaded correctly, and
the data communication switch settings on the emulator rear panel match the
settings in the /usr/hp64000/etc/64700tab.net (or 64700tab) file.
480
Error Messages
Trace error during CMB execute (692)
Cause: System failure.
Action: Run performance verification (Terminal Interface pv command).
Trace file not found
Cause: You tried to load trace data file that does not exist.
Action: Find the correct name and path of the trace data file and try again.
Transfer failed to start (413)
Cause: Communication link or transfer protocol incorrect.
Action: Check link and transfer options.
trig1 break (618)
Cause: This status message will be displayed if you use the break_on_trigger
syntax of the trace command and the analyzer has found the trigger
condition while tracing a program run. The emulator is broken to the
monitor.
trig2 break (619)
Cause: This status message will be displayed if you have used the internal
trig2 line to connect the analyzer or external analyzer trigger output to the
emulator break input and the analyzer has found the trigger condition. The
emulator is broken to the monitor.
Trigger delay out of bounds: <bounds> (2042)
Cause: This error occurs when you attempt to specify an external timing
trigger delay outside the valid range. The external timing trigger delay must
be between 0 and 10 ms (in 10 ns increments).
Action: Re-enter the command with the trigger delay within the bounds
shown.
481
Error Messages
Trigger duration out of bounds: <bounds> (2032)
Cause: This error occurs when you attempt to specify an external timing
trigger duration outside the valid range. A "greater than" duration must fall
within the range of 30 ns to 10 ms (and must be a multiple of 10 ns). A "less
than" duration must fall within the range 40 ns to 10ms (and must be a
multiple of 10 ns).
Action: Re-enter the command with the trigger duration within the bounds
shown.
Unable to break (608)
Cause: This message is displayed if the emulator is unable to break to the
monitor because the emulation processor is reset, halted, or is otherwise
disabled.
Action: First, look at the emulation prompt and other status messages
displayed to determine why the processor is stopped. If reset by the
emulation controller, use the break command to break to the monitor. If
reset by the emulation system, release that reset. If halted, try reset and
break to get to the monitor. If there is a bus grant, wait for the requesting
device to release the bus before retrying the command. If there is no clock
input, perhaps your target system is faulty. It’s also possible that you have
configured the emulator to restrict to real time runs, which will prohibit
temporary breaks to the monitor.
Unable to configure break on software breakpoints (651)
Cause: The emulator controller cannot enable breakpoints, possibly because
the emulator is in an unknown state or because of a hardware failure.
Action: Initialize the emulator or cycle power, then re-enter the command. If
the same failure occurs, call your HP sales and service office.
Unable to configure break on write to ROM (650)
Cause: The emulator controller is unable to configure for breaks on writes to
ROM, possibly because the emulator was left in an unknown state or because
of a hardware failure.
Action: Initialize the emulator or cycle power. Then re-enter the command.
If the same failure occurs, call your HP sales and service office.
482
Error Messages
Unable to delete label; used by emulation analyzer: <label> (1105)
Cause: This error occurs when you attempt to delete an emulation trace
label which is currently being used as a qualifier in the emulation trace
specification or is currently specified in the emulation trace format.
Action: You stop the trace or must change the trace command before you
can delete the label.
Unable to delete label; used by external state analyzer: <label> (1106)
Cause: This error occurs when you attempt to delete an external trace label
which is currently being used as a qualifier in the external state trace
specification or is currently specified in the external trace format.
Action: You stop the trace or must change the trace command before you
can delete the label.
Unable to delete label; used by external timing analyzer: <label> (1107)
Cause: This error occurs when you attempt to delete an external trace label
which is currently being used as a qualifier in the external timing trace
specification.
Action: Remove the label from the external timing analyzer specifications,
and then delete the label.
Unable to load new memory map; old map reloaded (725)
Cause: There is not enough emulation memory left for this request.
Action: Reduce the amount of emulation memory requested.
Unable to modify register: %s=%s (632)
Cause: The emulator was unable to modify the register you requested.
Action: To resolve this, you must look at the other status messages
displayed. It’s likely that emulator was unable to break to the monitor to
perform the register modification. See message 608.
Unable to read registers in class: %s (631)
Cause: The emulator was unable to read the registers you requested.
Action: To resolve this, you must look at the other status messages
displayed. Most likely, the emulator was unable to break to the monitor to
perform the register read. See message 608.
483
Error Messages
Unable to redefine label; used by emulation analyzer: <label> (1108)
Cause: This error occurs when you attempt to redefine an emulation trace
label which is currently used as a qualifier in the emulation trace
specification.
Action: You stop the trace or must change the trace command before you
can redefine the label.
Unable to redefine label; used by external state analyzer: <label> (1109)
Cause: This error occurs when you attempt to redefine an external trace
label which is currently used as a qualifier in the external state trace
specification.
Action: You stop the trace or must change the trace command before you
can redefine the label.
Unable to redefine label; used by external timing analyzer: <label>
(1110)
Cause: This error occurs when you attempt to redefine an emulation or
external trace label which is currently being used as a qualifier in the
external timing trace specification.
Action: Remove the label from the external timing analyzer specifications,
and then redefine the label.
Unable to reload old memory map; hardware state unknown (726)
Cause: System failure.
Action: Run performance verification (Terminal Interface pv command).
Unable to reset (640)
Cause: Target condition or system failure.
Action: Check target system, and run performance verification (Terminal
Interface pv command).
Unable to run (610)
Cause: System failure or target condition.
Action: Run performance verification (Terminal Interface pv command), and
check target system.
484
Error Messages
Unable to run after CMB break (606)
Cause: System failure or target condition.
Action: Run performance verification (Terminal Interface pv command), and
check target system.
Undefined software breakpoint: %s (605)
Cause: The emulator has encountered a software breakpoint in your program
that was not inserted with the modify software_breakpoints set command.
Action: Remove the breakpoint instructions in your code before assembly
and link.
Unexpected message from emul700dmn
Cause: The host system could not start the emulation session because of an
unexpected message from the HP 64700 emulator process command.
Action: You must press end_release_system to exit this emulation session
completely; then start a new session. Make sure the host system is operating
properly, that all Softkey Interface software has been loaded correctly, and
the data communication switch settings on the emulator rear panel match the
settings in the /usr/hp64000/etc/64700tab.net (or 64700tab) file.
Unexpected software breakpoint (620)
Cause: If you have enabled software breakpoints, this message is displayed if
a software breakpoint instruction is encountered in your program that was
not inserted by a modify software_breakpoints set command and is therefore
not in the breakpoint table.
Action: Remove the breakpoint instructions in your code before assembly
and link, and use the modify software_breakpoints set command to reinsert
them after the program is loaded into memory.
Unexpected step break (621)
Cause: System failure.
Action: Run performance verification (Terminal Interface pv command).
485
Error Messages
Unknown expression type
Cause: While entering your command, you included an unknown expression
type.
Action: See the EXPR command syntax for more information about
expressions. Then try entering your command again with a known expression
type.
Unload trace data failed
Cause: An unexpected error occurred while waiting for a trace to be
completed.
Action: End and release the session, and then try again.
Wait time failure, could not determine system time
Cause: The system call failed.
Action: Verify that ’date’ executes correctly from the UNIX prompt.
Warning: at least one integer truncated to 32 bits
Warning: at least one integer truncated to 16 bits
Warning: at least one integer truncated to 8 bits
Cause: The number entered was too large for the currently specified display
or access size.
Action: Try entering the command again using the correct size of number.
Width not in range: 1 <= valid width <= 80
Cause: You tried to specify the width of the field outside the range from 1 to
80.
Action: Try entering the command again using a valid number for the width.
Write to ROM break: %s" (628)
Cause: When the emulator is configured to break on writes to ROM, a
memory write access to a location mapped as ROM has occurred during
execution of the user program.
Action: Investigate the cause of the write to ROM by the user program. You
can configure the emulator so that it does not break on writes to ROM.
486
Error Messages
Write to ROM break (612)
Cause: This status message will be printed if you have enabled breaks on
writes to ROM and the emulation processor attempted a write to a memory
location mapped as ROM.
Action: None (except troubleshooting your program).
487
488
Part 4
Concept Guide
489
Part 4
Topics that explain concepts and apply them to advanced tasks.
490
14
Concepts
491
Concepts
This chapter provides conceptual information on the following topics:
• X resources and the Graphical User Interface.
• Concepts of the EMSIM and EMRAM
492
X Resources and the Graphical User Interface
This section contains more detailed information about X resources and
scheme files that control the appearance and operation of the Graphical User
Interface. This section:
• Describes the X Window concepts surrounding resource specification.
• Describes the Graphical User Interface’s implementation of scheme files.
X Resource Specifications
An X resource specification is a resource name and a value. The resource
name identifies the element whose appearance or behavior is to be defined,
and the value specifies how the element should look or behave. For example,
consider the following resource specification:
Application.form.row.done.background: red
The resource name is "Application.form.row.done.background:" and the value
is "red".
Resource Names Follow Widget Hierarchy
A widget is an OSF/Motif graphic device from which X applications are built.
For example, pushbuttons and menu bars are Motif widgets. Applications are
built using a hierarchy of widgets, and the application’s X resource names
follow this hierarchy. For example:
Application.form.row.done.background: red
In the resource name above, the top-level widget is named after the
application. One of the top-level widget’s children is a form widget, one of
the form widget’s children is a row-column manager widget, and one of the
row-column manager widget’s children is a pushbutton widget. Resource
names show a path in the widget hierarchy.
Each widget in the hierarchy is a member of a widget class, and the particular
instance of the widget is named by the application programmer.
493
Concepts
Class Names or Instance Names Can Be Used
When specifying resource names, you can use either instance names or class
names. For example, a "Done" pushbutton may have an instance name of
"done" and a class name of "XmPushButton". To set the background color for
a hypothetical "Done" pushbutton, you can use:
Application.form.row.done.background: red
Or, you can use:
Application.form.row.XmPushButton.background: red
Applications also have class and instance names. For example, an application
may have an instance name of "applic1" and a class name of "Application". To
set the background color for a hypothetical "Done" pushbutton only in the
"applic1" application, you can use:
applic1.form.row.done.background: red
Note that instance names are more specific than class names. That is, class
names may apply to many instances of the widget.
The class and instance names for the widgets in the Graphical User Interface
can be displayed by choosing Help→X Resource Names and clicking on the
"All names" button.
Wildcards Can Be Used
A wildcard may be used to match a resource specification to many different
widgets at once. For example, to set the background color of all
pushbuttons, you can use:
Application*XmPushButton.background: red
Note that resource names with wildcards are more general than those
without wildcards.
494
Concepts
Specific Names Override General Names
A more specific resource specification will override a more general one when
both apply to a particular widget or application.
The names for the application and the main window widget in HP64_Softkey
applications have been chosen so that you may specify custom resource
values that apply in particular situations:
Apply to ALL HP64_Softkey applications:
HP64_Softkey*<resource>: <value>
Apply to specific types of HP64_Softkey applications:
emul*<resource>: <value> (for the emulator)
perf*<resource>: <value> (for the performance analyzer)
Apply to all HP64_Softkey applications, but only when they are
connected to a particular type of microprocessor:
*m6833x*<resource>: <value> (for the 6833x)
*m68020*<resource>: <value> (for the 68020)
Apply to a specific HP64_Softkey application connected to a specific
processor:
perf.m6833x*<resource>: <value> (for the 6833x perf. analyzer)
emul.m68020*<resource>: <value> (for the 68020 emulator)
If all four examples above are used for a particular resource, #3 will override
#2 for all applications connected to a 6833x emulator, and #4 will override #2,
but only for the specifically mentioned type of microprocessor.
When modifying resources, your resource paths must either match, or be
more specific than, those found in the application defaults file.
How X Resource Specifications are Loaded
When the Graphical User Interface starts up, it loads resource specifications
from a set of configuration files located in system directories as well as
user-specific locations.
495
Concepts
HP-UX
SunOS
Application Default Resource Specifications
Default resource specifications for an application are placed in a system
directory:
/usr/lib/X11/app-defaults
/usr/openwin/lib/X11/app-defaults
The name of the Graphical User Interface application defaults file is
HP64_Softkey (same as the application class name). This file is
well-commented and contains information about each of the X resources you
can modify. You can easily view this file by choosing Help→Topic and
selecting the "X Resources: App Default File" topic. Do not modify the
application defaults file; any changes to this file will affect the appearance
and behavior of the application for all users.
User-Defined Resource Specifications
User-defined resources (for any X application) are located in the X server’s
RESOURCE_MANAGER property or in the user’s $HOME/.Xdefaults file.
Load Order
Resource specifications are loaded from the following places in the following
order:
The application defaults file. For example,
/usr/lib/X11/app-defaults/HP64_Softkey when the operating system is
HP-UX or /usr/openwin/lib/X11/app-defaults/HP64_Softkey when the
operating system is SunOS.
The $XAPPLRESDIR/HP64_Softkey file. (The XAPPLRESDIR
environment variable defines a directory containing system-wide
custom application defaults.)
The server’s RESOURCE_MANAGER property. (The xrdb command
loads user-defined resource specifications into the
RESOURCE_MANAGER property.)
If no RESOURCE_MANAGER property exists, user defined resource
settings are read from the $HOME/.Xdefaults file.
496
Concepts
The file named by the XENVIRONMENT environment variable.
If the XENVIRONMENT variable is not set, the
$HOME/.Xdefaults-host file is read (typically contains resource
specifications for a specific remote host).
Resource specifications included in the command line with the -xrm
option.
When specifications with identical resource names appear in different places,
the latter specification overrides the former.
Scheme Files
Several of the Graphical User Interface’s X resources identify scheme files
that contain additional X resource specifications. Scheme files group
resource specifications for different displays, computing environments, and
languages.
Resources for Graphical User Interface Schemes
There are five X resources that identify scheme files:
HP64_Softkey.labelScheme:
Names the scheme file to use for labels and button text. Values can
be: Label, $LANG, or a custom scheme file name. The default uses the
$LANG environment variable if it is set and if a scheme file named
Softkey.$LANG exists in one of the directories searched for scheme
files; otherwise, the default is Label.
HP64_Softkey.platformScheme:
Names the subdirectory for the platform specific color, size, and input
scheme files. This resource should be set to the platform on which the
X server is running (and displaying the Graphical User Interface) if it
is different than the platform where the application is running. Values
can be: HP-UX, SunOS, pc-xview, or a custom platform scheme
directory name.
HP64_Softkey.colorScheme:
Names the color scheme file. Values can be: Color, BW, or a custom
scheme file name.
497
Concepts
HP64_Softkey.sizeScheme:
Names the size scheme file which defines the fonts and the spacing
used. Values can be: Large, Small, or a custom scheme file name.
HP64_Softkey.inputScheme:
Names the input scheme file which specifies mouse and keyboard
operation. Values can be: Input, or a custom scheme file name.
The actual scheme file names take the form: "Softkey.<value>".
Softkey.Label
Softkey.BW
Softkey.Color
Softkey.Large
Softkey.Small
Softkey.Input
Scheme File Names
There are six scheme files provided with the Graphical User Interface. Their
names and brief descriptions of the resources they contain follow.
Defines the labels for the fixed text in the interface. Such things as menu
item labels and similar text are in this file. If the $LANG environment
variable is set, the scheme file "Softkey.$LANG" is loaded if it exists;
otherwise, the file "Softkey.Label" is loaded.
Defines the color scheme for black and white displays. This file is chosen if
the display cannot produce at least 16 colors.
Defines the color scheme for color displays. This file is chosen if the display
can produce 16 or more colors.
Defines the size scheme (that is, the window dimensions and fonts) for high
resolution displays (1000 pixels or more vertically).
Defines the size scheme (that is, the window dimensions and fonts) for low
resolution displays (less than 1000 pixels vertically).
Defines the input scheme (that is, the button and key bindings for the
mouse and keyboard).
498
Concepts
Load Order for Scheme Files
Scheme files are searched for in the following directories and in the following
order:
System scheme files in directory /usr/hp64000/lib/X11/HP64_schemes.
System-wide custom scheme files located in directory
$XAPPLRESDIR/HP64_schemes.
User-defined scheme files located in directory
$HOME/.HP64_schemes (note the dot in the directory name).
Custom Scheme Files
You can modify scheme files by copying them to the directory for
user-defined schemes and changing the resource specifications in the file.
For example, if you wish to modify the color scheme, and your platform is
HP-UX, you can copy the
/usr/hp64000/lib/X11/HP64_schemes/HP-UX/Softkey.Color file to
$HOME/.HP64_schemes/HP-UX/Softkey.Color and modify its resource
specifications.
You can create custom scheme files by modifying the X resource for the
particular scheme and by placing the custom scheme file in the directory for
user-defined schemes. For example, if the following resource specifications
are made:
HP64_Softkey.platformScheme:
HP64_Softkey.colorScheme:
HP-UX
MyColor
The custom scheme file would be:
$HOME/.HP64_schemes/HP-UX/Softkey.MyColor
499
Concepts of the EMSIM and EMRAM
The 6833x processors provide an array of on-chip peripherals which are
configured and used via memory mapped registers. These registers directly
control many aspects of the external operation of the processor. The most
notable of these on-chip peripherals is the SIM (System Integration Module).
For example, address bits A19 through A23 can be configured as either
address bits, chip select control signals, or discrete output port signals.
Selection of these alternative uses drastically changes the external behavior
of the processor. Internal to the processor, the full 24-bit address and bus
control signals are always maintained. What is seen external to the processor
is determined by the current contents of the SIM register set.
Most of the 6833x processors also have internal, on-board, static RAM which
can be configured to be addressable anywhere within the address range. The
processor RAM register set is used to enable this on-board RAM and to define
where it is currently positioned in the 24-bit address space.
The emulator needs access to the full 24-bit address, function codes, and
other control signals for proper operation of the emulation bus analyzer and
the emulation memory system. To provide this access when these signals are
not available external to the processor, an external bus decoder is designed
into the emulator; it recreates these signals.
The following is a view of the emulator implementation:
500
Concepts
The emulator has been designed to ensure that the emulation-bus analyzer
and the emulation memory system will have access to the equivalent of the
internal processor 24-bit address bus, function codes, and size information.
The external bus decoder circuitry can recreate these signals for all possible
combinations of processor pin usage that make sense to the target system.
The external bus decoder must be given knowledge of how the processor
pins will be used; this knowledge is defined by the EMSIM and EMRAM
register sets.
Because the emulation-bus analyzer always receives the full 24-bit address,
the user can trace activity based upon the way the code was written, not on
the chip selects that are used to access the code. The analyzer can display
address symbols in the trace list and accept symbolic address information
entered in trace commands.
Because the emulation memory system also receives the full 24-bit address,
memory can be allocated (mapped) between the target system and emulation
(overlay) memory based upon the full address, not upon chip selects and a
subset of the full address bus. When a program download is performed, the
program information can be properly directed to emulation or target memory
based upon the full 24-bit address contained in the executable file.
The concept of register copies has been implemented in order to accomplish
external bus decoding. As part of the emulator configuration, the user can
indicate the desired SIM and RAM values by loading the EMSIM and EMRAM
copy registers. Once these register copies have been loaded, memory
resources (either emulation or target memory) can be accessed in the same
manner that the processor will access them when running target code. Note
that the default programming of the EMSIM and EMRAM registers is exactly
the same as the reset values of the SIM and RAM registers, as defined by the
Motorola 6833x User Manuals.
In addition to providing the programming knowledge for the external bus
decoder, the EMSIM and EMRAM registers provide a very helpful feature.
Suppose the emulator user wants to load target memory RAM which has been
implemented to be accessible via processor chip selects. In order to access
this memory, the processor SIM registers must typically be changed from the
reset default values. This can be done by individually modifying each SIM
register or by running some processor initialization code. If the EMSIM
registers hold the desired values, it can also be done by simply transferring
the EMSIM registers into the SIM registers. As a convenience to the user,
this transfer is performed automatically each time the monitor is entered
from emulation reset. This is the only time that this transfer is performed
501
Concepts
automatically; the user can manually transfer the EMSIM to the SIM or the
SIM to the EMSIM or display their differences at any time.
Concepts of the EMRAM
Most members of the 6833x family of processors have one or more internal
RAM modules. For example, the 68335 has three internal RAM modules.
These internal RAM modules can be used like any other system RAM; that is,
their memory hardware can be assigned to support any desired address range
within the 6833x address space.
The address range that a particular internal RAM module will support, and
the qualifiers that might additionally be assigned to that address range are
defined by the values contained within registers in the 4K Module Control
Block of the processor. The values of these registers are supplied to the
emulator as part of the EMRAM copy. The emulator uses this information to
determine where memory accesses should be routed, based on the current
emulator memory map.
The emulator cannot emulate internal RAM modules when the internal RAM
is enabled. Internal RAM accesses will typically not be seen outside the
processor, and therefore emulation memory will be ignored. The only way to
get the processor to access emulation memory which has been mapped to the
same address range as internal RAM is to disable the internal RAM, by
resetting the processor. Note that internal RAM accesses may be seen
externally by the analyzer using the show cycles feature, discussed below.
By default, the internal RAM module(s) in 6833x processors are turned off.
The internal RAM(s) are enabled and positioned by loading the EMRAM
registers. The contents of the EMRAM registers are automatically copied to
the RAM registers each time the emulator enters the monitor from emulation
reset.
502
Concepts
Concepts of Show Cycles
Typically when the processor accesses internal resources (either the Module
Control Block, or internal RAM) the bus cycles are not available external to
the processor. These bus cycles can be made available by enabling a feature
of the 6833x processor called show cycles. In order to capture a trace of
activity involving these internal resources, the 6833x processor’s show cycles
feature is used to make activity available to the analyzer. Two two control
bits in the SIM_MCR register must be set to enable the show cycles feature.
Specifically, these control bits are bits 8 and 9 of the Module Control
Register. These two bits control external bus arbitration in addition to show
cycles. Refer to the Motorola 6833x User Manual for detailed information
of how to program these bits.
The external-bus decoder within the emulator will automatically decode
these "show" bus cycles if the following two conditions are met.
• Condition 1: Show cycles are enabled as described above.
• Condition 2: The /DS signal is available external to the processor.
If the pin that carries the /DS signal is programmed as a portE I/O pin, the
processor is not able to indicate a show cycle and the analyzer will not be
able to display show cycles in a trace.
The external-bus decoder within the emulator will automatically decode
these "show" bus cycles so the emulation-bus analyzer can correctly capture
them. Note that the external-bus decoder can only correctly decode one
internal RAM space at a time. For processors with multiple internal RAM
spaces, the emulator user must select which RAM space will be decoded by
answering a configuration question.
If an emulated processor has two internal RAM spaces enabled at the same
time, one at address 0, and one at address 0x200000, a configuration question
will ask you which internal RAM space to decode. If you answer the one at
address 0, then when execution is within the range controlled by the internal
RAM at address 0, decoding will be correct. When execution is within the
range controlled by the RAM at address 0x200000, captured address
information will not be correct; address information will indicate that the
accessed addresses were within the range beginning at 0, not 0x200000.
Note that even though the upper address information will be incorrect, all
other information in the trace will be correct.
503
Concepts
EMSIM/EMRAM Utility Command
Modify→SIM Registers
This capability lets the user compare and transfer register values between
the SIM and EMSIM register sets. Note even though the word "sim" is used in
the command, all operations also include the RAM and EMRAM register sets.
Modify→SIM Registers→Copy Emulator SIM to Processor SIM
This transfers the current values of the EMSIM registers into the SIM
registers. This happens automatically each time a break to the monitor from
emulation reset occurs. This ensures that the processor is prepared to
properly access memory when a program is downloaded to the emulator.
Modify→SIM Registers→Copy Processor SIM to Emulator SIM
This transfers the current values of the SIM registers into the EMSIM
registers. This is useful if initialization code that configures the processor
SIM exists, but you don’t know its values. In this case, you can use the
default configuration, run from reset to execute the initialization code, and
then configure the emulator to match the processor SIM.
Display→SIM Register Differences
This shows current differences between the SIM registers and the EMSIM
registers. This presents a list of all registers whose values are different
between the SIM and the EMSIM. Use this to compare the programming
between the SIM and EMSIM.
Display→Configuration Info
This displays information about the emulator configuration and processor
SIM programming
Display→Configuration Info→Diagnostics
This checks the emulator configuration. Any inconsistencies and potential
problems found during the check are listed. Resolve any items in the list to
ensure correct operation of the emulator.
Display→Configuration Info→Chip Selects (SIM)
This displays chip selects in the SIM (processor) register set in a table. Use
this to see how the SIM registers have configured the chip select pins of the
processor.
504
Concepts
Display→Configuration Info→Chip Selects (Emulator SIM)
This displays chip selects in the EMSIM (emulator) register set in a table.
Use this to see how the EMSIM registers have configured the chip select pins
of the emulation copy.
Display→Configuration Info→Bus Interface Ports (SIM)
This displays bus interface ports in the SIM (processor) register set in a
table. Use this to see how the SIM registers have configured the external bus
interface pins of Port C, Port E, and Port F.
Display→Configuration Info→Bus Interface Ports (Emulator SIM)
This displays bus interface ports in the EMSIM (emulator) register set in a
table. Use this to see the SIM register values that will be loaded into the
processor SIM when the monitor is entered from emulation reset.
Display→Configuration Info→Memory Map
This displays detailed information about the memory map in a table. Use this
to check the way the memory map has been configured.
Display→Configuration Info→Reset Mode Value
This displays the reset mode configuration value and operation in a table.
This is the value that will be driven onto the data bus to configure the
processor when it comes out of reset. The meaning of each data bit in the
value is shown.
Display→Configuration Info→Initialization Source Code
This displays the assembly language program to initialize the processor SIM
and RAM based on the current contents of the EMSIM and EMRAM register
sets.
505
506
Part 5
Installation Guide
507
Part 5
Instructions for installing and configuring the product.
508
15
Installation
509
Installation
This chapter shows you how to install interface software. It also shows you
how to verify installation by starting the emulator analyzer interface for the
first time. These installation tasks are described in the following sections:
• Where to find information on connecting the HP 64700 to a computer or
LAN.
• Installing HP 9000 software.
• Installing Sun SPARCsystem software.
• Verifying the installation.
For information about installing hardware, refer to the MC6833x
Emulator/Analyzer Installation/Service/Terminal Interface User’s Guide.
Minimum HP 9000 Hardware and System Requirements
The following is a set of minimum hardware and system recommendations for
operation of the Graphical User Interface on HP 9000 Series 300/400 and
Series 700 workstations.
HP-UX For Series 9000/300 and Series 9000/400 workstations, the
minimum supported version of the operating system is 7.03 or later. For
Series 9000/700 workstations, the minimum supported version of the
operating system is version 8.01.
Motif/OSF For Series 9000/700 workstations, you must also have the
Motif 1.1 dynamic link libraries installed. They are installed by default, so
you do not have to install them specifically for this product, but you
should consult your HP-UX documentation for confirmation and more
information.
Hardware and Memory Any workstation used with the Graphical
User Interface should have a minimum of 16 megabytes of memory.
Series 300 workstations should have a minimum performance equivalent
to that of a HP 9000/350. A color display is also highly recommended.
From here, you should proceed to the section titled "Installation for HP 9000
Hosted Systems" for instructions on how to install, verify, and start the
Graphical User Interface on HP 9000 systems.
510
Installation
Minimum Sun SPARCsystem Hardware and System Requirements
The following is a set of minimum hardware and system recommendations for
operation of the Graphical User Interface on Sun SPARCsystem (SunOS or
Solaris) workstations.
SunOS The Graphical User Interface software is designed to run on a
Sun SPARCsystem with SunOS version 4.1 or 4.1.1 or greater, and Solaris
version 2.3. Each tape uses the QIC-24 data format.
64700 Operating Environment The Graphical User Interface requires
version A.04.10 or greater of the 64700 Operating Environment. (The
Graphical User Interface version is A.04.00.)
Hardware and Memory Any workstation used with the Graphical User
Interface should have a minimum of 16 megabytes of memory. A color
display is also highly recommended.
From here, you should proceed to the section titled "Installation for Sun
SPARCsystems" for instructions on how to install, verify, and start the
Graphical User Interface on SPARCsystem workstations.
511
Connecting the HP 64700 to a Computer or LAN
Refer to the HP 64700 Series Installation/Service Guide for instructions on
connecting the HP 64700 to a host computer (via RS-422 or RS-232) or LAN
and setting the HP 64700’s configuration switches. (RS-422 and RS-232 are
only supported on HP 9000 Series 300/400 machines.)
512
Installing HP 9000 Software
This section shows you how to install the Graphical User Interface on
HP 9000 workstations. These instruction also tell you how not to install the
Graphical User Interface if you want to use just the conventional Softkey
Interface.
This section shows you how to:
• Install the software from the media.
• Verify the software installation.
• Start the X server and the Motif Window Manager (mwm), or start
HP VUE.
• Set the necessary environment variables.
Step 1. Install the software from the media
The tape that contains the Graphical User Interface software may contain
several products. Usually, you will want to install all of the products on the
tape. However, to save disk space, or for other reasons, you can choose to
install selected filesets.
If you plan on using the Softkey Interface instead of the Graphical User
Interface, you can save about 3.5 megabytes of disk space by not installing
the XUI suffixed filesets in the "64700 Operating Environment" and
"<processor-type> Emulation Tools" partitions. (Also, if you choose not to
install the Graphical User Interface, you will not have to use a special
command line option to start the Softkey Interface.)
Refer to the information on updating HP-UX in your HP-UX documentation
for instructions on viewing partitions and filesets and marking filesets that
should not be loaded.
The following sub-steps assume that you want to install all products on the
tape.
1 Become the root user on the system you want to update.
2 Make sure the tape’s write-protect screw points to SAFE.
3 Put the product media into the tape drive that will be the source
device for the update process.
513
Installation
Step 2. Set the necessary environment variables
4 Confirm that the tape drive BUSY and PROTECT lights are on. If the
PROTECT light is not on, remove the tape and confirm the position
of the write-protect screw. If the BUSY light is not on, check that the
tape is installed correctly in the drive and that the drive is operating
correctly.
5 When the BUSY light goes off and stays off, start the update program
by entering
/etc/update
at the HP-UX prompt.
6 When the HP-UX update utility main screen appears, confirm that the
source and destination devices are correct for your system. Refer to
the information on updating HP-UX in your HP-UX documentation if
you need to modify these values.
7 Select "Load Everything from Source Media" when your source and
destination directories are correct.
8 To begin the update, press the softkey <Select Item>. At the next
menu, press the softkey <Select Item> again. Answer the last prompt
with
y
It takes about 20 minutes to read the tape.
9 When the installation is complete, read /tmp/update.log to see the
results of the update.
Step 2. Set the necessary environment variables
The DISPLAY environment variable must be set before the Graphical User
Interface will start. Also, you should modify the PATH environment variable
to include the "/usr/hp64000/bin" directory, and, if you have installed
software in a directory other than "/", you need to set the HP64000
environment variable.
The following instructions show you how to set these variables at the UNIX
prompt. Modify your ".profile" or ".login" file if you wish these environment
variables to be set when you log in. The following instructions also assume
that you’re using "sh" or "ksh"; if you’re using "csh", environment variables are
set using the "setenv <VARIABLE> <value>" command.
514
Installation
Step 2. Set the necessary environment variables
1 Set the DISPLAY environment variable by entering
DISPLAY=<hostname>:<server_number>.<screen_number>
export DISPLAY
For example:
DISPLAY=myhost:0.0; export DISPLAY
Consult the X Window documentation supplied with the UNIX system
documentation for an explanation of the DISPLAY environment variable.
2 Set the HP64000 environment variable.
If you installed the software relative to a directory other than the root
directory, it is strongly recommended that you use a symbolic link to make
the software appear to be under /usr/hp64000. For example, if you installed
the software relative to directory /users/team, you would enter
ln -s /users/team/usr/hp64000 /usr/hp64000
If you installed the HP 64000 software relative to the root directory, "/", or
established a symbolic link to /usr/hp64000, then you would enter
HP64000=/usr/hp64000; export HP64000
If you did not install relative to the root directory, or do not wish to establish
a symbolic link, you can set the HP64000 variable to the full path that
contains the HP 64000 software. Again, if you installed relative to
/users/team, you would enter
HP64000=/users/team/usr/hp64000; export HP64000
3 Set the PATH environment variable to include the usr/hp64000/bin
directory by entering
PATH=$PATH:$HP64000/bin; export PATH
Including usr/hp64000/bin in your PATH relieves you from prefixing
HP 64700 executables with the directory path.
4 Set the MANPATH environment variable to include the
$HP64000/man and $HP64000/contrib/man directories by entering
MANPATH=$MANPATH:$HP64000/man:$HP64000/contrib/man
export MANPATH
Including these directories in your MANPATH variable lets you access the
on-line "man" page information included with the software.
515
Installation
Step 3. Verify the software installation
Step 3. Verify the software installation
A number of new filesets were installed on your system during the software
installation process. This and following steps assume that you chose to load
the Graphical User Interface filesets.
You can use this step to further verify that the filesets necessary to
successfully start the Graphical User Interface have been loaded and that
customize scripts have run correctly. Of course, the update process gives you
mechanisms for verifying installation, but these checks can help to
double-check the install process.
1 Verify the existence of the HP64_Softkey file in the
/$hp64000/X11/app-defaults subdirectory by entering
ls /$hp64000/X11/app-defaults/HP64_Softkey at the HP-UX
prompt.
Finding this file verifies that you loaded the correct fileset and also verifies
that the customize scripts executed because this file is created from other
files during the customize process.
2 Examine /$hp64000/X11/app-defaults/HP64_Softkey near the end
of the file to confirm that there are resources specific to your
emulator.
Near the end of the file, there will be resource strings that contain references
to specific emulators. For example, if you installed the Graphical User
Interface for the 6833x emulator, resource name strings will have m6833x
embedded in them.
After you have verified the software installation, you must start the X server
and an X window manager (if you are not currently running an X server). If
you plan to run the Motif Window Manager (mwm), or similar window
manager, continue with Step 4a of these instructions. If you plan to run
HP VUE, skip to Step 4b of these instructions.
516
Installation
Step 4a. Start the X server and the Motif Window Manager (mwm)
Step 4a. Start the X server and the Motif Window
Manager (mwm)
If you are not already running the X server and a window manager, do so
now. The X server is required to use the Graphical User Interface because it
is an X Windows application. A window manager is not required to execute
the interface, but, as a practical matter, you must use some sort of window
manager with the X server.
• Start the X server by entering x11start at the HP-UX prompt.
Consult the X Window documentation supplied with the HP-UX operating
system documentation if you do not know about using X Windows and the X
server.
After starting the X server and Motif Window Manager, continue with step 2
of these instructions.
Step 4b. Start HP VUE
If you are running the X server under HP VUE and have not started HP VUE,
do so now.
HP VUE is a window manager for the X Window system. The X server is
executing underneath HP VUE. Unlike the Motif Window Manager, HP VUE
provides a login shell and is your default interface to the HP 9000 workstation.
517
Installing Sun SPARCsystem Software
This section shows you how to install the Graphical User Interface on Sun
SPARCsystem workstations. These instructions also tell you how not to
install the Graphical User Interface if you want to use just the conventional
Softkey Interface.
This section shows you how to:
1 Install the software from the media.
2 Start the X server and OpenWindows.
3 Set the necessary environment variables.
4 Verify the software installation.
5 Map your function keys.
Step 1. Install the software from the media
The tape that contains the Graphical User Interface software may contain
several products. Usually, you will want to install all of the products on the
tape. However, to save disk space, or for other reasons, you can choose to
install selected filesets.
If you plan on using the conventional Softkey Interface instead of the
Graphical User Interface, you can save about 3.5 megabytes of disk space by
not installing the XUI suffixed filesets. (Also, if you choose not to install the
Graphical User Interface, you will not have to use a special command line
option to start the Softkey Interface.)
Refer to the Software Installation Notice for software installation
instructions. After you are done installing the software, return here.
518
Installation
Step 2. Start the X server and OpenWindows
Step 2. Start the X server and OpenWindows
If you are not already running the X server, do so now. The X server is
required to run the Graphical User Interface because it is an X application.
• Start the X server by entering /usr/openwin/bin/openwin at the
UNIX prompt.
Consult the OpenWindows documentation if you do not know about using
OpenWindows and the X server.
Step 3. Set the necessary environment variables
The DISPLAY environment variable must be set before the Graphical User
Interface will start. Also, you should modify the PATH environment variable
to include the "usr/hp64000/bin" directory, and, if you have installed software
in a directory other than "/", you need to set the HP64000 environment
variable.
The following instructions show you how to set these variables at the UNIX
prompt. Modify your ".profile" or ".login" file if you wish these environment
variables to be set when you log in. The following instructions also assume
that you’re using "csh"; if you’re using "sh", environment variables are set in
the "<VARIABLE>=<value>; export <VARIABLE>" form.
1 The DISPLAY environment variable is usually set by the openwin
startup script. Check to see that DISPLAY is set by entering
echo $DISPLAY
If DISPLAY is not set, you can set it by entering
setenv
DISPLAY=<hostname>:<server_number>.<screen_number>
For example:
setenv DISPLAY=myhost:0.0
Consult the OpenWindows documentation for an explanation of the DISPLAY
environment variable.
519
Installation
Step 3. Set the necessary environment variables
2 Set the HP64000 environment variable.
For example, if you installed the HP 64000 software relative to the root
directory, "/", you would enter
setenv HP64000 /usr/hp64000
If you installed the software relative to a directory other than the root
directory, it is strongly recommended that you use a symbolic link to make
the software appear to be under /usr/hp64000. For example, if you installed
the software relative to directory /users/team, you would enter
ln -s /users/team/usr/hp64000 /usr/hp64000
If you do not wish to establish a symbolic link, you can set the HP64000
variable to the full path that contains the HP 64000 software; also set the
LD_LIBRARY_PATH variable to the directory containing run-time libraries
used by the HP 64000 products. Again, if you installed relative to
/users/team, you would enter
setenv HP64000 /users/team/usr/hp64000
setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:${HP64000}/lib
3 Set the PATH environment variable to include the usr/hp64000/bin
directory by entering
setenv PATH ${PATH}:${HP64000}/bin
Including usr/hp64000/bin in your PATH relieves you from prefixing
HP 64700 executables with the directory path.
4 Set the MANPATH environment variable to include the
usr/hp64000/man and usr/hp64000/contrib/man directories by
entering
setenv MANPATH ${MANPATH}:${HP64000}/man
setenv MANPATH ${MANPATH}:${HP64000}/contrib/man
Including these directories in your MANPATH variable lets you access the
on-line "man" page information included with the software.
5 If the Graphical User Interface is to run on a SPARCsystem computer
that is not running OpenWindows, include the /usr/openwin/lib
directory in LD_LIBRARY_PATH.
setenv LD_LIBRARY_PATH
${LD_LIBRARY_PATH}:/usr/openwin/lib
520
Installation
Step 4. Verify the software installation
Step 4. Verify the software installation
A number of product filesets were installed on your system during the
software installation process. Due to the complexity of installing on NFS
mounted file systems, a script that verifies and customizes these products
was also installed. This stand alone script may be run at any time to verify
that all files required by the products are in place in the file system. If
required files are not found, this script will attempt to symbolically link them
from the $HP64000 install directory to their proper locations.
• Run the script $HP64000/bin/envinstall.
Step 5. Map your function keys
If you are using the conventional Softkey Interface, map your function keys
by following the steps below.
1 Copy the function key definitions by typing:
cp $HP64000/etc/ttyswrc ~/.ttyswrc
This creates key mappings in the .ttyswrc file in your $HOME directory.
2 Remove or comment out the following line from your .xinitrc file:
xmodmap -e ’keysym F1 = Help’
If any of the other keys F1-F8 are remapped using xmodmap, comment out
those lines also.
521
Installation
Step 5. Map your function keys
3 Add the following to your .profile or .login file:
stty erase ^H
setenv KEYMAP sun
The erase character needs to be set to backspace so that the Delete key can
be used for "delete character."
If you want to continue using the F1 key for HELP, you can use use F2-F9 for
the Softkey Interface. All you have to do is set the KEYMAP variable. If you
use OpenWindows, type:
setenv KEYMAP sun.2-9
If you use xterm windows (the xterm window program is located in the
directory /usr/openwin/demo), type:
setenv KEYMAP xterm.2-9
Reminder: If you are using OpenWindows, add /usr/openwin/bin to the end of
the $PATH definition, and add the following line to your .profile:
setenv OPENWINHOME /usr/openwin
After you have mapped your function keys, you must start the X server and
an X window manager (if you are not currently running an X server).
522
Verifying the Installation
This section shows you how to:
• Determine the logical name of your emulator.
• Start the emulator/analyzer interface for the first time.
• Exit the emulator/analyzer interface.
Step 1. Determine the logical name of your emulator
The logical name of an emulator is a label associated with a set of
communications parameters in the $HP64000/etc/64700tab.net file. The
64700tab.net file is placed in the directory as part of the installation process.
1 Display the 64700tab.net file by entering
more /usr/hp64700/etc/64700tab.net at the HP-UX prompt.
2 Page through the file until you find the emulator you are going to use.
This step will require some matching of information to an emulator, but it
should not be difficult to determine which emulator you want to address.
Examples
A typical entry for a 6833x emulator connected to the LAN would appear as
follows:
#--------------------------------------------------------------------------# Channel| Logical
| Processor | Remainder of Information for the Channel
# Type | Name
|
Type
| (IP address for LAN connections)
#--------------------------------------------------------------------------lan:
em6833x
m6833x
21.17.9.143
A typical entry for a 6833x emulator connected to an RS-422 port would
appear as follows:
#------------------------------------------------------------------------------#
|
|
|
|
|Xpar|Parity|Flow|Stop|Char
# Channel| Logical
| Processor | Host | Physical |Mode|
|
|Bits|Size
# Type | Name
|
Type
| Name |
Device
|
|
|XON |
|
#
|
|
|
|
|OFF | NONE |RTS | 2 | 8
#------------------------------------------------------------------------------serial:
em6833x
m6833x
myhost /dev/emcom23 OFF
NONE RTS
2
8
523
Installation
Step 2. Start the interface with the emul700 command
Step 2. Start the interface with the emul700 command
1 Apply power to the emulator you wish to access after making sure
the emulator is connected to the LAN or to your host system.
On the HP 64700 Series Emulator, the power switch is located on the front
panel near the bottom edge. Push the switch in to turn power on to the
emulator.
2 Wait a few seconds to allow the emulator to complete its startup
initialization.
3 Choose a terminal window from which to start the Graphical User
Interface.
4 Start the Graphical User Interface by entering emul700 command
and giving the logical name of the emulator as an argument to the
command, as in
$HP64000/bin/emul700 <logical_name> &
or
emul700 <logical name> &
if $HP64000/bin is in your path.
If you are running the X server, if the Graphical User Interface is installed,
and if your DISPLAY environment variable is set, the emul700 command will
start the Graphical User Interface. Otherwise, emul700 starts the
conventional Softkey Interface.
You should include an ampersand ("&") with the command to start the
Graphical User Interface as a background process. Doing so frees the
terminal window where you started the interface so that the window may still
be used.
5 Optionally start additional Graphical User Interface windows into the
same emulation session by repeating the previous step.
You can also choose to use the conventional Softkey Interface under X
Windows, but you must include a command line argument to emul700 to
override the default Graphical User Interface. Start the conventional interface
by entering
emul700 -u skemul <logical name>
524
Installation
Step 3. Exit the Graphical User Interface
Example
Suppose you have discovered that the logical name for a 6833x emulator
connected to the LAN is "em6833x". To start the Graphical User Interface
and begin communicating with that emulator, enter (assuming your $PATH
includes $HP64000/bin)
emul700 em6833x
After a few seconds, the Graphical User Interface Emulator/Analyzer window
should appear on your screen. The window will be similar to the following:
Step 3. Exit the Graphical User Interface
1 Position the mouse pointer over the pulldown menu named "File" on
the menu bar at the top of the interface screen.
2 Press and hold the command select mouse button until the File menu
appears.
3 While continuing to hold the mouse button down, move the mouse
pointer down the menu to the "Exit" menu item.
4 Display the Exit cascade menu by moving the mouse pointer to the
right edge of the Exit menu choice. There is an arrow on the right
edge of the menu item.
5 Choose "Released" from the cascade menu.
The interface will terminate and release the emulator for use by others.
525
526
16
Installing/Updating Emulator
Firmware
527
Installing/Updating Emulator Firmware
The 6833x emulator firmware is included with the emulator/analyzer
interface software, and the program that downloads emulator firmware is
included with the HP B1471 64700 Operating Environment product.
(The firmware, and the program that downloads it into the control card, are
also included with the 6833x emulator probe on an MS-DOS format floppies.
The floppies are for users that do not have hosted interface software.)
Before you can update emulator firmware, you must have already installed
the emulator into the HP 64700, connected the HP 64700 to a host computer
or LAN, and installed the emulator/analyzer interface and HP B1471 software
as described in the "Installation" chapter.
This chapter describes how to:
• Update firmware with the "progflash" command.
• Display current firmware version information.
528
Installing/Updating Emulator Firmware
To update emulator firmware with "progflash"
To update emulator firmware with "progflash"
• Enter the progflash -v <emul_name> <products ...> command.
The progflash command downloads code from files on the host computer into
Flash EPROM memory in the HP 64700.
The -v option means "verbose". It causes progress status messages to be
displayed during operation.
The <emul_name> option is the logical emulator name as specified in the
/usr/hp64000/etc/64700tab.net file.
The <products> option names the products whose firmware is to be updated.
If you enter the progflash command without options, it becomes interactive.
If you don’t include the <emul_name> option, it displays the logical names in
the /usr/hp64000/etc/64700tab.net file and asks you to choose one. If you
don’t include the <products> option, it displays the products which have
firmware update files on the system and asks you to choose one. (In the
interactive mode, only one product at a time can be updated.) You can abort
the interactive progflash command by pressing <CTRL>c.
Progflash will print "Flash programming SUCCEEDED" and return 0 if it is
successful; otherwise, it will print "Flash programming FAILED" and return a
nonzero (error).
You can verify the update by displaying the firmware version information.
529
Installing/Updating Emulator Firmware
To update emulator firmware with "progflash"
Examples
To install or update the HP 64782 emulator firmware:
$ progflash <RETURN>
HPB1471-19309 A.05.00 03Jan94
64700 SERIES EMULATION COMMON FILES
A Hewlett-Packard Software Product
Copyright Hewlett-Packard Co. 1988
All Rights Reserved. Reproduction, adaptation, or translation without prior
written permission is prohibited, except as allowed under copyright laws.
RESTRICTED RIGHTS LEGEND
Use , duplication , or disclosure by the Government is subject to
restrictions as set forth in subparagraph (c) (1) (II) of the Rights
in Technical Data and Computer Software clause at DFARS 52.227-7013.
HEWLETT-PACKARD Company , 3000 Hanover St. , Palo Alto, CA 94304-1181
Logical Name
1 em68k
2 em80960
3 em6833x
Processor
m68000
i80960
m6833x
Number of Emulator to Update? (intr (usually cntl C or DEL) to abort)
To update firmware in the HP 64700 that contains the 6833x emulator, enter
"3".
1
2
3
4
5
Product
64700
64703/64704/64706/64740
64744
64782
64760
Number of Product to Update? (intr (usually cntl C or DEL) to abort)
530
Installing/Updating Emulator Firmware
To update emulator firmware with "progflash"
To update the HP 64782 6833x emulator firmware, enter "4".
Enable progress messages? [y/n] (y)
To enable status messages, enter "y".
Checking System firmware revision...
Mainframe is a 64700B
Reading configuration from ’/usr/hp64000/inst/update/64782.cfg’
ROM identifier address = 2FFFF0H
Required hardware identifier = 1FFFH, 12FFH, 1201H, 1202H, 1203H, 1204H, 1205H,
1206H
Control ROM start address = 280000H
Control ROM size = 40000H
Control ROM width = 16
Programming voltage control address = 2FFFFEH
Programming voltage control value = FFFFH
Programming voltage control mask = 0H
Rebooting HP64700...
Checking Hardware id code...
Erasing Flash ROM
Downloading ROM code: /usr/hp64000/inst/update/64782.X
Code start 280000H (should equal control ROM start)
Code size 2348CH (must be less than control ROM size)
Finishing up...
Rebooting HP64700...
Flash programming SUCCEEDED
$
You could perform the same update as in the previous example with the
following command:
$ progflash -v em6833x 64782 <RETURN>
531
Installing/Updating Emulator Firmware
To display current firmware version information
To display current firmware version information
• Use the Terminal Interface ver command to view the version
information for firmware currently in the HP 64700.
When using the Graphical User Interface or Softkey Interface, you can enter
Terminal Interface commands with the pod_command command. For
example:
display pod_command <RETURN>
pod_command "ver" <RETURN>
Examples
The Terminal Interface ver command displays information similar to:
Copyright (c) Hewlett-Packard Co. 1987
All Rights Reserved. Reproduction, adaptation, or translation without prior
written permission is prohibited, except as allowed under copyright laws.
HP64700B Series Emulation System
Version:
B.01.00 20Dec93
Location: Flash
System RAM:1 Mbyte
HP64782C Motorola 68332 Emulator
Version:
A.03.00
Control:
HP 64748C Emulation Control Board
Speed:
20.1 MHz
Memory:
1024 Kbytes
BANK 0:
HP 64171B (35 ns) or HP 64172B (20 ns) 1 MByte Memory Module
HP64740 Emulation Analyzer
Version:
A.02.02 13Mar91
532
Installing/Updating Emulator Firmware
If there is a power failure during a firmware update
If there is a power failure during a firmware update
If there is a power glitch during a firmware update, some bits may be lost
during the download process, possibly resulting in an HP 64700 that will not
boot up.
Repeat the firmware update process.
If the HP 64700 is connected to the LAN in this situation and you are
unable to connect to the HP 64700 after the power glitch, try repeating
the firmware update with the HP 64700 connected to an RS-232 or
RS-422 interface.
533
534
Glossary
access mode
analyzer
Specifies the types of cycles used to access target system memory locations.
For example a "byte" access mode tells the monitor program to use load/store
byte instructions to access target memory.
An instrument that captures data on signals of interest at discreet periods.
background
The emulator mode in which foreground operation is suspended so the
emulation processor can be used for communication with the emulation
controller. The background monitor does not occupy any processor address
space.
background
emulation
monitor
An emulation monitor program that does not execute as part of the user
program, and therefore, operates in the emulator’s background mode.
background
memory
Memory space reserved for the emulation processor when it is operating in
the background mode. Background memory does not take up any of the
microprocessor’s address space.
display mode
embedded
microprocessor
system
emulation bus
analyzer
emulation
monitor
program
When displaying memory, this mode tells the emulator the size of the
memory locations to display. When modifying memory, the display mode
tells the emulator the size of the values to be written to memory.
The microprocessor system which the emulator plugs into.
The internal analyzer that captures emulator bus cycle information
synchronously with the processor’s clock signal.
A program that is executed by the emulation processor which allows the
emulation controller to access target system resources. For example, when
you display target system memory locations, the monitor program executes
microprocessor instructions that read the target memory locations and send
their contents to the emulation controller.
535
Glossary
emulator
An instrument that performs just like the microprocessor it replaces, but at
the same time, it gives you information about the operation of the processor.
An emulator gives you control over target system execution and allows you to
view or modify the contents of processor registers, target system memory,
and I/O resources.
foreground
The mode in which the emulator is executing the user program. In other
words, the mode in which the emulator operates as the target microprocessor
would.
global restart
prestore
When the same secondary branch condition is used for all terms in the
analyzer’s sequencer, and secondary branches are always back to the first
term.
The analyzer feature that allows up to two states to be stored before normally
stored states. This feature is useful when you want to find the cause of a
particular state. For example, if a variable is accessed from many different
places in the program, you can qualify the trace so that only accesses of that
variable are stored and turn on prestore to find out where accesses of that
variable originate from.
primary
sequencer
branch
Occurs when the analyzer finds the primary branch state specified at a
certain level and begins searching for the states specified at the primary
branch’s destination level.
real-time
Refers to continuous execution of the user program without interference
from the emulator. (Such interference occurs when the emulator temporarily
breaks into the monitor so that it can access register contents or target
system memory or I/O.)
secondary
sequencer
branch
Occurs when the analyzer finds the secondary branch state specified at a
certain level before it found the primary branch state and begins searching
for the states specified at the secondary branch’s destination level.
sequence terms
sequencer
Individual levels of the sequencer. The HP 64705A analyzer provides 8
sequence terms.
The part of the analyzer that allows it to search for a certain sequence of
states before triggering.
536
Glossary
sequencer
branch
target system
trace
trigger
Occurs when the analyzer finds the primary or secondary branch state
specified at a certain level and begins searching for the states specified at
another level.
The microprocessor system which the emulator plugs into.
A collection of states captured on the emulation bus (in terms of the
emulation bus analyzer) or on the analyzer trace signals (in terms of the
external analyzer) and stored in trace memory.
The captured analyzer state about which other captured states are stored.
The trigger state specifies when the trace measurement is taken.
537
538
Index
A
about, trigger position specification,
209-210
absolute files, 387
loading, 140
loading without symbols, 141
storing memory contents into, 142
access size (target memory), 535
action keys, 25
custom, 330
operation, 72
with command files, 330
with entry buffer, 71-72
activity measurements (SPMT), 257
additional symbols for address, 266
confidence level, 267
error tolerance, 267
interpreting reports, 265-274
mean, 265
relative and absolute counts, 266
standard deviation, 266
symbols within range, 266
trace command setup, 260
address
not range command, 212
values, 211
address (analyzer state qualifier softkey),
208, 407, 422
address overlays, memory mapping, 117
address qualifiers, 208
address range command
range command, 212
address range file format (SPMT
measurements), 262
after, trigger position specification,
209-210
ambiguous address error message, 117
analyzer, 535
arming other HP 64700 Series analyzers,
5
breaking emulator execution into the
monitor, 4
breaking execution of other HP 64700
Series emulators, 5
definition, 4
general description, 4
occurrence count, 213
state qualifiers, 208
trace at EXECUTE, 311
trigger condition, 209-210
using the, 194
analyzer probe
assembling, 291
connecting to the target system, 293
analyzer status
occurrence left information, 200
sequence term information, 200
app-defaults directory
HP 9000 computers, 496
Sun SPARCsystem computers, 496
application resource
See X resource
arm information, 199
arm_trig2, in trace command, 437
B
background, 535
emulation monitor, 535
memory, 535
tracing, 121
background execution, tracing, 121
bases (number), 204
bbaunload command, syntax, 347
before, trigger position specification,
209-210
binary numbers, 204
BKPT (breakpoint vector)
generally, 160-161
blocks (emulation memory), size of, 109
BNC
connector, 5, 304
trigger signal, 306
break command, 157, 166-167
syntax, 348
breakpoints, 34
copying to a file, 188
disabling execution breakpoints, 163
displaying and seeing their status,
168-169
enabling, 162
generally, 160-161
setting temporary breakpoints, 165
breaks on write to ROM, 120
C
capture continuous stream of execution,
219-222
cascade menu, 65
cautions
BNC accepts only TTL voltage levels, 309
CMB 9-pin port is NOT for RS-232C, 307
protect emulator against static discharge,
52
real-time dependent target system
circuitry, 105
changing
column width, 244
directory context in configuration
window, 101
directory context in emulator/analyzer
window, 152
symbol context, 153
characterization of memory, 111
class name, X applications, 494
client, X, 322
clock source selection, emulator
configuration, 105
clocks
See also slave clocks
CMB (coordinated measurement bus),
304
EXECUTE line, 306, 349
HP 64700 connection, 307-308
READY line, 305
signals, 305
TRIGGER line, 305
cmb_execute command, 312, 349
color scheme, 324, 328, 498
columns in main display area, 325
command buttons, 26
command files, 389
other things to know about, 87
passing parameters, 86
command line, 25
Command Recall dialog box, 26
Command Recall dialog box, operation,
80
copy-and-paste to from entry buffer, 72
editing entry area with popup menu, 79
editing entry area with pushbuttons, 79
entering commands, 78
entry area, 25
executing commands, 78
help, 81
keyboard use of, 82
on-line help, 84-87
539
Index
recalling commands with dialog box, 80
turning on or off, 77, 325
command paste mouse button, 27
Command Recall dialog box operation, 73
command select mouse button, 27
commands, 82
combining on a single command line, 82
completion, 82
editing in command line entry area, 79
entering in command line, 78
executing in command line, 78
keyboard entry, 82
line erase, 83
map, 118
recall, 83
recalling with dialog box, 80
summary, 346
word selection, 83
configuration context
displaying from configuration window,
101
configuration info
copy command, 351
copying to a file, 188
display command, 360-362
configuration, emulator
background states, tracing, 121
breaks on writes to ROM, 120
exiting the interface, 103
loading from file, 103
modifying a section, 98
starting the interface, 96-97
storing, 100
context
changing directory in configuration
window, 101
changing directory in emulator/analyzer
window, 152
changing symbol, 153
displaying directory from configuration
window, 101
displaying directory from
emulator/analyzer window, 152
displaying symbol, 152
coordinated measurements, 313
break_on_trigger syntax of the trace
command, 313
definition, 304
540
copy command, 350-352
configuration info, 351
data, 351
display, 351
error_log, 351
event_log, 351
global symbols, 351
help, 351
local_symbols_in, 353
memory, 354-355
pod_command, 351
registers, 356
software breakpoints, 352
status, 352
trace, 357
copy-and-paste
addresses, 69
from entry buffer, 72
multi-window, 69, 72
symbol width, 69
to entry buffer, 68-70
copying
breakpoints to a file, 188
configuration info to a file, 188
data values to a file, 188
display area to file, 188
emulator status to a file, 189
error log to file, 189
event log to file, 189
global symbols to file, 189
local symbols to file, 189
memory to file, 188
pod commands to a file, 189
registers to file, 188
trace listing to file, 188
count states, 214-215
count time, 214-215
count, occurrence, 213
cursor buttons, 26
adding items to the existing display,
179
clearing the display and adding a new item,
179
copying to a file, 188
displaying, 178
data values, displaying, 38
decimal numbers, 204
demos, setting up, 332-334
demultiplexing, using slave clocks for,
298-300
demux, slave clock mode, 299
dequeuer
how it works, 238
device table file, 32, 55-56
dialog box, 73-75
Command Recall, operation, 73, 80
Directory Selection, 152
Directory Selection, operation, 73, 75
Entry Buffer Recall, operation, 71, 73
File Selection, operation, 73-74
Trace Specification Selection, operation,
202
dialog box, trace options, 232
directory context
changing in configuration window, 101
changing in emulator/analyzer window,
152
displaying from configuration window,
101
displaying from emulator/analyzer
window, 152
Directory Selection dialog box operation,
73, 75
display area, 25
columns, 325
copying to a file, 188
lines, 325-326
display command, 358-359
configuration info, 360-362
data, 363-365
D
error_log, 358
data
event_log, 358
copy command, 351
global_symbols, 366
display command, 363-365
data (analyzer state qualifier softkey), 208, local_symbols_in, 367
memory, 368-371
407, 422
memory mnemonic, 33, 173
data range command, 212
pod_command, 359
data values, 178, 211
Index
registers, 170, 372
simulated_io, 190, 192, 373
software_breakpoints, 374
status, 359
symbols, 143
trace, 197-200, 375-378
display mode, 535
display software_breakpoints command,
168-169
display trace, 231
positioning, 203
display trace absolute command, 240-241
display trace absolute status binary
command, 240-241
display trace absolute status hex
command, 240-241
display trace absolute status mnemonic
command, 240-241
display trace command, 234, 253-254
display trace count absolute command,
245-246
display trace count command, 245-246
display trace count relative command,
245-246
display trace depth command, 248
display trace dequeue off command,
238-239
display trace dequeue on command,
238-239
display trace
disassemble_from_line_number command,
235-236
align_data_from_line option, 238-239
options, 237
display trace mnemonic command,
235-236
display trace offset_by command, 247
displays, copying, 351
don’t care digits, 205
downloading absolute files, 5, 140
dual-port emulation memory, 106
duration measurements (SPMT), 275
average time, 280
confidence level, 281
error tolerance, 281
interpreting reports, 280-284
maximum time, 280
minimum time, 280
number of intervals, 280
recursion considerations, 275
selecting, 278-279
standard deviation, 281
trace command setup, 276-277
E
editing
command line entry area with popup
menu, 79
command line entry area with
pushbuttons, 79
file, 185-187, 325
file at address, 185, 325
file at program counter, 185
file at symbol from symbols screen, 185
file from memory display screen, 185
8-bit memory, substituting emulation
memory for, 110
embedded microprocessor system, 535
emul700, command to start the
emulator/analyzer interface, 55
emulation bus analyzer, 535
emulation memory
8-bit, substituting for, 110
block size, 109
dual-port, 106
loading absolute files, 140
emulation monitor, 535
emulation session, exiting, 62
emulation, external analyzer mode, 297
emulator, 536
configuring the, 94
device table file, 32, 55-56
general description, 4
limitations, DMA support, 109
multiple start/stop, 5, 311
plugging into a target system, 51
running from target reset, 155
status lines, predefined values for, 208
using the, 134
emulator configuration
break processor on write to ROM, 120
clock selection, 105
exiting the configuration interface, 103
load command, 387
loading from file, 103
modify command, 391
modifying a configuration section, 98
restrict to real-time runs, 105-106
starting the configuration interface,
96-97
storing, 100
trace background/foreground operation,
121
emulator status, displaying, 189
emulator/analyzer interface
exiting, 48, 61
running in multiple windows, 55
starting, 55-56
end command, 48, 62, 379
entry
pod commands, 90-91
simulated io, 191
entry buffer, 25
address copy-and-paste to, 69
clearing, 68
copy-and-paste from, 72
copy-and-paste to, 68-70
Entry Buffer Recall dialog box, 25
Entry Buffer Recall dialog box, operation,
71
multi-window copy-and-paste from, 72
operation, 71
recall button, 25
recalling entries, 71
symbol width and copy-and-paste to, 69
text entry, 68
with action keys, 71-72
with pulldown menus, 71
Entry Buffer Recall dialog box operation,
73
environment variables (UNIX)
HP64KPATH, 88
HP64KSYMBPATH, 429
PATH, 55
Softkey Interface, setting while in, 183
eram, memory characterization, 111
erom, memory characterization, 111
error log
copy command, 351
display command, 358
to file, 189
event log, 59
copy command, 351
display command, 358
541
Index
to file, 189
event_log, 59
EXECUTE
CMB signal, 306
tracing at, 311
execution breakpoints
disabling, 163
displaying and seeing their status,
168-169
enabling, 162
setting (temporary breakpoints), 165
exit, emulator/analyzer interface, 48, 61
exiting
emulation session, 62
emulator/analyzer windows, 61
expressions, 204
--EXPR-- syntax, 380-382
external analyzer
configuration, 294
general description, 4
labels, 296, 301
mode, 297
should emulation control?, 296
using, 290
F
file
breakpoints, copying to, 188
configuration info, copying to, 188
data values, copying to, 188
display area to, 188
editing, 185-187
editing at address, 185
editing at program counter, 185
editing at symbol from symbols screen,
185
editing from memory display screen,
185
emulator configuration, 100
emulator configuration load, 103
emulator status, copying to, 189
error log to, 189
event log to, 189
global symbols to, 189
local symbols to, 189
memory to, 188
pod commands, copying to, 189
registers to, 188
542
trace listing to, 188
file extensions
.EA configuration files, 100
file formats
address ranges for SPMT measurements,
262
time ranges for SPMT measurements,
278
File Selection dialog box operation, 73-74
firmware updates, 5
firmware version, 532
foreground, 536
foreground operation, tracing, 121
formal parameters (command files), 86
forward command, syntax, 384
function codes
mapping memory, 117-119
memory mapping, 117
need for separately linked modules,
117
functions, step over, 173
G
global restart qualifier, 536
global symbols, 33, 205, 366
copy command, 351
display command, 144, 366
initializing the SPMT measurement with,
262
to file, 189
grabbers, connecting to analyzer probe,
292
guarded memory accesses, 111, 118
H
halfbright, 78-79
hand pointer, 25, 68
hardware
HP 9000 memory needs, 510
HP 9000 minimum performance, 510
HP 9000 minimums overview, 510
SPARCsystem memory needs, 511
SPARCsystem minimum performance,
511
SPARCsystem minimums overview,
511
help
command line, 81
copy command, 351
help index, 76
on-line, 84-87
softkey driven information, 84-87
help command, 385-386
help index, displaying, 76
hexadecimal numbers, 204
high level interface
using pod commands within, 219-222
HP 64700 Operating Environment,
minimum version, 511
HP 9000
700 series Motif libraries, 510
HP-UX minimum version, 510
installing software, 513
minimum system requirements overview,
510
HP 98659 RS-422 Interface Card, 5
HP-UX, minimum version, 510
HP64KPATH, UNIX environment variable,
88
HP64KSYMBPATH environment variable,
429
I
IEEE-695 absolute file format, 140
input
pod commands, 90-91
simulated io, 191
input scheme, 324, 498
installation, 510
HP 9000 software, 513
SPARCsystem software, 518
instance name, X applications, 493-494
interactive measurements, 313
interface, emulator configuration
exiting, 103
modifying a section, 98
starting, 96-97
interface, exiting, 62
inverse video
graphical interface demo/tutorial files,
333
K
keyboard
accelerators, 67
Index
choosing menu items, 66-67
focus policy, 67
pod commands, 90-91
simulated io, 191
keyboard_to_simio, modify command, 392
dual-port emulation, 106
loading programs into, 140
mapping, 109
mnemonic format display, 173
modify command, 393-395
modifying, 177
re-assignment of emulation memory
L
blocks in mapper, 116
label scheme, 324, 328, 498
store command, 426
labels
to file, 188
configuration file, 301
memory mapper, resolution, 109
LANG environment variable, 498
LD_LIBRARY_PATH environment variable, memory mapping
block size, 109
520
function code specification, 117-119
libraries, Motif for HP 9000/700, 510
line numbers (source file), symbol display, overlaid addresses, 117
using emulation memory in place of
145
target, 118
lines in main display area, 325-326
memory recommendations
list, trace, 197-200
HP 9000, 510
load command, 387-388
SPARCsystem, 511
absolute files, 140
menu, popup menu in trace list, 233
configuration, 387
menus
trace, 388
editing command line with popup, 79
trace_spec, 388
hand pointer means popup, 25, 68
load trace command, 253-254
pulldown operation with keyboard,
load trace_spec command, 250, 252
66-67
local symbols, 205, 367
pulldown operation with mouse, 65-66
copy command, 353
mixed, slave clock mode, 298
display command, 145-148, 367
initializing the performance measurementmixing pod commands with high level
commands, 219-222
with, 263
mnemonic memory display, 33, 173
to file, 189
setting the source/symbol modes, 180
locked, end command option, 62
modes, source/symbol, 180
log_commands command, 389
modify command, 390
configuration, 391
M
keyboard_to_simio, 392
map command, 118
memory, 393-395
mapping memory, 109
register, 171, 396
maximum trace depth, 214-215
SIM registers, 397-398
memory, 354-355
modify software_breakpoints clear
activity measurements (SPMT), 257,
command, 166-167
265
modify software_breakpoints disable
characterization of, 111
command, 163
contents listed as asterisk (*), 354
modify software_breakpoints enable
copy command, 354-355
command, 162
display command, 368-371
modify software_breakpoints set
displaying, 172
command, 162-163, 165
displaying at an address, 176
displaying repetitively, 177
modify_command, trace command option,
202
module duration measurements (SPMT),
275
module usage measurements (SPMT),
275
Motif, HP 9000/700 requirements, 510
mouse
buttons, 27
choosing menu items, 65-66
multi-window
copy-and-paste from entry buffer, 72
multiple commands, 82
multiple emulator start/stop, 5
N
name_of_module command, 183
nesting command files, 85
NORMAL key, 345, 380
nosymbols, 143
notes
"perf.out" file is in binary format, 286
CMB EXECUTE and TRIGGER signals,
306
external timing analyzer does not use
configuration labels, 301
measurement errors on
recursive/multiple entry routines, 276
only one range resource available, 407
re-assignment of emulation memory
blocks by mapper, 116
some compilers emit more than one
symbol for an address, 266
step command doesn’t work when CMB
enabled, 311
trigger found but trace memory not
filled, 199
number bases, 204
numerical values, 204
O
occurrence counts, 213, 224
octal numbers, 204
offset addresses in trace list, 247
online help, 84-87
operating system
HP 64700 Series minimum version, 511
HP-UX minimum version, 510
543
Index
SunOS minimum version, 511
positioning the trace display, 203
operators, 205
power failure during firmware update, 533
overlaid addresses, memory mapping, 117 prestore qualifier, 217-218
prestore qualifiers, 536
primary branches (analyzer sequencer),
P
536
parameter passing in command files, 86
processor type, 56
parent symbol, displaying from symbols
progflash example, 530
screen, 149
program activity measurements (SPMT),
paste mouse button, 27
257, 265
PATH, UNIX environment variable, 55
program counter
perf.out, SPMT output file, 263, 279,
mnemonic memory display, 34
285-287, 399
perf32, SPMT report generator utility, 256, running from, 154
pulldown menus
285-286
choosing with keyboard, 66-67
interpreting reports, 265-274, 280-284
choosing with mouse, 65-66
options, 287
pushbutton select mouse button, 27
using the, 287-288
performance measurements
See software performance
Q
measurements
QUALIFIER, in trace command, 405-406
performance_measurement_end
qualifiers, 208
command, 399
simple trigger, 209-210
performance_measurement_initialize
slave clock, 298-300
command, 400-401
performance_measurement_run
R
command, 402
RAM, mapping emulation or target, 111
permanent software breakpoints
range resource, note on, 407
how to set, 164
RANGE, in trace command, 407-408
platform
READY, CMB signal, 305
HP 9000 memory needs, 510
real-time runs, 536
HP 9000 minimum performance, 510
commands not allowed during, 106
SPARCsystem memory needs, 511
restricting the emulator to, 105-106
SPARCsystem minimum performance, recall buffer, 25
511
columns, 331
platform scheme, 324, 497
initial content, 331
plug-in, 51
lines, 331
pod commands, 403-404
recalling entries, 71
copy command, 351
recall, command, 83
copying to a file, 189
dialog box, 80
display command, 359
recall, trace specifications dialog box, 202
display screen, 90
recursion in SPMT measurements, 275
keyboard input, 90-91
registers
pod commands used in high level
copy command, 356
interface, 219-222
display command, 372
popup menu in trace list, 233
display/modify, 170
popup menus
displaying, 39, 170
command line editing with, 79
modify, 171
hand pointer indicates presence, 25, 68
modify command, 396
544
SIM, 397
to file, 188
release_system, end command option, 48,
62, 100
repeat the previous trace command, 202
repetitive display of memory, 177
reset (emulator), commands which cause
exit from, 159
reset command, 409
reset trace display defaults, 248
reset, run from target, 155
resolution, memory mapper, 109
resource
See X resource
RESOURCE_MANAGER property, 496
restart term, 224-227
restrict to real-time runs
emulator configuration, 105-106
permissible commands, 105
target system dependency, 105
ROM
mapping emulation or target, 111
writes to, 111
RS-422, host computer interface card, 5
run command, 154, 410-411
run from reset, 155
S
scheme files (for X resources), 323, 497
color scheme, 324, 328, 498
custom, 328-329, 499
input scheme, 324, 498
label scheme, 324, 328, 498
platform scheme, 324, 497
size scheme, 324, 498
scroll bar, 25
secondary branch expression, 536
select mouse button, 27
sequencer (analyzer), 536
branch, 537
terms, 224, 536
using the, 223
sequencing and windowing specification,
230, 232-233
SEQUENCING, in trace command,
412-413
server, X, 322, 496
Index
set command, 414-418
set default command, 248
set source off command, 243
set source on command, 243
set source only command, 243
set symbols all command, 242
set symbols high command, 242
set symbols low command, 242
set symbols off command, 242
set symbols on command, 242
set width label command, 244
set width mnemonic command, 244
set width source command, 244
shell variables, 87
sig INT, 285
signals, CMB, 305
SIM registers, 397
simulated I/O, 94, 392
display command, 373
displaying screen, 190, 192
keyboard input, 191
size scheme, 324, 498
slave clocks, 298-300
softkey driven help information, 84-87
softkey pushbuttons, 26
softkeys, 82
software
installation for HP 9000, 513
installation for SPARCsystems, 518
software breakpoints
clearing all breakpoints, 168
software breakpoints
clearing, 166-167
copy command, 352
display command, 374
software performance measurements, 255,
258-274, 276-284, 286-288
absolute information, 265
activity measurements, 257
adding traces, 263, 279
duration, 275
end, 399
ending, 286
how they are made, 256
initialize, 400-401
initializing, 261-264, 278-279
initializing, default, 261
initializing, duration measurements,
status (analyzer state qualifier softkey),
278-279
208, 408, 422
initializing, user defined ranges, 261,
predefined values for, 208
278
status line, 25, 59
initializing, with global symbols, 262
status range command, 212
initializing, with local symbols, 263
status values, 211
memory activity, 257, 265
status, emulator
module duration, 275
copying to a file, 189
module usage, 275
step command, 35, 157-158, 423-424
program activity, 257, 265
step over, 173
recursion, 275
stop_trace command, 197, 425
relative information, 265
storage qualifier, 216
restoring the current measurement, 263, store command, 426-427
279
absolute files, 140, 142
run, 402
store trace command, 251
running, 285
store trace_spec command, 250, 252
trace command setup, 260
summary of commands, 346
trace display depth, 260
SunOS, minimum version, 511
source lines
switching
display in trace list, 243
directory context in configuration
set command, 417
window, 101
symbol display, 145
directory context in emulator/analyzer
source/symbol modes, setting, 180
window, 152
SPARCsystems
symbol context, 153
installing software, 518
--SYMB-- syntax, 428-434
minimum system requirements overview, symbol context
511
changing, 153
SunOS minimum version, 511
displaying, 152
specify command, 419-420
symbol file, loading, 143
specify trace disassembly options, 237
symbols, 143, 205
SPMT (Software Performance
displaying, 143
Measurement Tool)
displaying in trace list, 242
See software performance
measurements
displaying parent from symbols screen,
sq adv, captured sequence state, 225
149
SRU (Symbolic Retrieval Utilities),
global to file, 189
429-430
local to file, 189
state, external analyzer mode, 297
set command, 417
STATE, in trace command, 421-422
--SYMB-- syntax, 428-434
states
sync_sim_registers command, 435
change the number available for display, synchronous measurements, 311
248
syntax conventions, 345
static discharge, protecting the emulator system requirements
probe against, 52
HP 64700 minimum version, 511
status
HP 9000 overview, 510
copy command, 352
HP-UX minimum version, 510
display command, 359
OSF/Motif HP 9000/700 requirements,
510
545
Index
SPARCsystem overview, 511
SunOS minimum version, 511
T
target memory
loading absolute files, 140
ROM, symbols for, 143
target reset, running from, 155
target system, 537
dependency on executing code, 105
plugging the emulator into, 51
RAM and ROM, 111
temporary software breakpoints
setting, 165
terminal emulation window, opening, 189
terminal interface
commands used in high level interface,
219-222
threshold voltages, 296
time range file format (SPMT
measurements), 278
timing
external analyzer mode, 297
trace, 537
at EXECUTE, 311
continuous stream of execution,
219-222
copy command, 357
count states, 214-215
count time, 214-215
display command, 375-378
displaying count information, 245-246
displaying the, 197-200
displaying without disassembly,
240-241
listing the, 197-200
listing to file, 188
load command, 388
loading data, 253-254
loading specifications, 252
on program halt, 219
recalling trace specifications, 202
repeat the previous command, 202
reset display defaults, 248
restoring data, 250
restoring specifications, 250
saving data, 250
saving specifications, 250
546
starting, 196
stopping, 197
store command, 427
storing data, 251
Trace Specification Selection dialog box,
202
trigger position, 209-210
trace again command, 202, 252
trace command, 196, 436-438
setting up for SPMT measurements,
260
trace counting anystate command,
214-215
trace counting command, 214-215
trace counting off command, 214-215,
245-246
trace counting time command, 214-215
trace depth
how to change, 201
trace disassembly
specifying options, 237
trace display, 231
depth, SPMT measurements, 260
positioning, 203
source/symbol modes, 180
trace expression
range, 212
trace expressions
address values, 211
data values, 211
status values, 211
trace list
disassembly, 235-236
display around specific line number,
234
display source lines, 243
move through, 235
offset addresses, 247
popup menu, 233
trace on_halt command, 219
trace only command, 216
trace options dialog box, 232
trace prestore anything command,
217-218
trace prestore command, 217-218
trace signals (emulation analyzer), 206
trace_spec
load command, 388
store command, 427
tracing background operation, 121
tram, memory characterization, 111
transfer address, 155
trigger, 537
condition, 209-210
position, 209-210
position, accuracy of, 209
specifying a simple, 209-210
stop driving on break, 317
TRIGGER, CMB signal, 305
TRIGGER, in trace command, 439-440
trom, memory characterization, 111
TTL (softkey for specifying threshold
voltages), 297
tutorials, setting up, 332-334
U
uploading memory, 5
user (target) memory, loading absolute
files, 140
user program, 536
V
values, 204
predefined for analyzer state qualifiers,
208
version, firmware, 532
voltages, threshold, 296
W
wait command, 441-442
command files, using in, 85
widget resource
See X resource
WINDOW, in trace command, 443-444
windowing and sequencing specification,
230, 232-233
windows
exiting emulator/analyzer, 61
opening additional emulator/analyzer,
59
running the emulator/analyzer interface
in multiple, 55
terminal emulation, opening, 189
Index
workstation
HP 9000 memory needs, 510
HP 9000 minimum performance, 510
SPARCsystem memory needs, 511
SPARCsystem minimum performance,
511
write to ROM break, 120
X
X client, 322
X resource, 322
$XAPPLRESDIR directory, 496
$XENVIRONMENT variable, 497
.Xdefaults file, 496
/usr/hp64000/lib/X11/HP64_schemes,
499
app-defaults file, 496
class name for applications, 494
class name for widgets, 494
command line options, 497
commonly modified graphical interface
resources, 324
defined, 493
general form, 493
instance name for applications, 494
instance name for widgets, 493
loading order, 496
modifying resources, generally, 324-327
RESOURCE_MANAGER property, 496
scheme file system directory, 499
scheme files, Graphical User Interface,
497
scheme files, named, 498
schemes, forcing interface to use certain,
497
Softkey.BW, 498
Softkey.Color, 498
Softkey.Input, 498
Softkey.Label, 498
Softkey.Large, 498
Softkey.Small, 498
wildcard character, 494
xrdb, 496
xrm command line option, 497
X server, 322, 496
X Window System, 55
xbits, external analyzer label, 301
547
548
Safety
Summary of Safe Procedures
The following general safety precautions must be observed during all phases of
operation, service, and repair of this instrument. Failure to comply with these
precautions or with specific warnings elsewhere in this manual violates safety
standards of design, manufacture, and intended use of the instrument.
Hewlett-Packard Company assumes no liability for the customer’s failure to
comply with these requirements.
Ground The Instrument
To minimize shock hazard, the instrument chassis and cabinet must be connected to
an electrical ground. The instrument is equipped with a three-conductor ac power
cable. The power cable must either be plugged into an approved three-contact
electrical outlet or used with a three-contact to two-contact adapter with the
grounding wire (green) firmly connected to an electrical ground (safety ground) at
the power outlet. The power jack and mating plug of the power cable meet
International Electrotechnical Commission (IEC) safety standards.
Do Not Operate In An Explosive Atmosphere
Do not operate the instrument in the presence of flammable gases or fumes.
Operation of any electrical instrument in such an environment constitutes a definite
safety hazard.
Keep Away From Live Circuits
Operating personnel must not remove instrument covers. Component replacement
and internal adjustments must be made by qualified maintenance personnel. Do not
replace components with the power cable connected. Under certain conditions,
dangerous voltages may exist even with the power cable removed. To avoid
injuries, always disconnect power and discharge circuits before touching them.
Do Not Service Or Adjust Alone
Do not attempt internal service or adjustment unless another person, capable of
rendering first aid and resuscitation, is present.
Do Not Substitute Parts Or Modify Instrument
Because of the danger of introducing additional hazards, do not install substitute
parts or perform any unauthorized modification of the instrument. Return the
instrument to a Hewlett-Packard Sales and Service Office for service and repair to
ensure that safety features are maintained.
Dangerous Procedure Warnings
Warnings, such as the example below, precede potentially dangerous procedures
throughout this manual. Instructions contained in the warnings must be followed.
WARNING
Dangerous voltages, capable of causing death, are present in this instrument. Use
extreme caution when handling, testing, and adjusting.
Safety Symbols Used In Manuals
The following is a list of general definitions of safety symbols used on equipment
or in manuals:
Instruction manual symbol: the product is marked with this symbol when it is
necessary for the user to refer to the instruction manual in order to protect against
damage to the instrument.
Indicates dangerous voltage (terminals fed from the interior by voltage exceeding
1000 volts must be marked with this symbol).
Protective conductor terminal. For protection against electrical shock in case of a
fault. Used with field wiring terminals to indicate the terminal which must be
connected to ground before operating the equipment.
Low-noise or noiseless, clean ground (earth) terminal. Used for a signal common,
as well as providing protection against electrical shock in case of a fault. A terminal
marked with this symbol must be connected to ground in the manner described in
the installation (operating) manual before operating the equipment.
Frame or chassis terminal. A connection to the frame (chassis) of the equipment
which normally includes all exposed metal structures.
Alternating current (power line).
Direct current (power line).
Alternating or direct current (power line).
Caution
The Caution sign denotes a hazard. It calls your attention to an operating procedure,
practice, condition, or similar situation, which, if not correctly performed or
adhered to, could result in damage to or destruction of part or all of the product.
Warning
The Warning sign denotes a hazard. It calls your attention to a procedure, practice,
condition or the like, which, if not correctly performed, could result in injury or
death to personnel.
Certification and Warranty
Certification
Hewlett-Packard Company
certifies that this product met
its published specifications at
the time of shipment from the
factory. Hewlett-Packard
further certifies that its
calibration measurements are
traceable to the United States
National Bureau of Standards,
to the extent allowed by the
Bureau’s calibration facility,
and to the calibration
facilities of other
International Standards
Organization members.
Warranty
This Hewlett-Packard system
product is warranted against
defects in materials and
workmanship for a period of
90 days from date of
installation. During the
warranty period, HP will, at
its option, either repair or
replace products which prove
to be defective.
Warranty service of this
product will be performed at
Buyer’s facility at no charge
within HP service travel
areas. Outside HP service
travel areas, warranty service
will be performed at Buyer’s
facility only upon HP’s prior
agreement and Buyer shall
pay HP’s round trip travel
expenses. In all other cases,
products must be returned to
a service facility designated
by HP.
For products returned to HP
for warranty service, Buyer
shall prepay shipping charges
to HP and HP shall pay
shipping charges to return
the product to Buyer.
However, Buyer shall pay all
shipping charges, duties, and
taxes for products returned
to HP from another country.
HP warrants that its software
and firmware designated by
HP for use with an
instrument will execute its
programming instructions
when properly installed on
that instrument. HP does not
warrant that the operation of
the instrument, or software,
or firmware will be
uninterrupted or error free.
Limitation of Warranty
The foregoing warranty shall
not apply to defects resulting
from improper or inadequate
maintenance by Buyer,
Buyer-supplied software or
interfacing, unauthorized
modification or misuse,
operation outside of the
environment specifications
for the product, or improper
site preparation or
maintenance.
No other warranty is
expressed or implied. HP
specifically disclaims the
implied warranties of
merchantability and fitness
for a particular purpose.
Exclusive Remedies
The remedies provided herein
are buyer’s sole and exclusive
remedies. HP shall not be
liable for any direct, indirect,
special, incidental, or
consequential damages,
whether based on contract,
tort, or any other legal theory.
Product maintenance
agreements and other
customer assistance
agreements are available for
Hewlett-Packard products.
For any assistance, contact
your nearest Hewlett-Packard
Sales and Service Office.
Was this manual useful for you? yes no
Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Download PDF

advertising