Sei sulla pagina 1di 177

A Software Guide to

Universal Debug Engine for


TriCore AURIX, TriCore,
PowerArchitecture, Cortex,
ARM, XC2000, RH850,
SuperH SH-2A
Integrated Development Environment
for 32-bit AURIX, TriCore, PowerArchitecture, Cortex, ARM7, ARM9, ARM11, XScale, RH850, SuperH
SH-2A and for 16-bit C166, ST10, XC166, XC2000, XE166, C166CBC derivatives
 PLS 1991-2015 V 4.04.07.01
This manual contains 177 pages.

Contact us at:

EMail: support@pls-mc.com
info@pls-mc.com
WWW: http://www.pls-mc.com

PLS Programmierbare Logik & Systeme GmbH PLS Development Tools


Technologiepark Lauta 1250 Oakmead Parkway, Suite#210
D - 02991 Lauta Sunnyvale CA, 94085
Germany U.S.A.
Phone: + 49 35722 384 - 0 + 1 408 451 - 8408
Fax: + 49 35722 384 - 69 + 1 408 501 - 8808
Toll Free: + 1 877 - 77DEBUG

All rights reserved. No part of this manual may be reproduced or may be transmitted in any form or by any
means without prior written permission of PLS Programmierbare Logik & Systeme GmbH. The information in
this manual is subject to change without notice, no responsibility is assumed for its use.
Universal Debug Engine is a trademark of PLS Programmierbare Logik & Systeme GmbH. Adobe is a
registered trademark of Adobe Systems Incorporated. AURIX™, TriCore™ are trademarks of Infineon AG.
ARM7™, ARM9™, ARM11™, Cortex™ are trademarks of ARM. PowerPC is a registered trademark of
IBM Corporation. Power Architecture™ is a trademark of Power.org. WindowsXP, WindowsVista,
Windows7, Windows8 are trademarks of Microsoft Corporation. Pentium and Core™ are trademarks of
Intel Corporation. XScale, Celeron are registered trademarks of Intel Corporation. Athlon™ is a
trademark of Advanced Micro Devices, Inc. SuperH™ is a trademark of Renesas Technology Corporation.
All other names and trademarks are the property of their respective owners.
Contents
Introduction 7
Overview 7
Feedback 7
Versions of UDE 8
Delivery Contents 9
System Requirements 11

Installing of Universal Debug Engine 12


Installation Notes - before you install UDE 12
Installing Hardware 13
Static Electricity Precautions 13
Demo Version for Starterkits (via JTAG) 14
Demo Version for Starterkits (via ASC Bootstrap loader) 15
Demo Version for Easy Kits (via DAS/USB-JTAG adapter) 16
Standard Version UAD2compact (via JTAG) 17
Standard Version UAD2 and UAD2pro (via JTAG) 18
Standard Version UAD2 and UAD2pro (via DAP) 19
Standard Version UAD2 and UAD2pro (via SWD) 20
Standard Version UAD2+ (via JTAG) 21
Standard Version UAD2+ (via DAP) 22
Standard Version UAD2+ (via SWD) 23
Standard Version UAD3+ (via JTAG) 24
Standard Version UAD2 (via ASC, SSC, CAN) 25
Standard Version UAD2+ (via ASC, SSC, CAN) 26
Standard Version UAD2+ (via 3Pin) 27
Standard Version fast-PC6x / fast-PC276 (via ASC/SSC) 28
Standard Version fast-PC6x / fast-PC276 (via CAN) 29
Standard Version UAD2+ (with Trace Support) 30
Standard Version UAD3+ (with Trace support) 31
UAD2-JTAG Protector 2 for UAD2 32
UAD-JTAG Protector 2 for UAD2+ 33
Simulator Version (TSim) 34
Installing UDE Software 35
Working with the CD browser 35
Start the Installation 36
Driver Installation for Universal Access Device 37
UAD via standard parallel port interface 37
UAD2+ via IEEE1394 38
UAD3+ via IEEE1394b 39
UAD2, UAD2pro, UAD2+, UAD3+ via USB port 40
UAD2+, UAD3+ via Ethernet TCP/IP 41
Driver Installation for USB-JTAG-Port 44
USB-JTAG-Port via USB port 44
Driver Installation for USB-Key (Sentinel USB SuperPro) 45
USB-Key via USB port 45
Driver Installation for fast-PC6x Card 46
fast-PC67C/PCI via PCI Bus Host PC 46
Driver Installation for Starterkit Version 47
JTAG Parallel Port via Standard Parallel port 47
Serial Port via Standard Serial Port 47
Serial Port via USB-to-Serial Port 47

Introduction Overview 3 of 177


License Manager 48
Node-locked licensing 49
How to get the Host ID of UDE Installation 49
Setup of Node-Locked License File 51
Uninstalling or Reinstalling UDE 52
Trouble Shooting 53
Precautions 53
Latest Versions on World Wide Web 53
Known Issues with UDE 53

Getting Started 55
Examples delivered with UDE 55
A First Example with TriCore™ 56
Precautions 56
Starting Universal Debug Engine 56
Loading a TriCore Executable 58
Running and Stepping through the Application 59
Setting Breakpoints 59
CPU Registers 60
SFR Registers 60
Viewing Variables 61
Viewing Memory Locations 62
Leaving the Project 62
A Multi-Core Debugging Example with TriCore/PCP 63
Creating a New Workspace with changed configuration 63
Running the Program 64
HelloPCP Internals 64
A Multi-Core Debugging Example with TriCore2 AURIX 65
Understanding a Multi-Core Configuration 65
Creating a New Workspace 65
Preparing the Debugger 67
Show, Hide and Group Core-Related Windows 67
Loading a Multi-Core Executable 68
FLASH programming 69
Core Selection 70
Single-Core Breakpoints 71
Multi-Core Breakpoints and Stepping 72
A Multi-Core GTM Debugging Example with PowerPC MPC5746M 73
Creating a New Workspace 73
Preparing the debugger 74
Loading a multi-core Executable 74
Core selection 75
Single-core Breakpoints 75
Multi-core Breakpoints and Stepping 76
Inspecting Multi-Channel-Sequencer (MCS) Channels 76
Using the MCDS On-Chip Trace with TriCore2 AURIX 78
Preparations 78
Recording the first Samples 78
Hints for Multi-core Trace 79
An Example with C166S V2 / XC16x via JTAG/OCDS L1 81
Starting with Universal Debug Engine 81
Loading and Starting of an Executable 81
Automatic Variables Refresh 81
Trigger Functions 82
An Example with MPC5567 via JTAG 83
Starting with Universal Debug Engine 83
Loading and Starting of an Executable 83
Automatic Variables Refresh 83
Trigger Functions 84
Hints for using the MPC55xx via JTAG 85
An Example for C166 debugging via 3Pin 86
Hardware Requirements 86

4 of 177 Overview Introduction


Useful hints for 3Pin Debugging 86
Monitor preparations 87
Starting the Universal Debug Engine 87
Setup Target Interface 88
Using the Simulated I/O channel 90
Creating new Target Configurations 91
Creating a new workspace 91
Invoking the Wizard 91
Select the controller derivative 92
Selecting Target Interface 92
Setup the Target Interface 93
Configuring the FLASH memory 94
Finish the wizard 95
Conclusion 96

User's Guide 97
Introduction 97
Architecture of Universal Debug Engine 98
Using On-line Help 99
Project Management 100
Working with Projects 100
Creating a New Project 100
Select Target Configuration 101
Loading a Project 101
Saving Project Settings 101
Closing a Project 101
Command line options of UDE 102
Preparing a binary File 102
Compiler Support 102
Downloading the binary File 104
Examples of Debug Communication Channels 104
Selection of a Hardware Communication Channel 105
Overview about the Monitor programs 106
Preparing the Communication 106
Connect the target system 108
Download the application 108
Viewing Program Code 108
Workspace 108
Program Window 109
Running a program 111
Inline Assembler 111
Viewing and Modifying Registers 112
Kinds of Register Views 112
CPU View 112
SFR View 113
HTML View based on the UDE Object Model 114
Watching Variables 115
Watch View 115
Watch Expressions 115
Adding Variables and Expressions using Select Watch Dialog 117
Locals View 119
Automatically variable content refresh 119
Stepping and Breakpoints 119
Overview 119
Following the program flow 119
Stop the program at a specified location 120
Breakpoint dialog 121
Breakpoint identifier 122
Viewing Memory Locations 123
Writing data to target 123
Updating data from target 123
Printing of memory locations 124

Introduction Overview 5 of 177


Viewing Data as Scientific Chart 124
Basic features of the Graphic Display Window 124
Using Expressions 124
Graphical Display Window Properties 125
Viewing Call Stack 125
Program Execution Time Measuring 126
Trace, Visualization and Analyzing 127
Trace Analyzing Features and Views 129
Trace View 130
Instruction Pointer Profiling 134
Trace Profiling 135
Code Coverage 139
Program Flow Time Chart 143
Variables Access Time Chart 144
Signal Trace - Real-Time Graphical Monitoring 147
Activating and Using Add-Ins 150
Activating an Add-In 150
Removing an Add-In 150
Triggered Transfer Recorder 151
FLASH / OTP Programming 152
Supported Functions 152
Basic Concept 152
Definition of external FLASH Memories 155
Definition of on-chip FLASH Memories 155
Definition of Memory Access Filters 156
Enabling the FLASH Programming 156
FLASH Programming 157
Setup FLASH Programming options 158
UDE CAN Recorder 159
Supported Functions 159
Enabling the CAN Recorder 159
Send and Record CAN Messages 159
UDE RTX Viewer 160
Supported Functions 160
Enabling the RTX Viewer 160
Using the RTX Viewer 160
UDE rcX Viewer 161
Supported Functions 161
Enabling the rcX Viewer 161
Using the rcX Viewer 161
Eclipse IDE for UDE 162
Overview about supported Eclipse IDE Versions 162
Prepare Eclipse IDE for UDE Integration Package 163
Launching UDE Debug Session in Eclipse IDE 166
Add UDE Sample Project to Eclipse Helios C/C++ IDE 168
UDE Object Model 170
Overview 170
Example for TriCore 170
User Definable Enhancements 171

Reference 173

Index 174

6 of 177 Overview Introduction


Introduction

Overview
Thank you for choosing Universal Debug Engine (UDE) 4, one of the most powerful
development workbenches available for the 32-bit architectures AURIX™, TriCore™,
PowerArchitecture™, Cortex™, ARM7™, ARM9™, ARM11™, XScale™, RH850,
SuperH™ SH-2A and for the 16-bit architectures C166, ST10, XC166, XC2000, XE166,
C166CBC, C166S V2 derivatives.
The software which you are about to install is the UDE Standard License software.
Included with the full licensed version comes a high-speed communication hardware
which speeds up downloading your application into the target system. It offers a flexible
way of communication via various communication channels to the supported
microcontroller.
Special versions of UDE like the MemTool Flash/OTP Memory Programming Tool are
available on your request.

This Software UDE manual describes the Universal Debug Engine based on the
selective Evaluation Boards. However, the UDE is also working with other AURIX,
TriCore, PowerArchitecture, Cortex, ARM7, ARM9, ARM11, C166, ST10, XC166,
XC2000, XE166, XScale, RH850 and SuperH SH-2A based hardware and simulators.
Please see the compatibility list in appendix of this manual or the actual list on our Web
site for supported MCUs.
The Hardware Appendix UDE manual, an appendix of this manual, supplements this
manual. Please see this manual for detailed description of the hardware interfaces.

? You are invited to browse to our Web site at http://www.pls-mc.com to get the newest
information or to download the latest version of Universal Debug Engine.

Feedback
The PLS Development Tools welcomes feedback on our products and documentation's. If
you have any comments, suggestions or improvements about the products you are using,
please use the Feedback Form from our Web Site http://www.pls-mc.com, send an email
to support@pls-mc.com or call our Support Line.

Introduction Overview 7 of 177


Versions of UDE
UDE, the Universal Debug Engine for AURIX, TriCore, PowerArchitecture, Cortex,
ARM7, ARM9, ARM11,C166, ST10, XC166, XC2000, XE166, XScale, RH850 and
SuperH SH-2A derivatives is available in a Starterkit version with parallel port support for
JTAG, in a Starterkit version with serial port support and in a high-speed full-featured
version with extra communication hardware. Versions with simulator support are available
too.
The following table describes the differences between the versions of UDE:
1. The Free Entry Toolchain offers a wide range of UDE features combined with the
Eclipse environment and the HighTec C/C++ compiler.
2. The Demo version for Starterkits (JTAG or ASC bootstrap loader support)
(Evaluation Kit) offers a simple JTAG target access to the Starterkit board via parallel
port or USB-JTAG adapter or offers a target access to the Starterkit board via serial
port.
3. The Standard versions are equipped with specialized communication hardware and
allow higher transmission rates than the Starterkit version. Additional various
communication channels are featured.

The Standard version Universal Access Device 2 compact (UAD2compact) allows a


flexible way of communication and is suitable for desktop and notebook users in the
same way. The Universal Access Device 2 communicates with the host PC via the
USB2.0 bus. Target Communication is supported via JTAG to ARM7 and ARM9
targets only.

The Standard version Universal Access Device 2 (UAD2) allows a flexible way of
communication and is suitable for desktop and notebook users in the same way. The
Universal Access Device 2 communicates with the host PC via the USB2.0 bus.
Target Communication is supported via ASC, SSC, CAN, DAP and JTAG.

The Standard version Universal Access Device 2pro (UAD2pro) allows a flexible
way of communication and is suitable for desktop and notebook users in the same
way. The Universal Access Device 2pro communicates with the host PC via the
USB2.0 bus. Target Communication is supported via ASC, SSC, CAN, JTAG,
cJTAG, DAP, SWD.

The Standard version Universal Access Device 2+ (UAD2+) is the all-in-on


solution for UDE. It communicates with the host PC via the USB2.0, IEEE1394 or
Ethernet bus. Target Communication is supported via ASC, SSC, 3Pin, CAN, JTAG,
DAP, SWD. Additionally the Universal Access Device 2+ supports the program
instruction trace with the trace board add-in feature.

The Standard version Universal Access Device 3+ (UAD3+) is the high-end-


solution for UDE. It communicates with the host PC via the USB2.0, IEEE1394b or
Ethernet bus. Target Communication is supported via JTAG, cJTAG, DAP, SWD.
Additionally the Universal Access Device 2+ supports the high-speed program
instruction trace with the trace board add-in feature.

The Standard version fast-PC6x card allows communication to the target via a PCI
card. Target Communication is supported via ASC, SSC and CAN.
4. The Simulator version features a debugging environment about various simulators.
The simulators can be used effectively in the early stages of software development,
reducing the length of time spent later on system integration. The UDE debugger
uses the simulator interface like a real hardware platform. All advantages of HLL-
Debugging are offered with the combination of UDE and the simulator environment.

8 of 177 Versions of UDE Introduction


Delivery Contents
Depending on your UDE version, please check the contents of delivery from the following
table and make sure that the package contains all of the required parts.

UAD2+ with Trace

UAD3+ with Trace

Simulator version
Standard version
Standard version

Standard version

Standard version

Standard version

Standard version

Standard version

Standard version
for Starterkits
Demo version

compact

fast-PC6x
pro

UAD2+

UAD3+
Board

Board
UAD2

UAD2
UAD2
Software and Manuals
Software UDE Manual
1         
Hardware Appendix UDE Manual

CD-ROM          

Access Devices

UAD2
compact

UAD2 
UAD2
pro 
UAD2+  
UAD2+ Trace Board (built-in) 4
UAD2+ JTAG Extender with 10-wire
(DAP), or 14-wire (JTAG/cJTAG), or 16- 3 3
wire (JTAG), 20-wire (JTAG)

UAD3+  
UAD3+ JTAG Pod  
UAD3+ Trace Board 2 (built-in) 4
UAD3+ Parallel Trace Pod 3
UAD3+ Aurora Trace Pod 3
fast-PC67C/PCI card or
fast-PC276C/PCI card 3
USB-to-Serial Converter 3
USB-Key 

Interface Devices
UAD2 JTAG Adapter (ARM, OnCE, COP,
...) 3 3 3
UAD2+ Trace Pod (38-pin, 40-pin or 60-
pin) 4
pro
UAD2 /UAD3+ JTAG Adapter (ARM,
OnCE, ...)
3 3 3
UAD3+ Trace Adapter (16-bit ARM, ...) 4

Introduction Delivery Contents 9 of 177


UAD2+ with Trace

UAD3+ with Trace

Simulator version
Standard version

Standard version

Standard version

Standard version

Standard version

Standard version

Standard version

Standard version
for Starterkits
Demo version

compact

fast-PC6x
pro

UAD2+

UAD3+
Board

Board
UAD2

UAD2
UAD2
Pod Interface Cables
UAD2+ JTAG Extender Cable (40-wire
HD Flat Ribbon Cable) 3 3
UAD2+ Trace Pod Cable (80-wire HD Flat
Ribbon Cable) 
UAD3+ IO Pod Cable (26-wire HD Cable)  
UAD3+ Trace Pod Cable (68-wire HD
Cable) 

Target Interface Cables


UAD2 10" (25 cm) Flat Ribbon Cable,
10-wire, 3Pin, ASC, SSC 
UAD2 10" (25 cm) Flat Ribbon Cable,
10-wire (DAP), or 14-wire (JTAG), 3 3
or 16-wire (JTAG), 20-wire (JTAG)
pro
UAD2 /UAD3+ JTAG Adapter Cable   
(40-wire HD Flat Ribbon Cable)
UAD3+ parallel Trace Adapter Cable (38-
wire HD Flat Ribbon Cable) 3
UAD3+ HSS34 NEXUS Trace Adapter +
Cable (24cm flex cable) 3
UAD3+ HSS22 MCDS Trace Adapter +
Cable (24cm flex cable) 3

Host PC Adapters and Cables

Host IEEE1394 PCI Board 3 3


Host IEEE1394 Cable 3 3
Host IEEE1394b PCI Board 3 3 3
Host IEEE1394b Cable 3 3 3
Host USB Cable 3      
2
Host Parallel Cable 

Power Supply
Wall Transformer 220 VAC
50~ / 12V DC (6W) 5 5 5
Wall Transformer 110-220VAC
50-60~ / 12V DC or 18V DC (24W) 5 5 5 
Wall Transformer 110-220VAC
50-60~ / 12V DC or 18V DC (100W)  
1 2
 If you did not receive a manual with your Starterkit CD-ROM, you may order one.  for TARA EVA M2 only
3 4 5
 optional shipped, corresponding your order  with Trace Board option only  depending on your country location

10 of 177 Delivery Contents Introduction


System Requirements
To run Universal Debug Engine (UDE) 4 at least the following minimum system
configuration is required:
 Microsoft Windows compatible PC
 1 GHz or faster 32-bit (x86) or 64-bit (x64) processor
 1 GByte RAM (32-bit) or 2 GByte RAM (64-bit)
 1 GByte available hard disk space
 Operating System Windows Vista, Windows 7, Windows 8(.1)
 Microsoft .NET™ Framework 3.5 SP1
 Microsoft Windows Scripting Host V5.6
 Microsoft Internet Explorer® 6.0 or higher
 Adobe® Acrobat Reader 4.0 or higher
 Administrator permissions for the current login during installation.

The UDE version 4.4 requires the installation of .NET Framework 3.5 SP1. To obtain the
installation package of .NET Framework 3.5, please see the Readme file within the UDE
installation folder for further hints.

Depending on the type of target access, you will additionally need one of the following
interface ports:
 an IEEE1394-OHCI interface for the Standard version with UAD2+ or UAD3+ via
IEEE1394 or an IEEE1394b-OHCI interface for the Standard version with UAD3+ via
IEEE1394b
 or an USB port interface for the Standard version with UAD2 or UAD2pro or UAD2+ or
UAD3+ or for the Demo version for Easy Kits XC166, XC2000, XE166 or for the
Simulator version with USB-Key or the Standard version with USB-JTAG-Port
 or an Ethernet interface for the Standard version UAD2+ or UAD3+
 or a standard serial port (COMx) interface for the Demo version for Starterkits (ASC
bootstrap loader support)
 or an free PCI slot for the Standard version with fast-PC67C/PCI / fast-PC276C/PCI
The fast-PC67C/PCI and fast-PC276C/PCI are compliant with PCI r2.1.

Introduction System Requirements 11 of 177


Installing of Universal Debug
Engine

Before you start the installation process, please ensure which version of Universal
Debug Engine (UDE) 4.4 you intend to use. Check that your package contains the
required parts and install the hardware and software according to the following
description.
Depending on your UDE version, please follow the corresponding instructions.

! Please note that you must have administrator rights for successful execution of the
installation process.

The UDE Universal Debug Engine is also available as a Demo version for various
starterkits. Please use the CD Browser utility from the UDE CD-ROM and install the UDE
demo software without hardware support as well as the hardware drivers if needed. The
demo versions will work with the host ports LPTx or COMx. For COMx a standard serial
ports or an USB-to-Serial port can be used.
The demo version is limited to 16 kByte program sizes for C16x derivatives, 32 kByte for
TriCore derivatives and is limited to program the first FLASH sector only. All other
functions are freely available for testing.
Furthermore, so-called Free Entry Tool Chain is available. This version based on a
Demo version integrated into an Eclipse environment and the HighTec C/C++ compiler.

Installation Notes - before you install UDE


A proper function of the Universal Debug Engine and its hardware devices is only
guaranteed for working with the original components tested and delivered by PLS
Development Tools. The delivered components are verified with the recommends and
standards of the chip manufactures.

When a new version of UDE is started the first time, a firmware update may be executed
on the access device (UAD, UAD2 ...). This may take some more time than usual for the

! target connect operation. Please DO NOT power off or unplug the access device while
this time!

12 of 177 Installation Notes - before you install UDE Installing of Universal Debug Engine
Installing Hardware
Static Electricity Precautions
Electrostatic Discharge (ESD) can damage a sensitive electronic
component! Under several conditions static electricity and ground
potential differences between the Access Device and the user's
target hardware can build up high voltages - over 10000 Volts
(10 kV) in some cases. The electrostatic discharge of this build-up
voltage results in fast high current waveforms and fast magnetic
(H-field) or electrostatic (E-field) disturbances. The discharge into
the electronic components and circuitry can damage or destroy
hardware components, resulting in failures and reduced reliability.
Because of the non-hot-pluggable 3,3 Volts / 5 Volts -TTL properties of the JTAG and
the 3Pin/Serial connectors, these ports are endangered especially. The maximum
voltage on these pins may not exceeded 5,5 Volts against the UAD’s ground, especially
in the case that the ground planes are not connected first.
To protect your hardware against damage from static electricity and ground potential
discharge, you have to follow some basic precautions:
1. Before you change any cable connections from the Access Device, please remove
the power from the Access Device and your target system.
2. Please ensure that the static electricity and ground potentials between the Access
Device, the host PC and the target hardware are balanced. If there is a danger of
high potential differences, you must connect the Access Device, the host PC and the
target hardware to the same ground domain via a low resistance connection.
3. Establish the target connection and power on the systems.

Host Development Computer Universal Access Device Custom Specific Target Hardware

Hot-Pluggable Host
Signal line +
Signal line +
Ground line
Ground line

Additional Ground Additional Ground


line required in case of potential differences line required

Host Ground UAD Ground Target Ground

Hint: All Universal Access Devices are equipped with a ground socket on the front side.
Please use this ground socket for discharging the static electricity and balancing ground
potentials between the Universal Access Device, the host PC and the target hardware

! BEFORE you connect the target hardware to the Access Device.

An additional protection for UAD2 can be achieved by using the JTAG Protector. The
UAD2pro, UAD2+ contains the protection function already. Please note, that the JTAG
Protector DOES NOT suspend the precautions described above.

Installing of Universal Debug Engine Installing Hardware 13 of 177


Demo Version for Starterkits (via JTAG)
The hardware installation of Universal Debug Engine for Starterkits with parallel port
support for JTAG/OCDS L1 is done within the following steps:
1. Configure the Starterkit board with the correct jumper setting. Please see the
appendix "Hardware Description" about useful information about the supported
Starterkit boards.
2. Connect the Host PCs parallel port with the Onboard JTAG adapter. Connector on
the Starterkit board by the 25-wire parallel cable. A gender changer is required in
case of using a standard 25-wire 1:1 parallel port cable.
3. Connect the wall transformer's cable with the 'Power' jack and apply power to the
Starterkit board.

Host PC Target system


JTAG/OCDS-Debugging

Trans-
former

Starterkit
( i.e. TriBoard, EasyUTAH, XC16)

Parallel Port
cable

Host PC with
Standard Parallel Port

4. Start your computer system and login with administrator rights.


5. Read the file RELEASE.HTM for the latest hardware and software changes.
6. Start SETUP.EXE from the UDE CD-ROM and follow the instructions on the
screen. A detailed description of the software installation is followed in the chapter
„Installing UDE Software“.
7. After a few additional steps, the installation program lets you choose to launch
UDE automatically.
The UDE workbench is now installed and ready to use.

If you have trouble while installing the product, please contact the PLS Support Team at
support@pls-mc.com.

? Please see the appendix „Hardware Description“ for important information about the
configuration of the Starterkit board.

14 of 177 Installing Hardware Installing of Universal Debug Engine


Demo Version for Starterkits (via ASC Bootstrap loader)
The hardware installation of Universal Debug Engine for the Starterkits via ASC
Bootstrap loader is done within the following steps:
1. Configure the evaluation board with the correct jumper setting. Please see the
appendix "Hardware Description" about useful information about the supported
Starterkit boards.
2. Connect the ASC0 connector with a COMx connector of the PC via a 9-pin D-SUB
extension cable.
Alternatively, an USB-to-Serial converter can be used. The USB converter device
and drivers are included in the Starterkit delivery (e.g. ST10F252 Starterkit).
3. Connect the wall transformer's cable with the 'Power' jack and apply power to the
Starterkit board.

Host PC Target system


ASC Bootstrap loader Debugging
Trans-
former

USB-To-Serial
Converter

USB interface

or
ASC0
COMx interface interface

4. Start your computer system and login with administrator rights.


5. Read the file RELEASE.HTM for the latest hardware and software changes.
6. Start SETUP.EXE from the UDE CD-ROM and follow the instructions on the
screen. A detailed description of the software installation is followed in the chapter
„Installing UDE Software“.
7. After a few additional steps, the installation program lets you choose to launch
UDE automatically.
The UDE workbench is now installed and ready to use.

If you have trouble while installing the product, please contact the PLS Support Team at
support@pls-mc.com.

? Please see the appendix „Hardware Description“ for important information about the
configuration of the Starterkit board.

Installing of Universal Debug Engine Installing Hardware 15 of 177


Demo Version for Easy Kits (via DAS/USB-JTAG adapter)
The hardware installation of Universal Debug Engine for the Starterkit Easy Kit XC166,
XC2000 and XE166 with DAS/USB-JTAG adapter is done within the following steps:
1. Configure the Easy Kit board with the correct jumper setting. Please see the
appendix "Hardware Description" about useful information about the supported
Starterkit boards.
2. Connect the USB-Wiggler with an USB connector of the installed USB host adapter
in your PC. Connect the USB-JTAG adapter with the JTAG/OCDS L1 connector of
the Easy Kit board by the 10" 16-wire JTAG cable.
3. Connect the wall transformer's cable with the 'Power' jack and apply power to the
Starterkit board.

Host PC Target system


JTAG/ARM Debugging
Trans-
former

Easy Kit

USB-Wiggler

USB2.0 JTAG/OCDS L1

4. Start your computer system and login with administrator rights.


5. Read the file RELEASE.HTM for the latest hardware and software changes.
6. Start SETUP.EXE from the UDE CD-ROM and follow the instructions on the
screen. A detailed description of the software installation is followed in the chapter
„Installing UDE Software“.
7. After a few additional steps, the installation program lets you choose to launch
UDE automatically.
The UDE workbench is now installed and ready to use.

If you have trouble while installing the product, please contact the PLS Support Team at
support@pls-mc.com.

? Please see the appendix „Hardware Description“ for important information about the
configuration of the Starterkit board.

16 of 177 Installing Hardware Installing of Universal Debug Engine


compact
Standard Version UAD2 (via JTAG)
compact
The hardware installation of Universal Access Device 2 is done within the following
steps:
compact
1. Connect the Universal Access Device 2 (connector 'USB') with an USB 2.0
connector of the installed USB host adapter in your PC (USB 2.0 is recommend,
USB 1.1 is also possible).
2. Connect the ground socket with the ground potential of your target hardware for
discharging the static electricity and balancing ground potentials.
compact
3. Connect the 'JTAG Target' connector of the Universal Access Device 2 with
the JTAG connector of the microcontroller board by the 10" 20-wire JTAG cable.
Refer to the appendix „Hardware Description“ of the user’s manual for more
information about the correct pin connections.
Host PC Target system
JTAG/ARM Debugging
Trans-
former

Starterkit or Custom
Specific Target Hardware
Trans-
former

Universal Access Device 2 compact

USB2.0 JTAG

4. Start your computer system and login with administrator rights.


5. Connect the wall transformer's cable with the 'Power' jack to the Universal Access
compact
Device 2 .
6. Read the file RELEASE.HTM for the latest software changes.
7. Start SETUP.EXE from the UDE CD-ROM and follow the instructions on the
screen. A detailed description of the software installation is followed in the chapter
„Installing UDE Software“.
8. After a few additional steps, the installation program lets you choose to launch
UDE automatically.
The UDE workbench is now installed and ready to use.

If you have trouble while installing the product, please contact the PLS Support Team at
support@pls-mc.com.
? Please pay attention to the chapter "Static Electricity Precautions" containing important
information about required ESD protection of the access devices.

Installing of Universal Debug Engine Installing Hardware 17 of 177


Standard Version UAD2 and UAD2pro (via JTAG)
The hardware installation of Universal Access Device 2 and 2pro is done within the
following steps:
1. Connect the Universal Access Device 2 or 2pro (connector 'USB') with an USB 2.0
connector of the installed USB host adapter in your PC (USB 2.0 is recommend,
USB 1.1 is also possible).
2. Connect the ground socket with the ground potential of your target hardware for
discharging the static electricity and balancing ground potentials.
3. Connect the 'JTAG/OCDS Target' connector of the Universal Access Device 2 with
the JTAG connector of the microcontroller board by the 14-wire, 16-wire or 20-wire
JTAG cable or connect the Universal Access Device 2pro with the JTAG connector
by the 40-pin cable and delivered adapter. Refer to the appendix „Hardware
Description“ of the user’s manual for more information about the correct pin
connections.

Host PC Target system


JTAG Debugging
Trans-
former

Starterkit or Custom
Specific Target Hardware
Trans-
former

Universal Access Device 2

USB2.0
JTAG

4. Start your computer system and login with administrator rights.


5. Connect the wall transformer's cable with the 'Power' jack to the Universal Access
Device 2.
6. Read the file RELEASE.HTM for the latest software changes.
7. Start SETUP.EXE from the UDE CD-ROM and follow the instructions on the
screen. A detailed description of the software installation is followed in the chapter
„Installing UDE Software“.
8. After a few additional steps, the installation program lets you choose to launch
UDE automatically.
The UDE workbench is now installed and ready to use.

If you have trouble while installing the product, please contact the PLS Support Team at
support@pls-mc.com.
? Please pay attention to the chapter „Static Electricity Precautions“ containing important
information about required ESD protection of the access devices.

18 of 177 Installing Hardware Installing of Universal Debug Engine


Standard Version UAD2 and UAD2pro (via DAP)
The hardware installation of Universal Access Device 2 is done within the following steps:
1. Connect the Universal Access Device 2 (connector 'USB') with an USB 2.0
connector of the installed USB host adapter in your PC (USB 2.0 is recommend,
USB 1.1 is also possible).
2. Connect the ground socket with the ground potential of your target hardware for
discharging the static electricity and balancing ground potentials.
3. Connect the 'JTAG/OCDS Target' connector of the Universal Access Device 2 with
the JTAG connector of the microcontroller board by the 10-wire DAP adapter cable
or connect the Universal Access Device 2pro with the DAP connector by the 40-pin
cable and delivered adapter. Refer to the appendix „Hardware Description“ of the
user’s manual for more information about the correct pin connections.

Host PC Target system


DAP Debugging
Trans-
former

Starterkit or Custom
Specific Target Hardware
Trans-
former

Universal Access Device 2

USB2.0
DAP Adapter

4. Start your computer system and login with administrator rights.


5. Connect the wall transformer's cable with the 'Power' jack to the Universal Access
Device 2.
6. Read the file RELEASE.HTM for the latest software changes.
7. Start SETUP.EXE from the UDE CD-ROM and follow the instructions on the
screen. A detailed description of the software installation is followed in the chapter
„Installing UDE Software“.
8. After a few additional steps, the installation program lets you choose to launch
UDE automatically.
The UDE workbench is now installed and ready to use.

If you have trouble while installing the product, please contact the PLS Support Team at
support@pls-mc.com.
? Please pay attention to the chapter „Static Electricity Precautions“ containing important
information about required ESD protection of the access devices.

Installing of Universal Debug Engine Installing Hardware 19 of 177


Standard Version UAD2 and UAD2pro (via SWD)
The hardware installation of Universal Access Device 2 is done within the following steps:
1. Connect the Universal Access Device 2 (connector 'USB') with an USB 2.0
connector of the installed USB host adapter in your PC (USB 2.0 is recommend,
USB 1.1 is also possible).
2. Connect the ground socket with the ground potential of your target hardware for
discharging the static electricity and balancing ground potentials.
3. Connect the 'JTAG/OCDS Target' connector of the Universal Access Device 2 with
the SWD adapter (‘UAD2’-side) by the 16-wire adapter cable.
4. Connect the 20-pin ‘Target’-side of the SWD adapter with the connector of the
microcontroller board directly (20-pin connector) or by the 20-wire high density
adapter cable (20-pin high density connector) or connect the Universal Access
Device 2pro with the DAP connector by the 40-pin cable and delivered adapter.
Refer to the appendix „Hardware Description“ of the user’s manual for more
information about the correct pin connections.
Host PC Target system
SWD Debugging
Trans-
former

Starterkit or Custom
Specific Target Hardware
Trans-
former

Universal Access Device 2

USB2.0
SWD adapter

5. Start your computer system and login with administrator rights.


6. Connect the wall transformer's cable with the 'Power' jack to the Universal Access
Device 2.
7. Read the file RELEASE.HTM for the latest software changes.
8. Start SETUP.EXE from the UDE CD-ROM and follow the instructions on the
screen. A detailed description of the software installation is followed in the chapter
„Installing UDE Software“.
9. After a few additional steps, the installation program lets you choose to launch
UDE automatically.
The UDE workbench is now installed and ready to use.

If you have trouble while installing the product, please contact the PLS Support Team at
support@pls-mc.com.
? Please pay attention to the chapter „Static Electricity Precautions“ containing important
information about required ESD protection of the access devices.

20 of 177 Installing Hardware Installing of Universal Debug Engine


Standard Version UAD2+ (via JTAG)
The hardware installation of Universal Access Device 2+ is done within the following
steps:
1. Connect the Universal Access Device 2+ (connector 'IEEE1394') with an
IEEE1394 connector of the installed IEEE1394 host adapter in your PC or connect
the connector 'USB 2.0' with an USB 2.0 connector of the installed USB host
adapter in your PC (USB 2.0 is recommend, USB 1.1 is also possible) or the
connector ETH with a Ethernet network.
2. Connect the ground socket with the ground potential of your target hardware for
discharging the static electricity and balancing ground potentials.
3. Connect the 'JTAG/OCDS Target' connector of the Universal Access Device 2+
with the JTAG Extender via the 40-wire HD flat ribbon cable. Connect the JTAG
Extender with your target by the 14-wire, 16-wire or 20-wire JTAG cable. Refer to
the appendix „Hardware Description“ of the user’s manual for more information
about the correct pin connections.

Host PC Target system


JTAG Debugging

Trans-
former

Trans- Starterkit or Custom


former
Specific Target Hardware
Universal Access Device 2+

IEEE1394, ETH
USB2.0 JTAG

JTAG Extender

4. Start your computer system and login with administrator rights.


5. Connect the wall transformer's cable with the 'Power' jack to the Universal Access
Device.
6. Read the file RELEASE.HTM for the latest software changes.
7. Start SETUP.EXE from the UDE CD-ROM and follow the instructions on the
screen. A detailed description of the software installation is followed in the chapter
„Installing UDE Software“.
8. After a few additional steps, the installation program lets you choose to launch
UDE automatically.
The UDE workbench is now installed and ready to use.

If you have trouble while installing the product, please contact the PLS Support Team at
support@pls-mc.com.
? Please pay attention to the chapter „Static Electricity Precautions“ containing important
information about required ESD protection of the access devices.

Installing of Universal Debug Engine Installing Hardware 21 of 177


Standard Version UAD2+ (via DAP)
The hardware installation of Universal Access Device 2+ is done within the following
steps:
1. Connect the Universal Access Device 2+ (connector 'IEEE1394') with an
IEEE1394 connector of the installed IEEE1394 host adapter in your PC or connect
the connector 'USB 2.0' with an USB 2.0 connector of the installed USB host
adapter in your PC (USB 2.0 is recommend, USB 1.1 is also possible) or the
connector ETH with a Ethernet network.
2. Connect the ground socket with the ground potential of your target hardware for
discharging the static electricity and balancing ground potentials.
3. Connect the 'JTAG/OCDS Target' connector of the Universal Access Device 2+
with the JTAG Extender via the 40-wire HD flat ribbon cable. Connect the JTAG
Extender with your target by the 10-wire DAP adapter cable. Refer to the appendix
„Hardware Description“ of the user’s manual for more information about the correct
pin connections.

Host PC Target system


JTAG Debugging

Trans-
former

Trans- Starterkit or Custom


former
Specific Target Hardware
Universal Access Device 2+

IEEE1394, ETH
USB2.0 DAP

JTAG Extender

4. Start your computer system and login with administrator rights.


5. Connect the wall transformer's cable with the 'Power' jack to the Universal Access
Device.
6. Read the file RELEASE.HTM for the latest software changes.
7. Start SETUP.EXE from the UDE CD-ROM and follow the instructions on the
screen. A detailed description of the software installation is followed in the chapter
„Installing UDE Software“.
8. After a few additional steps, the installation program lets you choose to launch
UDE automatically.
The UDE workbench is now installed and ready to use.

If you have trouble while installing the product, please contact the PLS Support Team at
support@pls-mc.com.
? Please pay attention to the chapter „Static Electricity Precautions“ containing important
information about required ESD protection of the access devices.

22 of 177 Installing Hardware Installing of Universal Debug Engine


Standard Version UAD2+ (via SWD)
The hardware installation of Universal Access Device 2+ is done within the following
steps:
1. Connect the Universal Access Device 2+ (connector 'IEEE1394') with an
IEEE1394 connector of the installed IEEE1394 host adapter in your PC or connect
the connector 'USB 2.0' with an USB 2.0 connector of the installed USB host
adapter in your PC (USB 2.0 is recommend, USB 1.1 is also possible) or the
connector ETH with a Ethernet network.
2. Connect the ground socket with the ground potential of your target hardware for
discharging the static electricity and balancing ground potentials.
3. Connect the 'JTAG/OCDS Target' connector of the Universal Access Device 2+
with the JTAG Extender via the 40-wire HD flat ribbon cable. Connect the 16-wire
extender cable with the SWD adapter (‘UAD2’-side).
4. Connect the 20-pin ‘Target’-side of the SWD adapter with the connector of the
microcontroller board directly (20-pin connector) or by the 20-wire high-density
adapter cable (20-pin high-density connector). Refer to the appendix „Hardware
Description“ of the user’s manual for more information about the correct pin
connections.
Host PC Target system
SWD Debugging

Trans-
former

Trans- Starterkit or Custom


former
Specific Target Hardware
Universal Access Device 2+

IEEE1394, ETH
USB2.0

JTAG Extender SWD adapter

5. Start your computer system and login with administrator rights.


6. Connect the wall transformer's cable with the 'Power' jack to the Universal Access
Device.
7. Read the file RELEASE.HTM for the latest software changes.
8. Start SETUP.EXE from the UDE CD-ROM and follow the instructions on the
screen. A detailed description of the software installation is followed in the chapter
„Installing UDE Software“.
9. After a few additional steps, the installation program lets you choose to launch
UDE automatically.
The UDE workbench is now installed and ready to use.

If you have trouble while installing the product, please contact the PLS Support Team at
support@pls-mc.com.
? Please pay attention to the chapter „Static Electricity Precautions“ containing important
information about required ESD protection of the access devices.

Installing of Universal Debug Engine Installing Hardware 23 of 177


Standard Version UAD3+ (via JTAG)
The hardware installation of Universal Access Device 3+ is done within the following
steps:
1. Connect the Universal Access Device 3+ (connector 'IEEE1394b') with an
IEEE1394b connector of the installed IEEE1394b host adapter in your PC or
connect the connector 'USB 2.0' with an USB 2.0 connector of the installed USB
host adapter in your PC (USB 2.0 is recommend, USB 1.1 is also possible) or the
connector Ethernet with a Ethernet network.
2. Connect the ground socket with the ground potential of your target hardware for
discharging the static electricity and balancing ground potentials.
3. Connect one of the ‘Pod 1-4’ connectors with the JTAG Pod via the IO Pod Cable.
Connect the JTAG-Pod with the JTAG Adapter via the JTAG Adapter Cable.
Connect the JTAG Adapter with the JTAG connector of the target board. Refer to
the appendix „Hardware Description“ of the user’s manual for more information
about the correct pin connections.
Host PC Target system
JTAG Debugging
Trans-
former

Starterkit or Custom
Specific Target Hardware

Trans-
former

Universal Access Device 3+

JTAG Adapter
IEEE1394, ETH
USB2.0 IO Pod JTAG Adapter
Cable Cable
JTAG Pod

4. Start your computer system and login with administrator rights.


5. Connect the wall transformer's cable with the 'Power' jack to the Universal Access
Device.
6. Read the file RELEASE.HTM for the latest software changes.
7. Start SETUP.EXE from the UDE CD-ROM and follow the instructions on the
screen. A detailed description of the software installation is followed in the chapter
„Installing UDE Software“.
8. After a few additional steps, the installation program lets you choose to launch
UDE automatically.
The UDE workbench is now installed and ready to use.

If you have trouble while installing the product, please contact the PLS Support Team at
support@pls-mc.com.
? Please pay attention to the chapter „Static Electricity Precautions“ containing important
information about required ESD protection of the access devices.

24 of 177 Installing Hardware Installing of Universal Debug Engine


Standard Version UAD2 (via ASC, SSC, CAN)
The hardware installation of Universal Access Device 2 is done within the following steps:
1. Connect the Universal Access Device 2 (connector 'USB') with an USB 2.0
connector of the installed USB host adapter in your PC (USB 2.0 is recommend,
USB 1.1 is possible).
2. Connect the ground socket with the ground potential of your target hardware for
discharging the static electricity and balancing ground potentials.
3. Connect the 'ASC/SSC/CAN Target' connector of the Universal Access Device 2
with the ASC (RS232), SSC (RS485) or CAN connector of the microcontroller
board by a 9-pin 1:1 SUB-D9 (M) to SUB-D9 (F) extension cable. Refer to the
appendix „Hardware Description“ of the user’s manual for more information about
the correct pin connections.

Host PC Target system


ASC, SSC, CAN Debugging

Trans-
former

Starterkit or Custom
Trans- Specific Target Hardware
former

Universal Access Device 2

USB2.0 ASC, SSC


or CAN

4. Start your computer system and login with administrator rights.


5. Connect the wall transformer's cable with the 'Power' jack to the Universal Access
Device.
6. Read the file RELEASE.HTM for the latest software changes.
7. Start SETUP.EXE from the UDE CD-ROM and follow the instructions on the
screen. A detailed description of the software installation is followed in the chapter
„Installing UDE Software“.
8. After a few additional steps, the installation program lets you choose to launch
UDE automatically.
The UDE workbench is now installed and ready to use.

If you have trouble while installing the product, please contact the PLS Support Team at
support@pls-mc.com.
? Please pay attention to the chapter „Static Electricity Precautions“ containing important
information about required ESD protection of the access devices.

Installing of Universal Debug Engine Installing Hardware 25 of 177


Standard Version UAD2+ (via ASC, SSC, CAN)
The hardware installation of Universal Access Device 2+ is done within the following
steps:
1. Connect the Universal Access Device 2+ (connector 'IEEE1394') with an
IEEE1394 connector of the installed IEEE1394 host adapter in your PC or
connector 'USB 2.0' with an USB connector or the connector ETH with an Ethernet
network.
2. Connect the ground socket with the ground potential of your target hardware for
discharging the static electricity and balancing ground potentials.
3. For Bootstrap loading via ASC (RS232), connect the ‘ASC/SSC/CAN0 Target’
connector with the target connector via a 9-pin D-SUB extension cable. In case of
ASC (TTL) or SSC (TTL), connect the ' ASC/SSC/3PIN Target ' connector with the
ASC or SSC hardware pins of the microcontroller board by the 10-wire flat ribbon
extension cable. When CAN is used, connect additionally the 'CAN1 Target'
connector with the target via a 9-pin D-SUB extension cable. Refer to the appendix
„Hardware Description“ of the user manual for more information about the correct
pin connections of the ASC, SSC and CAN interfaces.
Host PC Target system
ASC, SSC or CAN -Debugging
Trans-
former

Starterkit or Custom
Serial / Trans-
former Specific Target Hardware
Application*
Universal Access Device 2+

ASC0 / BSL*

IEEE1394, ETH
SSC, CAN
Parallel Port

* Serial Cable for Bootstraploader Monitor required and for


transparent using of ASC0 required only

4. Start your computer system and login with administrator rights.


5. Connect the wall transformer's cable with the 'Power' jack to the Universal Access
Device.
6. Read the file RELEASE.HTM for the latest software changes.
7. Start SETUP.EXE from the UDE CD-ROM and follow the instructions on the
screen. A detailed description of the software installation is followed in the chapter
„Installing UDE Software“.
8. After a few additional steps, the installation program lets you choose to launch
UDE automatically.
The UDE workbench is now installed and ready to use.

If you have trouble while installing the product, please contact the PLS Support Team at
support@pls-mc.com.
? Please pay attention to the chapter „Static Electricity Precautions“ containing important
information about required ESD protection of the access devices.

26 of 177 Installing Hardware Installing of Universal Debug Engine


Standard Version UAD2+ (via 3Pin)
The hardware installation of Universal Access Device2+ is done within the following steps:
1. Connect the Universal Access Device 2+ (connector 'IEEE1394') with an
IEEE1394 connector of the installed IEEE1394 host adapter in your PC or
connector 'USB 2.0' with an USB connector or the connector ETH with an Ethernet
network.
2. Connect the ground socket with the ground potential of your target hardware for
discharging the static electricity and balancing ground potentials.
3. Connect the 'ASC/SSC/3Pin Target' connector of the Universal Access Device 2+
with the 3Pin connector of the microcontroller board by the 10-wire 3Pin cable.
Because the 3Pin connector is not standardized, it must be installed on your target
hardware subsequently. For Bootstrap loading ASC (RS232)/3Pin solution, you
must connect the ‘ASC0 Target’ connector with the ASC0 target connector. Refer
to the appendix „Hardware Description“ of the user’s manual for more information
about the correct pin connections of the 3Pin interface.

Host PC Target system


3Pin-Debugging
Trans-
former

Starterkit or Custom
Serial / Trans-
former Specific Target Hardware
Application*
Universal Access Device 2+

Serial / BSL*

IEEE1394, ETH
3Pin
USB 2.0

* Serial cable for Bootstraploader Monitor required or for


transparent using of ASC0 interface required only

4. Start your computer system and login with administrator rights.


5. Connect the wall transformer's cable with the 'Power' jack to the Universal Access
Device.
6. Read the file RELEASE.HTM for the latest software changes.
7. Start SETUP.EXE from the UDE CD-ROM and follow the instructions on the
screen. A detailed description of the software installation is followed in the chapter
„Installing UDE Software“.
8. After a few additional steps, the installation program lets you choose to launch
UDE automatically.
The UDE workbench is now installed and ready to use.

If you have trouble, while installing the product, please contact the PLS Support Team at
support@pls-mc.com.

? Please pay attention to the chapter „Static Electricity Precautions“ containing important
information about required ESD protection of the access devices.

Installing of Universal Debug Engine Installing Hardware 27 of 177


Standard Version fast-PC6x / fast-PC276 (via ASC/SSC)
The hardware installation of fast-PC67C/PCI fast-PC276/PCI is done within the following
steps:
1. Power OFF your computer system and all connected devices. Disconnect all
cables from the computer.
2. Remove the computer cover.
3. Locate an empty PCI slot.
4. Remove the expansion slot rear panel cover.
5. Unpack the fast-PC67C/PCI board from the antistatic bag. Try to hold the board
only at the corners and ground yourself by touching the computer chassis.
6. Gently press the fast-PC67C/PCI board into the expansion slot and fix it using the
slot cover screw.
7. Close the computer cover and reconnect all cables.
8. Connect the ’Host’ respectively ’RS232/RS485’ connector of the fast-PC67 card
with the ASC connector of the microcontroller board by a 1:1 SUB-D9(M) to
SUB-D9(F) extension cable. Refer to the appendix „Hardware Description“ of the
user’s manual for more information about the correct pin connections of the ASC
and SSC interface.

Host PC Target system


ASC/SSC-Debugging via
fast-PC67C/PCI

C167

Serial / BSL C167


C167

fast-PC67C/ISA

8. Start your computer system and login with administrator rights.


9. Read the file RELEASE.HTM for the latest software changes.
10. Start SETUP.EXE from the UDE CD-ROM and follow the instructions on the
screen. A detailed description of the software installation is followed in the chapter
"Installing Software".
11. After a few additional steps, the installation program lets you choose to launch
UDE automatically.
The UDE workbench is now installed and ready to use.

If you have trouble while installing the product, please contact the PLS Support Team at
support@pls-mc.com.

? Please pay attention to the chapter „Static Electricity Precautions“ containing important
information about required ESD protection of the access devices.

28 of 177 Installing Hardware Installing of Universal Debug Engine


Standard Version fast-PC6x / fast-PC276 (via CAN)
The hardware installation of fast-PC67C/PCI fast-PC276/PCI is done within the following
steps:
The hardware installation of fast-PC67C/PCI fast-PC276/PCI is done within the following
steps:
1. Remove the computer cover.
2. Locate an empty PCI slot.
3. Remove the expansion slot rear panel cover.
4. Unpack the fast-PC67C/PCI board from the antistatic bag. Try to hold the board
only at the corners and ground yourself by touching the computer chassis.
5. Gently press the fast-PC67C/PCI board into the expansion slot and fix it using the
slot cover screw.
6. Close the computer cover and reconnect all cables.
7. Connect the ’CAN’ connector of the fast-PC67 card with the CAN connector of the
microcontroller board. For bootstrap loading/CAN solution, you must connect the
‘RS232/RS485’ connector with the ASC0 target connector. Refer to the appendix
„Hardware Description“ of the user manual for more information about the correct
pin connections of the CAN interface.

Host PC Target system


CAN-Debugging via
fast-PC67C/PCI

C167

Serial / BSL* C167


C167

CAN

fast-PC67C/ISA * Serial cable for Bootstrap Loader required only

8. Start your computer system and login with administrator rights.


9. Read the file RELEASE.HTM for the latest software changes.
11. Start SETUP.EXE from the UDE CD-ROM and follow the instructions on the
screen. A detailed description of the software installation is followed in the chapter
"Installing Software".
12. After a few additional steps, the installation program lets you choose to launch
UDE automatically.
The UDE workbench is now installed and ready to use.

If you have trouble while installing the product, please contact the PLS Support Team at
support@pls-mc.com.

? Please pay attention to the chapter „Static Electricity Precautions“ containing important
information about required ESD protection of the access devices.

Installing of Universal Debug Engine Installing Hardware 29 of 177


Standard Version UAD2+ (with Trace Support)
The hardware installation of Universal Access Device is done within the following steps:
1. Connect the Universal Access Device 2+ (connector 'IEEE1394') with an IEEE1394
connector of the installed IEEE1394 host adapter in your PC or the connector 'USB
2.0' with an USB connector or the connector ETH with an Ethernet network.
2. Connect the ground socket with the ground potential of your target hardware for
discharging the static electricity and balancing ground potentials.
3. Connect the 'TRACE Target' connector of the UAD2+ (80-pin connector above the
OCDS connector) with the corresponding target pod of your target hardware via
the 80-wire flat ribbon cable.
4. If the "OCDS L2” or the “Nexus” or the "ETM" connector of the microcontroller
board does not provide the "JTAG" signals, you have to connect the "JTAG" board
connector with the "JTAG" connector of the Trace Pod by the 10" 20-wire JTAG
cable. Otherwise, no further cable is required. Please see further detailed installing
instructions in the chapter "Hardware Description".

Host PC Target system


JTAG Debugging and
Trans-
OCDS L2 or ETM Support former

Trans- Starterkit or Custom


former Specific Target Hardware
Universal Access Device
or Universal Access Device 2+

IEEE1394, ETH
USB 2.0

OCDS L2 or
ETM or Nexus
Trace

5. Start your computer system and login with administrator rights.


6. Connect the wall transformer's cable with the 'Power' jack to the Universal Access
Device.
7. Read the file RELEASE.HTM for the latest software changes.
8. Start SETUP.EXE from the UDE CD-ROM and follow the instructions on the
screen. A detailed description of the software installation is followed in the chapter
„Installing UDE Software“.
9. After a few additional steps, the installation program lets you choose to launch
UDE automatically.
The UDE workbench is now installed and ready to use.

If you have trouble while installing the product, please contact the PLS Support Team at
support@pls-mc.com.

? Please pay attention to the chapter „Static Electricity Precautions“ containing important
information about required ESD protection of the access devices.

30 of 177 Installing Hardware Installing of Universal Debug Engine


Standard Version UAD3+ (with Trace support)
The hardware installation of Universal Access Device 3+ is done within the following
steps:
1. Connect the Universal Access Device 3+ (connector 'IEEE1394b') with an
IEEE1394b connector of the installed IEEE1394b host adapter in your PC or
connect the connector 'USB 2.0' with an USB 2.0 connector of the installed USB
host adapter in your PC (USB 2.0 is recommend, USB 1.1 is also possible) or the
connector ‘Ethernet’ with a Ethernet network.
2. Connect the ground socket with the ground potential of your target hardware for
discharging the static electricity and balancing ground potentials.
3. Connect one of the ‘Pod 1-4’ connectors with the JTAG Pod via the IO Pod Cable.
Connect the JTAG-Pod with the Trace Adapter via the JTAG Adapter Cable.
Connect the JTAG Adapter with the Trace connector of the target board. Do the
same with the Trace Pod interfaces. Refer to the appendix „Hardware Description“
of the user’s manual for more information about the correct pin connections.

Trans-
former
Host PC Target system
JTAG Debugging Starterkit or Custom
Specific Target Hardware

Trans-
former

Universal Access Device 3+ Trace


Trace Adapter
Trace Pod Adapter
Cable Cable
IEEE1394, ETH
TRACE Pod
USB2.0 IO Pod JTAG Adapter
Cable Cable
JTAG Pod

4. Start your computer system and login with administrator rights.


5. Connect the wall transformer's cable with the 'Power' jack to the Universal Access
Device.
6. Read the file RELEASE.HTM for the latest software changes.
7. Start SETUP.EXE from the UDE CD-ROM and follow the instructions on the
screen. A detailed description of the software installation is followed in the chapter
„Installing UDE Software“.
8. After a few additional steps, the installation program lets you choose to launch
UDE automatically.
The UDE workbench is now installed and ready to use.

If you have trouble while installing the product, please contact the PLS Support Team at
support@pls-mc.com.
? Please pay attention to the chapter „Static Electricity Precautions“ containing important
information about required ESD protection of the access devices.

Installing of Universal Debug Engine Installing Hardware 31 of 177


UAD2-JTAG Protector 2 for UAD2
In hard process environments it is strongly recommended to use the JTAG-Protector
described below. This adapter allows an extended protection of the Universal Access
Devices and other JTAG based devices from the danger of over-voltage and ESD.
The hardware installation of Universal Debug Engine is done within the following steps:
1. Connect the UAD2-JTAG Protector 2 connector 'UAD2' (female connector) with
the JTAG connector of Universal Access Device (UAD2).
2. Connect the UAD2-JTAG Protector 2 connector 'Target' (male connector) with
the JTAG ribbon cable to your target.

! Please note, that the function of the JTAG protections can be ensured only, when the
ground and target power connections (MCU I/O voltage) are established.

Host PC ESD JTAG Target system


JTAG Debugging
Protector
Trans-
former
Trans-
former

Universal Access Device

Signal line +

Ground line

Target Hardware

Additional Ground
line required in case of potential differences

Host Ground UAD Ground Target Ground

? If you have trouble while installing the product, please contact the PLS Support Team at
support@pls-mc.com.

Please pay attention to the chapter „Static Electricity Precautions“ containing important
information about required ESD protection of the access devices. Please note, that the
JTAG Protector DOES NOT suspend the precautions described in this chapter.

32 of 177 Installing Hardware Installing of Universal Debug Engine


UAD-JTAG Protector 2 for UAD2+
In hard process environments it is strongly recommended to use the JTAG-Protector
described below. This adapter allows an extended protection of the Universal Access
Devices and other JTAG based devices from the danger of over-voltage and ESD.
The hardware installation of Universal Debug Engine is done within the following steps:
1. Connect the UAD-JTAG Protector 2 connector 'UAD' (female connector) with the
JTAG connector of JTAG Extender. If the JTAG-Extender is not equipped with a
male shrouded header, please contact the PLS Support.
2. Connect the UAD-JTAG Protector 2 connector 'Target' (male connector) with the
JTAG ribbon cable to your target.

! Please note, that the function of the JTAG protections can be ensured only, when the
ground and target power connections (MCU I/O voltage) are established.

Host PC ESD JTAG Target system


JTAG Debugging
Protector
Trans-
former

Trans- Starterkit or Custom


former
Specific Target Hardware
Universal Access Device 2+

IEEE1394, ETH
USB2.0 JTA
G
JTAG Extender + JTAG Protector
Additional Ground Additional Ground
line required in case of potential differences line required

Host Ground UAD Ground Target Ground

? If you have trouble while installing the product, please contact the PLS Support Team at
support@pls-mc.com.

Please pay attention to the chapter „Static Electricity Precautions“ containing important
information about required ESD protection of the access devices. Please note, that the
JTAG Protector DOES NOT suspend the precautions described in this chapter.

Installing of Universal Debug Engine Installing Hardware 33 of 177


Simulator Version (TSim)
The hardware installation of Universal Debug Engine is done within the following steps:
1. Connect the USB-Key with an USB connector of your PC.
2. Follow the driver installation when the 'New hardware found' dialog appears.
3. Read the file RELEASE.HTM for the latest software changes.
4. Start SETUP.EXE from the UDE CD-ROM and follow the instructions on the
screen. A detailed description of the software installation is followed in the chapter
„Installing UDE Software“.
5. After a few additional steps, the installation program lets you choose to launch
UDE automatically.
The UDE workbench is now installed and ready to use.

? If you have trouble while installing the product, please contact the PLS Support Team at
support@pls-mc.com.

34 of 177 Installing Hardware Installing of Universal Debug Engine


Installing UDE Software
Working with the CD browser
The CD browser helps you to install the UDE software and further software components
and demo versions, e.g. GNU C/C++ Compiler and CASE Tools.

Please insert the Universal Debug Engine CD-ROM. The CD browser will start
automatically. If not, please start the SETUP.EXE from the CD-ROM root directory
manually.
The UDE CD-ROM contains following chapters:
 Readme UDE 4.4 – Contains important information about the current UDE
installation and requirements. Please read it first.
 Install UDE 4.4 Software – Start the installation process of the Universal Debug
Engine. You can install the full version of UDE (communication device required) or
test a demo version of UDE for Starterkit.
 Install UDE Samples – Start the installation process of the Universal Debug
Engine’s Sample directory. It contains code samples for supported compilers, target
architectures and evaluation boards.
 Install 3rd Party Products – Install
demo versions of software, which
enhance the UDE installation, e.g. a
CASE Tool.
 Information and Manuals – Find out
more about all of the UDE products.
 How to contact PLS – guides you to
the directly contact to PLS via Email,
Web and Mail.

Installing of Universal Debug Engine Installing UDE Software 35 of 177


Start the Installation
When a new version of UDE is started the first time, a firmware update may be executed
on the access device (UAD2pro,UAD2+,UAD3+...). This may take some more time than

! usual for the target connect operation. Please DO NOT power off or unplug the access
device while this time!

Before you can use the Universal Debug Engine, you must install the software
components by using the UDE CD-ROM.
To install the software, follow these steps:
1. Read the file RELEASE.HTM for the latest software changes.
2. Start SETUP.EXE from the UDE CD-ROM.

3. Click Next to continue the installing process or click Cancel for aborting.
4. Check the license terms and your customer information and click Next to continue.
5. Choose the destination location installation via the Browse button. Please advise
an empty or new directory for the UDE software. Click Next.
6. Select the Program Folder and click Next to continue.
7. Click Next to continue the installation process.
8. Select the required drivers
 Communication Device Support
 UAD2, UAD2pro, UAD2+, UAD3+, UAD2compact Support
 UAD Parallel Port Driver – UAD Support
 fast-PC6x Communication Driver – fast-PC67, fast-PC276 Support
 Sentinel SuperPro USB Driver – USB-Key for Simulator support
9. Click Next to continue the installing process.
10. Check the selected components you want to install and click Next to start the
installing process.

Note: The next step depends on your selection of the target access and UDE version
respectively. The following step describes what you have to do for each target

!
communication channel. However, you have the possibility to select one or more target
access channels, which will be installed one after the other. In this case, please follow the
corresponding installing description.

36 of 177 Installing UDE Software Installing of Universal Debug Engine


Driver Installation for Universal Access Device
If the previous steps are done successfully, the software will install the hardware driver
components. The Universal Access Device is capable to communicate via parallel port
interfaces and IEEE1394-OHCI interfaces. Please follow the corresponding instructions.

When a new version of UDE is started the first time, a firmware update may be executed
on the access device (UAD2, Uad2pro, UAD3 ...). This may take some more time than

! usual for the target connect operation. Please DO NOT power off or unplug the access
device while this time!

UAD via standard parallel port interface


Please note: The usage of a dongle and the Universal Access Device at the same time
on the same parallel port is not possible, because in some cases the simultaneous usage
of the dongle disturbs the communication to the Universal Access Device.

! We strongly recommend either to use dongle on the second parallel port or to


communicate with the Universal Access Device via the IEEE1394 interface.

1. Click the check box "Universal Access Device" and "Parallel Port Driver" for
installing the Standard Version with Universal Access Device and the host
communication channel via a standard parallel port interface.
2. The driver installation begins with the dialog box "Step 1: Driver Installation". Click
Next to continue the installing process.
3. Select the free parallel port for using. Possible selections are LPT1 and LPT2.
Please disconnect all devices from the selected parallel port and click Next to
continue the installing process.
5. The installation process searches for the selected port and gives information about
the port. Please connect now the Universal Access Device with the selected port
via the 25-wire parallel cable and apply power to Universal Access Device.
6. Click Next to test the communication with Universal Access Device.
7. If the test was successful, you can finish the driver installation. If the test failed,
ensure that all cables and connections are correct. Click Finish to continue.

Please note that the best transfer performance between the Host PC and the target can
only be achieved if the parallel port interrupt is usable and the port is in EPP mode. Use

! the EPPSetup.exe tool from your UDE installation to verify your parallel port installation. It
is recommended enabling the parallel port interrupt and the EPP mode.

Installing of Universal Debug Engine Driver Installation for Universal Access Device 37 of 177
UAD2+ via IEEE1394
Because of the Plug 'n Play-Capabilities of UAD and UAD2+ the IEEE1394 driver
installation is started automatically, when the Universal Access Device is connected to
the host PC the first time.
1. Power ON the Universal Access Device.
2. Connect the UAD or UAD2+ with the host adapter of your PC using the 6-wire
cable. The Windows system will find a new hardware device on your system called
"Universal Access Device" in the “pls Debugging Devices” group and you will be
prompted to install a new device driver.
3. Click Next to continue.
4. Click Search for a suitable driver and click Next.
5. Click Specify a location, click Next and browse for the driver file
\SETUP\DRIVER\UADDEVS\UADDEVS.INF driver on your
UDE CD-ROM.
6. Click Next and Finish.

In the case of problems, please verify the correct installation. Open the Device Manager,
the following entries are shown:
 IEEE 1394 Bus host controllers
 Your host bus controller
 pls Debugging Devices
 Universal Access Device/Universal Access Device 2
 If one of the entries is marked with a question mark, please unplug and plug the
UAD again and repeat the installation if necessary.

? Please see the chapter „Hardware Description“ of the user’s manual for additional
information.

38 of 177 Driver Installation for Universal Access Device Installing of Universal Debug Engine
UAD3+ via IEEE1394b
Because of the Plug 'n Play-Capabilities of UAD3+ the IEEE1394b driver installation is
started automatically, when the Universal Access Device is connected to the host PC the
first time.
1. Power ON the Universal Access Device.
2. Connect the UAD3+ with the host adapter of your PC using the 9-wire IEEE1394b
cable or a 6-9-wire IEEE1394 bilingual cable. The Windows system will find a new
hardware device on your system called "Universal Access Device" in the “pls
Debugging Devices” group and you will be prompted to install a new device driver.
3. Click Next to continue.
4. Click Search for a suitable driver and click Next.
5. Click Specify a location, click Next and browse for the driver file
\SETUP\DRIVER\UADDEVS\UADDEVS.INF driver on your
UDE CD-ROM.
6. Click Next and Finish.

In the case of problems, please verify the correct installation. Open the Device Manager,
the following entries are shown:
 IEEE 1394b Bus host controllers
 Your host bus controller
 pls Debugging Devices
 Universal Access Device 3
If one of the entries is marked with a question mark, please unplug and plug the UAD
again and repeat the installation if necessary.

? Please see the chapter „Hardware Description“ of the user’s manual for additional
information.

Installing of Universal Debug Engine Driver Installation for Universal Access Device 39 of 177
UAD2, UAD2pro, UAD2+, UAD3+ via USB port
Because of the Plug 'n Play-Capabilities of UAD2, UAD2+ and UAD3+ the USB driver
installation is starting automatically, when the Universal Access Device 2 or Universal
Access Device 3 is connecting to the host PC the first time.
1. Connect the UAD2, UAD2pro, UAD2+ or UAD3+ to the PC host system using the
USB cable. The Windows system will find a new hardware device on your system
called “Universal Access Device 2” or “Universal Access Device 3” in the “pls
Debugging Devices” group and you will be prompted to install a new device driver.
3. Click Next to continue.
4. Click Search for a suitable driver and click Next.
5. Click Specify a location, click Next and browse for the driver file
\SETUP\DRIVER\UADDEVS\UADDEVS.INF driver on your UDE
CD/ROM.
6. Click Next and Finish.

In the case of problems, please verify the correct installation. Open the Device Manager,
the following entries are shown:
 Universal Serial Bus controllers
 Your host bus controller
 pls Debugging Devices
 Universal Access Device 2
If one of the entries is marked with a question mark, please unplug and plug the UAD2 or
UAD3 again and repeat the installation if necessary.

? Please see the chapter „Hardware Description“ of the user’s manual for additional
information.

40 of 177 Driver Installation for Universal Access Device Installing of Universal Debug Engine
UAD2+, UAD3+ via Ethernet TCP/IP
The UAD2+ is equipped with a 100 Mbit/s fast Ethernet interface. The UAD3+ is equipped
with a 1000 Mbit/s (1GBit/s) Ethernet interface. It can be connected to a local PC or to a
Local Network via Hubs or to Switches. The UAD2+ and UAD3+ support both, DHCP and
static IP addressing.

Connection methods
Before using UAD2+ or UAD3+ for debugging purposes, the devices must be configured
properly. It can be communicating to the UDE via TCP/IP protocol. The only thing to set is
valid IP (Internet Protocol) addresses. There are two possibilities:
1. Using DHCP, this requires a DHCP server on your network
2. Using static IP address, this requires exactly knowledge of the network structure (e.g.
knowledge of free IP addresses so that there is no IP used twice in the network).
At delivery time, the UAD2+ or UAD3+ was configured with DHCP enabled. After power on
it tries to get an IP address from a DHCP server. When there is no DHCP server
answering, the UAD2+ or UAD3+ will fall back to static IP address after 60 seconds. The
static fall back IP address is 192.168.1.100. The UAD2+/UAD3+ use the following TCP
ports for communication: 43690 (0xAAAA) and 43691 (0xAAAB)

Configuration the IP address via Ethernet


For reconfiguration the UAD2+ or UAD3+ configuration can be changed using a web
browser. The current IP address must be known. This IP address must be entered as the
web address, e.g.
http://192.168.1.74
and the UAD2 Configuration Page or UAD3 Configuration Page appears. In the left
side the serial number of the UAD2+ or UAD3+ and the current configuration is shown.

Installing of Universal Debug Engine Driver Installation for Universal Access Device 41 of 177
In this case DHCP is enabled and the current IP address is 192.168.1.74.
In the right side new settings can be entered. The IP address will also be used when
DHCP is enabled but there is no DHCP server inside the network. After clicking 'Apply'
the new settings are stored. They will be activated after next power on of the UAD2+ or
UAD3+.

Configuration the IP address via USB/IEEE1394


If the IP address of the UAD2+ or UAD3+ is unknown, another configuration mechanism is
possible:
For that the UAD2+ or UAD3+ must be connect either to USB or Firewire. Go to the device
manager’s property page of the UAD2+ or UAD3+ and select Ethernet Config.

The Ethernet Configuration dialog appears where the same settings can be made.

42 of 177 Driver Installation for Universal Access Device Installing of Universal Debug Engine
Once the UAD2+ or UAD3+ are configured well a connection via UAD2+ or UAD3+ can be
established. For that create a new workspace, and select your target configuration. If
default is set as communication device and there is no other UAD2+ or UAD3+ connected,
the Ethernet device is found.
If not, open the menu Config - Target interface... inside UDE or menu Target - Setup
inside MemTool. In the Target Interface Setup dialog select and click on the Setup
button.

For using the TCP/IP communication the Select Communication Device dialog is
opened. You can select the specific access device that you want to use. These settings
are stored in the target configuration *.cfg file format.
For Ethernet connections select UAD2 device, attached to Ethernet port. A specific IP
address to connect can be entered or an UAD2+ or UAD3+ can be selected from the list
after retrieving available devices. Pressing OK stores the settings. A connection is
established now.
If multiple UAD2+ or UAD3+ are used at the same time (e.g. for automated flash
programming), then every UAD2+ or UAD3+ have its own target configuration with either
unique IP or unique serial number.

Installing of Universal Debug Engine Driver Installation for Universal Access Device 43 of 177
Driver Installation for USB-JTAG-Port
Because of the Plug 'n Play-Capabilities of the USB-JTAG-Port, the USB driver
installation is started automatically, when the USB-JTAG-Port is connected to the host
PC the first time.

USB-JTAG-Port via USB port


1. Connect the USB-JTAG-Port to the PC host system using the USB cable. The
Windows system will find a new hardware device on your system called "USB-
JTAG-Port" in the “UDE JTAG-Port Devices” group and you will be prompted to
install a new device driver.
3. Click Next to continue.
4. Click Search for a suitable driver and click Next.
5. Click Specify a location, click Next and browse for the driver file
\SETUP\DRIVER\USB-JTAG-Port\USBJTAG.INF driver on your
UDE CD/ROM.
6. Click Next and Finish.

In the case of problems, please verify the correct installation. Open the Device Manager;
the following entries are shown:
 Universal Serial Bus controllers
 Your host bus controller
 UDE USB-JTAG Devices
 UDE USB-JTAG-Port
If one of the entries is marked with a question mark, please unplug and plug the JTAG-
Port again and repeat the installation if necessary.

44 of 177 Driver Installation for USB-JTAG-Port Installing of Universal Debug Engine


Driver Installation for USB-Key (Sentinel USB SuperPro)
Because of the Plug 'n Play-Capabilities of the USB-Key the USB driver installation is
started automatically, when the USB-Key is connected to the host PC the first time.

USB-Key via USB port


1. Connect the USB-Key to the PC host system using the USB port. The Windows
system will find a new hardware device on your system called "USB SuperProNet"
or "USB SuperPro" or "USB UltraPro" in the “Universal Serial Bus controller” or
“Other devices”. Default the driver is installed while the UDE installation process.
2. To install the drivers manually click on the installing program located at
\3rdparty\Rainbow Combo Installer\SETUP.EXE
driver on your UDE CD/ROM.
3. Click Next and Finish.

Installing of Universal Debug Engine Driver Installation for USB-Key (Sentinel USB SuperPro) 45 of 177
Driver Installation for fast-PC6x Card
fast-PC67C/PCI via PCI Bus Host PC
If you have inserted fast-PC67C/PCI in your PC in one of the 32-bit PCI slots, during the
system start-up the operating system recognizes the new hardware. The PCI
enumeration process during start-up detects the new fast-PC67C card as PCI Simple
Communications Controller in the system and requests for a new driver for the card after
system login.
1. The New Hardware Wizard will open. Click Next to start the driver installation
process.
2. Click Search for a suitable driver and click Next.
3. Click Next to continue the installing process.
4. Click Specify a location, click Next and browse for the driver file location
\SETUP\DRIVER\fastPC6x\FSPC_6XW.INF on your UDE CD/ROM
or disk.
5. The next box let you enable or disable the new hardware in the hardware profiles.
Click Next.
6. The box shows detailed information about the device driver and the firmware.
Click Next.
7. A short hardware test will be executed. If the test was successfully, click Next.
8. If the driver installation was successfully, click Finish or Close.

46 of 177 Driver Installation for fast-PC6x Card Installing of Universal Debug Engine
Driver Installation for Starterkit Version
JTAG Parallel Port via Standard Parallel port
1. Click the check box "Starterkit JTAG Parallel Port" for installing the Starterkit Version
with parallel port support (Onboard JTAG adapter) or use the prepared "Installation for
Starterkit" version of UDE. Click Next to continue the installing process.
2. The driver installation begins with the dialog box "Step 1". Click Next to continue the
installing process.
3. Select the free parallel port for using. Possible selections are LPT1 and LPT2. Please
disconnect all devices from the selected parallel port and click Next to continue the
installing process.
4. The JTAG parallel port Driver for direct communication via standard parallel port will
be installed. Finish the driver installation.

Serial Port via Standard Serial Port


1. Click the check box "Standard Serial Port Support – COMx Support" for installing the
Starterkit Version with serial port support or use a prepared "Installation for Starterkit"
version of UDE. Click Next to continue and complete the installing process.
2. For setup the right COMx port selection, please ensure the right standard port (often
COM1 or COM2). Set the corresponding COMx port to UDE, if the connection to the
evaluation board cannot be established. In the dialog "Can't establish Connection to
Target" push the Change button, push the button Setup on the page General and
change the port number to the memorized port from the Device Manager.

Serial Port via USB-to-Serial Port


1. Install the USB-to-Serial Converter driver from the CDROM browser or directly from
the CDROM located at <CDROM>\3rdparty\usb-rs232\ .
The drivers have to be installed before you connect the converter to an USB port.
2. Click the check box "Standard Serial Port Support – COMx Support" for installing the
Starterkit Version with serial port support or use a prepared "Installation for Starterkit"
version of UDE. Click Next to continue and complete the installing process.
3. For setup the right COMx port selection, please open the Device Manager and
search for Ports (COM & LPT). The USB Converter is located as "Prolific USB-to-
Serial COMx Port (COM3 or higher)". Set the corresponding COMx port (e.g. COM3
in this case) to UDE, if the connection to the evaluation board cannot be established.
In the dialog "Can't establish Connection to Target" push the Change button, push
the button Setup on the page General and change the port number to the
memorized port from the Device Manager.

Installing of Universal Debug Engine Driver Installation for Starterkit Version 47 of 177
License Manager
When a new version of UDE is started the first time, a firmware update may be executed
on the access device (UAD, UAD2 ...). This may take some more time than usual for the

! target connect operation. Please DO NOT power off or unplug the access device while
this time!

During the installation process, you will be asked for a license key. You got your personal
license key with consignment of Universal Debug Engine. You can also find the license
key within the UDE CD-ROM case.
Please enter the key into the left edit field and click Add. A new key entry will be added, if
the license key is valid. Pushing the Button OK applies the changes to the system.
Otherwise licenses are distributed as key file with the extension *.ukf.
Use the button Add Key File to browse and select a new key file.

If you expand your feature list of UDE, you will get further license keys. These keys will
either replace an older key or complement your key list. Please use the Help - License
Manager from the system menu of UDE to open the License Manager.
If you do not have a valid license key for a desired feature, a message box "License
check failed" will appear as soon as you request this feature.

! Please note that one license key is valid for the combination of one Universal Access
Device with one supported target architecture only.

48 of 177 License Manager Installing of Universal Debug Engine


Node-locked licensing
Universal Debug Engine products will be licensed by node-locked licensing, if the product
package does not contain any additional access device, which will be used normally for
licensing of UDE. For this type of licensing the customer will receive an activation key
with his license documents. This activation key is the basic reference identifier assigned
to his UDE license.
The activation process for a node-locked licensing based UDE product will cover the
following steps:
1. The customer receives the activation key with his license documents and installs
UDE on his Windows PC
2. The customer determines the host identifier of his PC. How to obtain this host ID
will be described in the following chapter
3. The host ID must be transmitted to PLS’ support (email to support@pls-mc.com)
with the corresponding activation key from the UDE license documents.
4. He will receive the license file from PLS and install the license file using UDE
license manager dialog.

How to get the Host ID of UDE Installation


This chapter describes three methods to obtain the host ID, which is required for
generation a node-locked license file.

Obtain Host Identifier via Script


The following 3 lines of script code must be saved at local disk as Visual Basic Script file
GetHostID.vbs:
set LicenseServer = CreateObject ("UDE.LicenseServer.4.4")
RequString = LicenseServer.RLMHostID
WScript.Echo "PC Host ID:" & vbcrlf & RequString

This script must be executed by following Windows command line:


CScript GetHostID.vbs > HostID.txt

The content of the file HostID.txt hast be send to PLS’ support mailbox (support@pls-
mc.com) with the activation key from license documents.

The script COM-object identifier of the UDE license server is version depended. The
COM-object id listed in the script code above is the COM-object id of UDE license server
of UDE version 3.0. If higher UDE version is used, the first line of code must be changed.

The COM-object Id must be expressed as


set LicenseServer = CreateObject ("UDE.LicenseServer.<ude major version>.<ude
minor version>")

For UDE version 4.4 this script code line must be changed to:
set LicenseServer = CreateObject ("UDE.LicenseServer.4.4")

Obtain Host Identifier via UDE License Manager


The following steps must be executed to obtain the host identifier by UDE license
manager:
1. Start UDEOpenPlatform.exe or UDEDesktop.exe
2. Open UDE main menu Help and use License Manager to open UDE license
manager dialog
The content of the dialog field Host Identifier can now be copied to Windows clipboard.

Installing of Universal Debug Engine Node-locked licensing 49 of 177


The copied text string hast be send to PLS’ support mailbox (support@pls-mc.com) with
the activation key from license documents.

Obtain Host Identifier via UDE License Key Request Form


All information, which is required for license activation, can be delivered by UDE license
request form. The usage of service requires an active UDE configuration is normally used
by subsequent request for updated license keys. The following step must be executed to
create the appropriate information in this case:
1. Start UDEOpenPlatform.exe or UDEDesktop.exe
2. Open UDE main menu Help and use submenu UDE License Key Request
Form to open UDE license key request form

3. Fill all necessary fields of the license key request form, such as user name,
department, e-mail address and license activation key

50 of 177 Node-locked licensing Installing of Universal Debug Engine


4. Fill the Save as ZIP file field by a local hard disk path and press the Save ZIP
File button.
5. Close this dialog
This ZIP file contains all necessary information and can be sent directly to PLS’ support
(support@pls-mc.com) without any further information.

Setup of Node-Locked License File


After sending the host identifier of your Windows PC to PLS, you will get a license file,
which contains all licenses for all architectures, which are part of this license. The license
file has the extension *.lic and the license file contains several lines:
ISV pls-mc
LICENSE pls-mc ude_tricore 2014.12 permanent uncounted hostid=ANY
options=Starterkit|Simulator _ck=051ea537fb sig="60P0453CGHCUHR0XBGA
WQY622179HMSAFCC4UWR22GH6J8MGY0P0EREHG5G0925R6AJMNQAUP8"
LICENSE pls-mc ude_tricore_pcp 2014.12 permanent uncounted hostid=ANY
options=Starterkit|Simulator _ck=a71ea5a55a sig="60P0453609KDHHSAXT1
22XVNQ760EABXRQ6GEC022GM184JT750TCB1E80WDHPM7MARTNY0KTG"

Typically, the license arrives as attachment of a mail from PLS’ support team. Save this
attachment to a local hard disk path. Than execute the following steps to activate the
node-locked license by UDE license manager dialog:
1. Start UDEOpenPlatform.exe or UDEDesktop.exe
2. Open UDE main menu „Help“ and use submenu “License Manager” to open
UDE license manager dialog

3. Press Add NL License File and browse with the opened file input explorer to
your local copy of the license file.
4. After successful import, the license manger dialog will be updated and displays
the additional node-locked licenses.

Installing of Universal Debug Engine Node-locked licensing 51 of 177


Uninstalling or Reinstalling UDE
For uninstalling the Universal Debug Engine (UDE) workbench, you may use the
'Add/Remove Programs' feature from the Control Panel or the Remove function of the
Setup program. The uninstall function will remove all UDE components except the user
changed files as workspaces.

Note: If you made any modifications on the examples and you want to keep these

!
changes, copy or move the example source files to another location before uninstalling or
reinstalling of UDE. However, the uninstall procedure will not delete other projects and
files.

For uninstalling of UDE, execute the following three


steps:
1. Click Start from system menu, choose Settings and open the Control Panel.
2. Choose the 'Add/Remove Programs' Icon and open it.
3. Select 'Universal Debug Engine' and click Change/Remove ... Button.

For reinstalling the Universal Debug Engine start the Setup program SETUP.EXE
from the UDE for TriCore CD-ROM. In the first step, the previously installed components
of UDE are removed. Please follow the instructions on the screen.

52 of 177 Uninstalling or Reinstalling UDE Installing of Universal Debug Engine


Trouble Shooting
Please read this manual and the hints very conscientious. If the problem is not soluble,
the fastest way is to fill in the 'Problem Report Form' at the end of this manual and fax it to
the PLS Support Line at support@pls-mc.com. Our Support team will contact you as
soon as possible.

Precautions
When a new version of UDE is started the first time, a firmware update may be executed
on the access device (UAD, UAD2 ...). This may take some more time than usual for the

! target connect operation. Please DO NOT power off or unplug the access device while
this time!

Latest Versions on World Wide Web


You may find the latest versions of Universal Debug Engine, fast-view66 and other

? components on our Web site http://www.pls-mc.com/download.htm for downloading.


Please see also the FAQ site on http://www.pls-mc.com/faq.htm.

Known Issues with UDE


Installation fails
Please make sure that you have full rights (administrator rights) for the installation
process of UDE.

IEEE1394 Port Installation fails


In some cases it is possible, that the Plug and Play mechanism does not work
immediately. Please try in this case new Plug and Play detection by disconnecting the
IEEE1394 cable from the Universal Access Device. Power first the Universal Access
Device and after that connect the IEEE1394 cable with the Universal Access Device
again. If the installation was successfully, the “Universal Access Device” is visible in the
folder “pls IEEE1394 Debugging Device” of the Device Manager (Control Panel -
System - Device Manager) or the hardware wizard asks for a new driver.

UAD2/ UAD2+ does not enumerate at USB-Bus


This happens, when an UAD2, UAD2+ is connected to a target without powering UAD2,
UAD2+. When the target system gets power before the UAD2, UAD2+ it is possible that it
does not connect correctly to USB. In this case, power off target, power off UAD2,
UAD2+, disconnect USB and disconnect the target from UAD2. Then power on UAD2,
UAD2+, connect to USB, power on target and connect both together.
If the problem persists, please contact the PLS Support Team at support@pls-mc.com.
Check also
Please make sure that you have connected all cables properly and selected the right
target device.

Installing of Universal Debug Engine Trouble Shooting 53 of 177


Getting Started

Examples delivered with UDE


The Universal Debug Engine comes with a set of example programs demonstrating the
features of UDE. The examples are compiled with the available Compilers for starterkit
boards and evaluation boards and are located depending on the Windows OS version:
Windows Vista, Windows 7, Windows 8:<PROGRAMDATA>\pls\UDE4.4\Samples

ARM7 Example programs for ARM7 derivatives

ARM9 Example programs for ARM9 derivatives

ARM11 Example programs for ARM11 derivatives

C16x Example programs for C167, ST10F167, ST10276 and other derivatives

C166CBC Example programs for C161U, C165UTAH and other derivatives

CortexM3 Example programs for Cortex-M3 derivatives

PowerPC Example programs for PowerPC derivatives

SuperH SH-2A Example programs for SuperH derivatives

TriCore Example programs for TriCore derivatives

TriBoard_TC1130 Example programs for TriCore TC1130

TriBoard_TC1796 Example programs for TriCore TC1796

Example program lets flash the LED using the PCP. This Example is delivered
HelloPCP for TriCore derivatives with PCP on-chip available only

Sieve Example demonstration of the Simulated I/O capabilities, source code directory

TimeDemo Example demonstration of the variables auto refresh mode and using interrupts

GnuTC Example directory GNU Compiler, contains source, locater and makefiles.

Ram Example located for using in external RAM, contains binary and mapping file

iRam Example located for using in internal RAM, contains binary and mapping file

Rom Example located for using in external ROM, contains binary and mapping file

iRom Example located for using in internal ROM, contains binary and mapping file

TaskingTC Example directory Tasking Compiler, contains source, locater and makefiles

XC16x Example programs for XC161, XC167 and other derivatives

XC2000 Example programs for XC2287, XC2267 and other derivatives

XScale Example programs for XScale derivatives

Getting Started Examples delivered with UDE 55 of 177


A First Example with TriCore™
We assume that you now have successfully installed the Universal Debug Engine
(UDE) version. In this section, you will learn about...
 how to start UDE
 how to use the windows in UDE
 and using principles of how to debug an existing application as well as how to load
and start them
We recommend you to go through this tutorial step-by-step. This example is shown under
Windows Vista and using the TriCore TC1796 TriBoard Starterkit offered by Infineon
Technologies with the communication add-on "Universal Access Device 2".
For further supported controllers please look at the compatibility list below. For the correct
setup of the board look up the chapter „Hardware Description Starterkit boards“ in the
Hardware Appendix of the UDE manual.

Precautions
When a new version of UDE is started the first time, a firmware update may be executed
on the access device (UAD, UAD2 ...). This may take some more time than usual for the

! target connect operation. Please DO NOT power off or unplug the access device while
this time!

Starting Universal Debug Engine


Once the operating system is up and running, double-click on the icon UDE on the
desktop. Alternatively, UDE may be launched also via Start - Programs - Universal
Debug Engine - UDE Desktop. This will start the desktop of UDE development system.

The next step is creating a new workspace. An UDE workspace saves all configurations
and settings of UDE Desktop, windows and their content, path and name of loaded files.
The file extension is *.wsx
Click New Workspace on the File menu and create
a new file, e.g. TC1796_TriBoard.wsx .
After creating the new workspace, you will be asked
to select a target hardware configuration. UDE
comes with some default target configurations of
starterkits. Click the Default button and enable "Use
a default target configuration" to select a predefined
configuration.
On a later chapter, the creation of a new target
configuration will be described as well.

56 of 177 A First Example with TriCore™ Getting Started


In this example a communication hardware add-on, like the UAD2, is used. The TriBoard
with TC1775B configuration is available under the entry "TriCore - TriBoard with
TC1796 (JTAG/OCDS)". The content of the parentheses describes the target
communication channel, JTAG with OCDS L1 support in this case.

Select this entry and click Finish. Set the name for the target configuration, e.g.
TriBoard_TC1796.cfg. In the "Select target Configuration" dialog click OK. When
executed successfully, the UDE for TriCore Workbench appears:

When a dialog "License Check Summary" appears, a valid license is not available. There
are some reasons for that. Your license key, you have got within the delivered UDE
package, was not published to UDE. Use the menu Help - License manager for inserting

! the key string. Alternatively, the hardware add-on is not connected or powered on. Please
use the Device Manager from the Control panel for validation.

Getting Started A First Example with TriCore™ 57 of 177


When launching UDE for the second time, you may use either File - Open Workspace or
File - Recent Workspaces to select the workspace and start a new session with settings
from the saved workspace.
If you got an error message, return to the section “Installing UDE Software” and make
sure that all settings are correct. Refer also to the Troubleshooting section to get further
information. If the problem persists ask the PLS Support Team at support@pls-mc.com
for qualified help.

Loading a TriCore Executable


After having UDE for TriCore started, we want to
load a program that can be executed on the TriCore
Starterkit board.
First, the GNU compiler variant of the Hello
example located for using in the internal RAM has to
be used. This example is a basic demonstration,
which will toggle the LED on the TriBoard only.
The example is located to the internal sRAM of the
TriCore TC1796 at memory address 0xD400'0000.
Select on the File menu bar, browse to
<UDE_SAMPLE_DIRECTORY>\SAMPLES\
TriCore\TriBoard_TC1796\Hello\GnuTc\iRam\Hello.elf.
You will now see the source code of the main function from the sample application. When
clicking with the right-hand mouse button into the Program window, a context button
appears to switch between Source code only and Source/Assembly code display via the
Mixed Mode entry.

Project management
A docked window at the left-hand side of the UDE desktop
houses the Explore Symbols tab where the application's
source files and their inside procedures are shown after
unfolding the markers.
If no workspace window is shown, you can make it visible via
the menu Window - Project Workspace.
The UDE project contains source files, C/C++ functions,
address sections and user-defined breakpoints.
By double-clicking on one of the source files, the selected file
will be brought into the Program window; by double-clicking on
one of the procedures, the selected procedure is displayed.
After loading the program code, the Program window shows
following content.

In the Program window, a yellow arrow indicates the current instruction pointer position.

58 of 177 A First Example with TriCore™ Getting Started


Please note: After downloading a program executable, the instruction pointer is set to the
entry point of the program. Usually the entry point is located at the start-up code. That is
why the default C/C++ Program window above does not show an instruction pointer. To

! force the view of the current instruction pointer use the context menu Show Next
Statement or the main menu Show - Show IP.

Running and Stepping through the Application


After the application has been loaded successfully,
you may open now the menu Debug to run or step
through the example procedures. The icons from the
Debug menu are also located in the tool bar,
covering the same functionality. Short cuts are
available too.
Click now onto the Start Program Execution entry
or button and watch the LED on the TriCore Starterkit
board flashing the Morse code for UDE. When
clicking onto Break Program Execution, the
application is halted and the current instruction
pointer position (code line) is displayed.
You may also step through the application by using
Step over Subroutine (steps with freely executing subroutines in one-step) or Step into
Subroutine with following function calls and executing subroutines instruction by
instruction.

Note: For debugging the C/C++ parts of the example program only, the start-up code
must be executed first. For this, make a Step over Subroutine from the Debug menu of

! UDE. After that, the IP will be shown at the main function; the start-up code has been
executed.

The application can be reloaded with Restart Program Execution. If the program is
running already, it will be started immediately after the reload terminates.

Setting Breakpoints
Now, we assumed that a loaded application is error-free and ready for running. However,
for debugging purposes single step executions and breakpoints have to be performed to
watch program behavior and processor status.
Now we want to set a
breakpoint in the
Hello program. To
do this, either click with
the mouse on the grey
column on the left or on
a line in a procedure
and then click on the
simple Hand symbol in
the tool bar. A red-filled
dot appears in the line
indicating that the
breakpoint has been
successfully set.
Alternatively, you may
also select the menu
Debug -
Breakpoints...

Getting Started A First Example with TriCore™ 59 of 177


Within the Breakpoint dialog, breakpoints may be added, changed of type and deleted
using the corresponding buttons. By clicking on the E/D (Enable/Disable) checkbox, you
toggle the breakpoint between active and suspended. Disabled breakpoints are indicated
by a red-shaped circle. Now start the application again. The application will be executed
until the first breakpoint in the execution path is reached. The application will be stopped
then immediately.

Note: The OCDS unit of the TriCore microcontroller supports an unlimited count of
software breakpoints, but only four hardware breakpoints. The background is that
software breakpoints are made by software code patching, which is only possible in

! writeable RAM areas. Hardware breakpoints are supported by the OCDS unit directly and
can be used in read-only ROM areas only. The possibility of patched ROM areas (e.g.
FLASH) is not realized in UDE because of the vendor-defined limited FLASH
programming cycles.

Another possibility to execute certain portions of code without setting a breakpoint


explicitly is by placing the cursor into the line where the application is required to halt and
then select Debug - Run Program to Cursor from the menu or Run to Cursor (F4-
Button) from the context menu.

CPU Registers
The CPU Register window is opened
by the menu View - CPU Window or
the corresponding tool bar button.
Perform a few single steps to see the
CPU register values changing
according to the executed instructions.
Registers which values have been
changed compared with the previous
state are red highlighted to provide
quick overview.
While the program is stopped (e.g.
between single steps) you may alter the
content of registers. Simply click on the
register's value in the CPU registers
window and type in the new value of
the register.

SFR Registers
Special function register values are changed in the same way like in the SFR Register
window (open this window by selecting the menu View - SFR View). To add a new
register entry, select Browse Ins from the context menu of the SFR Register window and
take the SFR that you want from the list.

60 of 177 A First Example with TriCore™ Getting Started


Tooltips show the address, the reset value of the current SFR and further information
about the focused register. Expand a SFR for viewing all available fields composing this
register. With a right click on the values, you can change them.

! Various registers are protected which means that a special unlock sequence is required
to change the register value. UDE can unlock these registers. Use the context menu of
the register name and disable the entry Write protect.

Viewing Variables
Viewing and changing global/static variables
All global and static variables from the
C/C++ source code may be observed
directly using the Watch window. Open the
Watch Window by selecting the menu View
- Watch Window or the corresponding tool
bar button.
The variables can be added by double-
clicking to <new variable> or using the
context menu of the <new variable> entry
via Browse Ins. The browser dialog shows
you all available global and static variables.
Click Add for adding a new variable to the
watch window.
The variables are sorted in following
groups:
 Global Variables – shows all global variables with a global scope.
 Static Variables (at file level) – shows only variables visible at a specific file.
 Static Variables (at function level) – shows only static variables visible at a specific
function.
 Static Variables (all) – shows all static variables, which are not global variables.
 All Global/Static Variables – shows all global and static variables.
 If the variable is expandable, i.e. it is a pointer or an array, clicking on the '+' sign in
front of the variable's name will expand it. This means, that the location where the
pointer points to or the content of the elements of the array will be displayed.
Expanding is possible for more than one level.
Variable values can be changed easily by double-clicking in the value area or pressing
<F2> and typing in the new value.

Watch tips
Furthermore, UDE offers so-called Watch tips, which show you the content of simple
variables in the Program Window. Highlight i.e. the morse_bit_counter variable
from the morse() function by a double-click, move the mouse pointer over and the
content will be displayed in a watch tip after a short waiting time.

Getting Started A First Example with TriCore™ 61 of 177


Viewing and changing local variables
Viewing local variables is provided by the Locals Window that can be reached via the
menu View - Locals Window. In this window, all currently valid local variables are
displayed. The value of the local variable can be changed in the same way as in the
Watch Window.

Viewing Memory Locations


The Memory window which is available via View - Memory Window and enables to view
and change memory areas in the TriCore's memory space. To change the memory's area
set the cursor to the address row of the memory window and type in the new address.
Memory locations itself can be changed by clicking on a memory location value and
typing in the new value. Changed values are marked blue before they are written back to
the memory.
The memory window supports the viewing modes as Byte, Word, DWord, Double, Fract
and the ASCII representation of the memory area.

Leaving the Project


To leave the current Project, select File - Close Workspace from the UDE Desktop
menu. The workspace with all settings will be saved automatically. If you want to save the
current project under a different project name, select Save Workspace As ... from File
menu. In the file selection box the new workspace name must be selected and confirmed.

62 of 177 A First Example with TriCore™ Getting Started


A Multi-Core Debugging Example with TriCore/PCP
The HelloPCP program delivers an example of how to use the PCP (Peripheral
Communication Processor) of the TriCore chip. It demonstrates the multi-processor
support of UDE. When running, a flashing LED on the TriBoard is displayed while the
flashing pattern itself may be determined by a string in the source code. The string is
translated into Morse code that turns out to flash the LED according to this code.
Please note that in this example the PCP is the working horse serving the interrupts of
the GPTU. The PCP code is contained in the source file MORSE.PCP. The TriCore itself
is used only to initialize the PCP.

Creating a New Workspace with changed configuration


At first, a new workspace has to be created. Click New Workspace from the File menu
and choose a new file name in the opening file selection box. The next step extends the
target configuration with the PCP controller.
UDE comes with a number of prepared target configurations. For this example, the
TriBoard with TC1796 configuration, used in the chapter above, has to be copied and
changed. Select the entry "TriBoard with TC1796 (JTAG)" and click Copy. In the
configuration box, choose a new file, e.g. TriBoard_TC1796_PCP.cfg.
The Target Configuration Dialog will be opened. This dialog gives the user the possibility
to change the target hardware descriptions and settings.

Select the PCP entry as shown above, it enables the PCP debugging. Change the Target
Description to ".. TC1796B and PCP (JTAG)". Click OK.
Your workspace will be reconfigured and the workspace view shows two core debugger
entries.

All windows can be allocated to one of the cores only, except the command view. To

! differentiate the both cores each window shows the allocated core as descriptor in the
title bar, i.e. as Controller0.Core and Controller0.PCP.

Getting Started A Multi-Core Debugging Example with TriCore/PCP 63 of 177


When the connection is successfully established, the following messages will appear in
the command window:
Connection to TC1796 target monitor established: TriCore(Core),
ID: 200B8083h
Connection to TC1796 target monitor established: TriCore(PCP),
ID: 200B8083h
When both debuggers are launched, UDE is ready for loading the application file
HelloPCP.elf.

Running the Program


After loading HelloPCP.elf into the TriCore target system, two program windows
are displayed. One of them is the PCP program window while the other is the TriCore
program window. Buttons and menu commands offered are related to the active
debugger window.

To debug the PCP program, set a breakpoint in the PCP code, switch to the Core
Window and execute a Step over Subroutine. This will initialize the PCP. After that click
onto Start Program Execution of the TriCore code.

Please note, that the sequence described above must be executed exactly in this order.
The background is that the start-up code transfers the PCP code to the PCP memory and

! overwrites any software breakpoints. To give the UDE the possibility to set a breakpoint
to the PCP, UDE must have access to the PCP after the initialization. That is why the first
step must be a Step over Subroutine.

The PCP program will stop at the breakpoint. Now you may for example step through the
code, continue running the PCP program or watch the PCP registers.

HelloPCP Internals
The TriCore program initializes the GPTU0, the PCP and the port P0. At the end of the
program, the GPTU0 timer is started to provide recurrent interrupts to execute the PCP
routines.
The PCP program may be viewed like a state machine. Each interrupt causes the PCP to
start in the following state (EXIT instruction with restart at next address). Each state ends
with setting GPTU0 registers to proper values. When the timer of GPTU0 overflows,
channel 1 of the PCP is restarted. This way, the PCP program will infinitely run and
continuously send the string defined by
const char morse_string[] ...

64 of 177 A Multi-Core Debugging Example with TriCore/PCP Getting Started


A Multi-Core Debugging Example with TriCore2 AURIX
Infineon recently introduced its 32-bit multi-core architecture AURIX (AUtomotive
Realtime Integrated neXt generation architecture). The first AURIX architecture based
MCU, part number TC275A, contains three TriCore processor cores (version 1.6). The
following chapter describes the possibilities of debugging three cores of the example
architecture AURIX. Multi-core debugging is possible with other architectures in a similar
manner.
The described multi-core features of UDE are available in the UDE Open Platform.
Please run UDE Open/Visual Platform from the Window’s start menu.

Understanding a Multi-Core Configuration


UDE supports different scenarios for Multi-Core debugging, the used configuration is
static during a debug session:
1. Several cores on one Chip using the same JTAG-Chain (AURIX)
2. Several cores on different Chips using the same JTAG-Chain
3. Several cores on different Chips using different Debug-Channels
The configuration is stored in the *.cfg-File and is managed via the Target Configuration
Wizard.

Creating a New Workspace


At first, a new workspace has to be created. Click New Workspace from the File menu
and choose a new file name in the opening file selection box.
UDE comes with a number of prepared target configurations (Default button). For this
example, the TriBoard with TC275A configuration is suitable. Select the entry "TriCore -
Infineon - TC275A Starterkit - TriBoard with TC275 A-Step (JTAG)" and click to
Finish. In the configuration box, choose a file, e.g. TriBoard_TC275A.cfg.
Select the created configuration and click to Edit to edit the target configuration.

The default target configuration contains all information about the Core0, Core1, Core2,
GTM and FLASH devices. Core0 is the master core (TriCore1.6P), Core1 and Core2 are
slave cores (TriCore1.6E) of the Core0. GTM support is disabled in this example.

Getting Started A Multi-Core Debugging Example with TriCore2 AURIX 65 of 177


To change a target a core-specific property, select of the Controller0 items and click the
Setup button. The page General of Core0 selects the communication device and setups
the JTAG access options.

The page Connect / Reset setups the connect options including the reset mode and the
initialization commands.

The pages Debug and Start / Halt defines more debug options and start/halt commands.
Please see the UDE help description for more information about the meaning of each
setting.
Leave the Target Interface Setup and click OK. When the connection is successfully
established, the following messages will appear in the message view:
Connection to TC275A_ED target established: TriCore(Core0),
ID: 201DA083h
Connection to TC275A_ED target established: TriCore(Core1)
Connection to TC275A_ED target established: TriCore(Core2)
When all debuggers are launched, UDE is ready for loading the multi-core application
Timedemo.elf.

66 of 177 A Multi-Core Debugging Example with TriCore2 AURIX Getting Started


Preparing the Debugger
For better clarity, the window tabs as well as the top window borders for debugger
window associated to a dedicated core debugger are colored by default. Default coloring
can be changed to the user’s needs. Open the menu Config - Debug Server
Configuration - Framework - Windows Tabs Color.
Select one of the core’s view server and change or assign a tab color to it. The selected
color is now used for each window tab of the selected core debugger.

Show, Hide and Group Core-Related Windows


When debugging a multi-core system with a lot of open debugger windows may lead into
a very confusing debug session. Visibility groups are helping to keep the debug session
clear. A visibility group is a container for windows, which are visible at a certain point of
time (e.g. if a dedicated core debugger is active).
Visibility groups can be activated using the menu Config - Debug Server
Configuration - Framework - Visibility Groups - Assign debugger.

By default, each visibility group is assigned to the appropriate core and only those
windows are visible at the same time. All open windows can be assigned to different
visibility groups. This way it is possible to show windows related to a different core than
the active at the same time. To customize the visibility groups use the context menus of
the Visibility Groups Manager and underneath items in the target browser.

Getting Started A Multi-Core Debugging Example with TriCore2 AURIX 67 of 177


Loading a Multi-Core Executable
UDE supports several possibilities to handle executables for multi-core architectures:
1. One executable is suitable for each core and there is only a single Elf file.
2. All executables of all cores are combined to a single Elf file.
3. Each core has its own Elf file.
UDE handles this requirements via a multi-core / multi-program loader box, where can be
selected, which executable is assigned to which core. This can be selected for binaries
and symbols.
Select from the UDE menu File - Load Program and browse to
<UDE_SAMPLE_DIRECTORY>\SAMPLES\
TriCore\TriBoard_TC275A\Multicore_Timedemo\TriBoard_TC2
75A_Hightec_IntRam2\Timedemo.elf.
This is an example of a single executable, which can be loaded into each core. That’s
why, there is only the entry Timedemo.elf for all cores assigned. Select the required
check marks.

UDE will load and transfer all binaries into the corresponding core and the symbols to the
debugger symbol server. After that step, you can add new windows to each core
debugger.

68 of 177 A Multi-Core Debugging Example with TriCore2 AURIX Getting Started


FLASH programming
In TriCore2 architecture, the core0 is used to program FLASH. The FLASH/OTP
Programming Tool is opened automatically, when the code is downloaded to FLASH
regions. Manually, it can be opened via menu Tools – FLASH Programming.

Click to Program All and Verify All to work on all FLASHs at once.
The FLASH/OTP Programming Tool supports Remap settings for download into
cached regions. Click to Setup ... button and select the page Mapping.

The FLASH/OTP Programming Tool supports the Safe BMI header handling, too.

Getting Started A Multi-Core Debugging Example with TriCore2 AURIX 69 of 177


The AURIX UCB handling is also supported via the UCB button of the FLASH/OTP
Programming Tool.

Core Selection
To select the right core debugger, you can click into a core-specific window (with a
colored frame tab) and the focus will be on this core debugger. The state bar below
shows the current selected core debugger and allows the selection via right-click on it,
too. The context menu of a specific core in the Target Manager windows allows it also to
make this core active and focused.
This behavior of UDE is high configurable. Use the menu Config – Debug Server
Configuration – Framework – Switch Debugger to setup all options.

70 of 177 A Multi-Core Debugging Example with TriCore2 AURIX Getting Started


For example, UDE can be visible as the following screenshot shows:

Core0 is halted and is focused, Core1 and Core2 (slave cores) are inactive and not
focused. For each core a CPU window is opened.

Single-Core Breakpoints
A simple example is to set a breakpoint to a program location of a single core. Select a
core program window and set the breakpoint via context menu in this program window. If
the source file is not available, opens the CoreX Symbols window and select the source
from the Source Files folder.
In this first example, select Core1, set a breakpoint to line 83, select Core0 (only this
core can be started in TriCore2 architecture) and run the program via Start Program
Execution. This will start the Timedemo.elf on Core0, and Timedemo.elf will
start Core1 und Core2 automatically. After a short time, Core1 stops, because the
breakpoint is reached. Core0 and Core2 are running furthermore.
After inspecting of Core1, it can be started via Start Program Execution again.
Without run control group cores are mainly independent. Go / Break / Step-Into / Step-
Over / Step-Out commands influence active core / debugger only, Reset influences all
cores.

Getting Started A Multi-Core Debugging Example with TriCore2 AURIX 71 of 177


Multi-Core Breakpoints and Stepping
A multi-core application may require that in case of reaching of a breakpoint condition in
one core, other cores must be halted and after that, the halted core must be started
simultaneously. The Multi-core run group manager helps you to setup the combination
of halting / starting of core groups and synchronize cores.
Open the manager via Config - Multi-core Run Control Configuration. Create a new
group Core0 and Core1 and add Controller.Core0 and Controller.Core1 to
this group.

Select the required properties of the run control group via check boxes.
Break the program via Ctrl+F5. Core0 and Core1 are stopped simultaneously; Core2 is
still running (because it is no part of a run control group). Select Core2 and stop it
manually. Remove all breakpoints. Restart Program via F7.
Set a new breakpoint in Core1 in line 51 and start the program execution. Both, Core0
(halted) and Core1 (halted by internal breakpoint) are stopped by the breakpoint
condition in Core1. Core2 is running furthermore. The same mechanism works while
stepping through the program code.
Multi-core breakpoints are useful to set in shared code. These are breakpoints in all cores
of a corresponding run-control group

72 of 177 A Multi-Core GTM Debugging Example with PowerPC MPC5746M Getting Started
A Multi-Core GTM Debugging Example with PowerPC
MPC5746M
Recent 32-bit multi-core architectures like TriCore AURIX or PowerPC MPC5746M
contain a multipurpose Timer module called Generic Timer Module (GTM). On the
TriCore platform, this timer module is designed to detach the former General Purpose
Timer Array (GPTA). Because of the complexity of the GTM, this example will only give
an introduction of the debugging possibilities. At the starting point, it will begin with the
creation of an UDE workspace. After the workspace, common elements like the start-,
stop-control and the multi-core behavior are being shown. After the common control, it
will dive into more debugging details of the GTM by debugging the Multi-Core-Sequencer
(MCS). Please note that the described multi-core features of UDE are available in the
UDE Open Platform. Please run UDE Open/Visual Platform from the Window’s start
menu.

Creating a New Workspace


At first, a new workspace has to be created. Click New Workspace from the File menu
and choose a new file name in the opening file selection box.
UDE comes with a number of prepared target configurations (Default button). For this
example, the PowerPC with MPC5746 configuration is suitable. Select the entry
"PowerPC - Freescale – MPC5746 Evaluation Board – Freescale MPC57xx
Evalboard with MPC5746M (Jtag/Core2/Core0/Core1)" and click to Finish. In the
configuration box, choose a file, e.g.
freescale_mpc5746m_core2_core0_core1_debug.cfg.
Select the created configuration and click to Edit to edit the target configuration.

The default target configuration contains all information about the Core2, Core0, Core1,
GTM and FLASH devices. Core2 is the master I/O core (e200z425), Core0 and Core1
are slave cores (e200z420) of the Core2. Please check that the GTM core is also
enabled (see red circle).
Click OK. When the connection is successfully established, the following messages will
appear in the message view:
Core2::UDEDebugServer, Connection to MPC5746M target
established: PowerPC Target, JTAG-ID: 0x0AF0A01D
Core0::UDEDebugServer, Connection to MPC5746M target
established: PowerPC Target, JTAG-ID: 0x0AF0A01D
Core1::UDEDebugServer, Connection to MPC5746M target
established: PowerPC Target, JTAG-ID: 0x0AF0A01D

Getting Started A Multi-Core GTM Debugging Example with PowerPC MPC5746M 73 of 177
GTM::UDEDebugServer, Connection to MPC5746M target
established:GTM, ID: 00000000h
Please note that the GTM ID is always “0h” after connect, because it is not enabled yet!
When all debuggers are launched, UDE is ready for loading the multi-core GTM
application Timedemo_GTM.elf.

Preparing the debugger


First, to keep overview about all cores, we want to illustrate all of the debugger windows
associated with a single core debugger with its own color, so that the associated windows
can be better differentiated. Open the menu Config - Debug Server Configuration -
Framework - Windows Tabs Color.
Select one of the core’s view server and assign a tab color to it. The selected color is now
used for each window tab of the selected core debugger.

Loading a multi-core Executable


UDE supports several possibilities to handle executables for multi-core architectures:
1. One executable is suitable for each core and there is only a single Elf file.
2. All executables of all cores are combined to a single Elf file.
3. Each core has its own Elf file.
UDE handles this requirements via a multi-core / multi-program loader box, where can be
selected, which executable is assigned to which core. This can be selected for binaries
and symbols.
Select from the UDE menu File - Load Program and browse to
<UDE_SAMPLE_DIRECTORY>\SAMPLES\
PowerPC\Freescale_MPC5746\Timedemo_GTM\obj-iRam-
MC\Timedemo_GTM.elf.
This is an example of a single executable, which can be loaded into each core. That’s
why, there is only the entry Timedemo_GTM.elf for all cores assigned. Select the
required check marks.

74 of 177 A Multi-Core GTM Debugging Example with PowerPC MPC5746M Getting Started
UDE will load and transfer all binaries into the corresponding core and the symbols to the
debugger symbol server. After that step, you can add new windows to each core
debugger.

Core selection
To select the right core debugger, you can click into a core-specific window (with a
colored frame tab) and the focus will be on this core debugger. The state bar below
shows the current selected core debugger, too.
For example, UDE can be visible as the following screenshot shows (use the zoom
function to get a closer look):

Core2 is halted and is focused, Core0, Core1 (slave cores) and GTM are inactive and not
focused. For each core, a CPU window is opened. Questions marks indicate that the core
is not enabled yet.

Single-core Breakpoints
A simple example is to set a breakpoint to a program location of a single core. Select a
core’s program window and set the breakpoint via context menu in this program window.
If the source file is not available, opens the CoreX Symbols window and select the
source from the Source Files folder.

Getting Started A Multi-Core GTM Debugging Example with PowerPC MPC5746M 75 of 177
In this first example, select Core1, set a breakpoint to line 37, select Core2 (only this
core can be started on PowerPC architecture) and run the program via Start Program
Execution. This will start the Timedemo_GTM.elf on Core2, and
Timedemo_GTM.elf will start Core0 und Core1 automatically. After a short time,
Core1 stops, because the breakpoint is reached. Core0 and Core2 are running
furthermore. If Core0 and Core2 are also stopped, check if the they are part of a “Run-
Control-Group” (see next section “Multi-core Breakpoints and Stepping”).
After inspecting of Core1, it can be started via Start Program Execution again.

Multi-core Breakpoints and Stepping


A multi-core application may require that in case of reaching of a breakpoint condition in
one core, other cores must be halted and after that, the halted cores must be started
simultaneously. The Multi-core run group manager helps you to setup the combination
of halting and starting of core groups. Open the manager via Config - Multi-core Run
Control Configuration.
Create a new group Core2 and GTM and add Controller.Core2 and
Controller.GTM to this group.

Select the required properties of the run control group via check boxes.
Break the program via Ctrl+F5. Core2 and GTM are stopped simultaneously; Core0 and
Core1 is still running (because it is no part of a run control group). Remove all
breakpoints. Restart Program via F7.
The same mechanism works while stepping through the program code.

Inspecting Multi-Channel-Sequencer (MCS) Channels


The Generic Timer Module (GTM) contains several modules which communicate over an
Advanced Routing Unit (ARU). The ARU connects all GTM modules, including the MCS,
to each other. Depending on the GTM version, a different number of MCS cores are
available which can be used to modify signals that are routed to them. One MCS core
contains thereby its own RAM that is divided up to 8 channel programs. Each channel run
its own program, based on special sequencer instructions, which modifies the signals
routed to it.
This section shows how different MCS cores and channels can be inspected.

76 of 177 A Multi-Core GTM Debugging Example with PowerPC MPC5746M Getting Started
At first, restart the Program via F7. If not yet already done, create a new “Run-Control-
Group” as mentioned above. Now select Core2 and set a breakpoint to line 71 (behind
the initGTM()- function) in main.c. Select Core2 and run the program via Start Program
Execution. After a short time, the Core2 and GTM core stop.

Click on the GTM list box to select the desired MCS channel:

Open the Code Window by selecting the colored tab corresponding to the GTM core to
look for the channel instructions as shown below:

The MCS CPU Window shows the current context register values:

After each MCS channel select, the instruction pointer inside the Code Window and the
MCS CPU Window contents are updated properly.

Getting Started A Multi-Core GTM Debugging Example with PowerPC MPC5746M 77 of 177
Using the MCDS On-Chip Trace with TriCore2 AURIX
Preparations
The further steps require AURIX target hardware containing a TC27X emulation device
(e.g. AURIX Starter Kit TC275 or AURIX Starter Kit TC277). Please check, that the board
is equipped with an emulation device chip (device type suffix ED).
The following instructions require:
 that the connection to the AURIX target is established
 and that the samples application TimeDemo.elf for TC27xx is loaded
(<UDE_SAMPLE_DIRECTORY>\SAMPLES\
TriCore\TriBoard_TC275A\Multicore_Timedemo\TriBoard_
TC275A_Hightec_IntRam2\Timedemo.elf).

Recording the first Samples


Open a new trace window via menu Views – Trace Window. Open the UEC trace
configuration window via menu Tools – Configure Trace to create a trace configuration
to record program trace of core 0 of TC27xx. Execute the following steps to create the
required configuration:
 Switch to UEC configuration window.
 Switch from Compact to Advanced Configuration library.
 Drag the Init TriCore library element (1.0) to configuration area.
 Change Memory Size to maximum value of 1024kByte
 Change Syncmode to mode Sync to set the best tick resolution between traced code
samples
 Drag the Signal program address library element (2.1) to configuration area.
 Set Signal name to e.g. “my_signal”
 Select main function start address as comparison address for Core X PC
 Drag the Actions on condition library element (5.1) to configuration area.
 Browse “my_signal” as signal name for If condition.
 Select as action Trigger trace
 Drag the Emit actions library element (5.3) to configuration area.
 Add emit action store Core X PC
 Add emit action ticks on
The MCDS trace configuration for this special task is now completed.
Now you can start trace (tool bar icon or menu Tools – Start trace.. tool bar). After start
of program execution, the Background Task Progress window displays the task:
 Record trace stream to memory

Now program execution can be started:


 Start the program using the menu Debug - Start Program Execution.

78 of 177 Using the MCDS On-Chip Trace with TriCore2 AURIX Getting Started
As soon as MCDS trace memory is filled, the recording background task within the
“Background Task Progress” window disappears and the trace window will be filled.

The recorded samples are the instructions of program execution of core 0 of TC27XX
after call of main function.

Hints for Multi-core Trace


The Emulation devices (TC27XED) of current AURIX generation support parallel trace of
2 cores. The Graphical trace configuration can be done by Universal Emulation
Configurator (UEC) using the Advanced library.
Here is an example for a suitable trace configuration:

Getting Started Using the MCDS On-Chip Trace with TriCore2 AURIX 79 of 177
The multi-core trace in a single trace window:

The multi-core trace in a grouped multi-core trace window:

80 of 177 Using the MCDS On-Chip Trace with TriCore2 AURIX Getting Started
An Example with C166S V2 / XC16x via
JTAG/OCDS L1
Starting with Universal Debug Engine
In this chapter is shown, how to connect to Infineon's XC16 board using the starterkit
mode via LPTx or a high-speed connection using an UAD.
First launch UDE and create a new workspace and a target configuration as described
above. To switch between the starterkit mode and the communication via UAD you must
setup the communication protocol. Open the Edit Target Configuration dialog and
select the C166SV2 item in the tree, push the Setup button on the right panel. As 'Access
Device' the UAD, the 'Starterkit Driver' and 'DAS' can be selected. After the selection,
push Setup to configure details of the communication device. To switch this setting later,
use the main menu Config - Target Config.
To setup the target configuration to Starterkit mode, the Starterkit Driver
JIO_API_XC16x.dll, located in the UDE directory, must be used. If this file is not
available and needed, you have to modify the UDE installation including Starterkit
support.
The Universal Debug Engine will now try to connect to the target system. When the
connection is successfully established, the following message will appear in the
command window:

UDEDebugServer: Connection to XC164CS target 


monitor established: C166SV2 target, JTAG chip 
ID 20096083h.

Loading and Starting of an Executable


Load the executable <UDE_DIRECTORY>\SAMPLES\XC16x\Timedemo
\GNU\Ram\timedemo.out.
Please note that the instruction pointer is first placed at the beginning of the start-up code
of the loaded application. Start the application.

Automatic Variables Refresh


For observing variables while running target UDE supports automatic variables refresh.
Open a watch window, insert the variable Buffer [10], and unfold it. Open the context
menu of the variable and select Refresh Period. The 'Refresh Period for Watch Entry'
dialog allows to setup refresh periods for the selected variable while running and while
halted target. Enable the refresh for running target and set the period time to 25ms, close
the dialog box.
The buffer variable is being refreshed now automatically, you can see how the circular
buffer is filled. Changes are marked with red color.

Getting Started An Example with C166S V2 / XC16x via JTAG/OCDS L1 81 of 177


Trigger Functions
This chapter demonstrates how the OCDS L1 unit of the XC16x derivative can be used
for implementing trigger functionality. Again, the starting point is UDE with the application
timedemo.out loaded. We want to create a trigger configuration that stops program
execution when a write access to the variable Buffer[0] occurs.
The watch window helps you to find out the address location of the Buffer[0] array.
The value of the array name is equal the address of the variable. In addition, the tooltip of
the variable or its parts shows the address, in this case 0xA02F.
Open the 'OCDS L1 Setup' dialog by
menu Debug - Setup OCDS unit. In
the section Use Trigger for ... , the
option 'User Defined Action' must be
checked. Then click on the button
Trigger Setup.

The Trigger Setup dialog is displayed:

To recognize write access to the variable Buffer[0], we will use the Equal
Comparator. Therefore, please select the option Write Address under Event Source in
the Equal Comparator. When the trigger condition occurs, the application is stopped in
this example. Please select Break User Application in the Event Action field.
To select the address to be monitored, click on the button Equal Comparator. In this
example, we want to set the address of the variable to be displayed directly. Select Mode
I and enter the address of the variable 0xA02F into the field Value.
After closing the dialog, the target is halted automatically. In the command view, the
reason is written:
UDEDebugServer: Target execution - halted by trigger
event - program location 0xE00362
Switch the program window to mixed mode view, the instruction pointer shows 0x3C0.

82 of 177 An Example with C166S V2 / XC16x via JTAG/OCDS L1 Getting Started


An Example with MPC5567 via JTAG
Starting with Universal Debug Engine
When a new version of UDE is started the first time, a firmware update may be executed
on the access device (UAD, UAD2 ...). This may take some more time than usual for the

! target connect operation. Please DO NOT power off or unplug the access device while
this time!

In this chapter is shown, how to connect to Freescale's MPC5567 board using a high-
speed connection via an UAD. First launch UDE, create a new workspace and select the
default target configuration for PowerPC/MPC5567 “Freescale MPC5567EVB Evalboard
with PC5567”. When the connection is successfully established, the following message
will appear in the command window:
MSG: Controller0.Core::UDEDebugServer: Connection to
MPC5567 target monitor established: PowerPC Target,
JTAG-ID: 0x1813401D

Loading and Starting of an Executable


Load the timedemo sample executable from
<UDE_DIRECTORY>\SAMPLES\PowerPc\Freescale_MPC5567EVB\
timedemo\GnuPpc\iRam\timedemo.elf
Please note that the instruction pointer is first placed at the beginning of the start-up code
of the loaded application. Start the application.

Automatic Variables Refresh


For observing variables while running target UDE supports automatic variables refresh.
For using this feature with MPC55xx, the Nexus access must be enabled. For that, check
the Target Interface Setup dialog page E200 Core via menu Config – Target interface
... – E200 Code with enabled Use NEXUS .. option.

Getting Started An Example with MPC5567 via JTAG 83 of 177


Open a watch window, insert the variable Buffer, and unfold it. Open the context
menu of the variable and select Refresh Period. The Refresh Period for Watch Entry
dialog allows to setup refresh periods for the selected variable while running and while
halted target. Enable the refresh for running target and set the period time to 25ms, close
the dialog box.
The buffer variable is being refreshed now automatically, you can see how the circular
buffer is filled. Changes are marked with red color.

Please note, that in the case of using of the integrated caching mechanism of the
PowerPC MCU, the view cannot be fully updated. The changed values are saved in
cache memory and are updated only, when a cache write back is executed. This is done
for example, when the program execution will be interrupted by holding.

Trigger Functions
This chapter demonstrates how the PowerArchitecture Book E defined triggers of the
MPC55xx derivatives can be used for debugging purposes. Again, the starting point is
UDE with the application TimeDemo.elf loaded. We want to create a trigger configuration
that stops program execution when a write access to the variable Buffer[0] occurs.
Open the Hardware Debug Resources dialog by menu Debug – Setup Trigger unit.
Select the rider Data Address. We want use DAC1 as trigger comparator. Enter the
address of Buffer[0] into the address box. For simplification C-style expressions can
be used, so simple enter &Buffer[0].

Enable User and SV (Supervisor) as Break Mode, select Write Access mode, Effective
address and Exact comparator.
Start the application.

84 of 177 An Example with MPC5567 via JTAG Getting Started


The application stops when the fist write to Buffer[0] occurs. You will find the
message
MSG: Controller0.Core::UDEDebugServer: halted by
trigger event
inside of the command view.

Hints for using the MPC55xx via JTAG


For accessing target during runtime, the NEXUS functionality is required. The NEXUS
module on the MPC55xx allows access to the physical system memory during runtime.
Therefore a 1:1 mapping of the MMU is also required, since the MMU cannot be disabled
for the core. If a 1:1 mapping is not ensured, the NEXUS feature is not useable!
For accessing physical memory resources (e.g. Special function registers) the MMU is
analyzed by the debugger to find out the correct effective addresses. If the requested
physical address is not mapped, the debugger is able to setup the TLB entries inside the
MMU, when the special option Allow MMU setup for physical access inside of the
Target Interface's Setup is enabled.

Getting Started An Example with MPC5567 via JTAG 85 of 177


An Example for C166 debugging via 3Pin
A highlight of Universal Debug Engine is the possibility of debugging via different
communication channels. UDE supports the communication to the target system via a
simple 3-wire cable and a ground connection. This proprietary protocol is called 3Pin
communication. With the flexibility of the monitor solution, the 3Pin communication can be
used with all supported microcontrollers.
In the following example, a Phytec miniMODUL-167 as target system is used.

Hardware Requirements
Because the 3Pin communication is not a standard communication port directly
supported by the microcontroller, the user must adapt the 3Pin port to the used hardware.
For a successful connection between the target and the used communication add-on as
the Universal Access Device at least 3 pins and the ground potential must be connected.
The following table describes the relevant signals:

Pin name Direction from µC Description


CLOCK O Clock signal for synch transmission
MODE I/O Direction control of the data transfer / external
interrupt for halting the application
DATA I/O Data upstream / downstream
GND Ground potential
In this example, the miniMODUL-167 is equipped with a 10-pin shroud male header. On
this way, a simple 10-pin ribbon cable can be used. The pins are connected as following
shown:

Universal Access Device mini-MODUL-167


SAB C167CR-LM
CLOCK Pin 3 P3.1 Output Pin

(SAB C167) MODE Pin 7 P3.2 In/Output/Interrupt Pin


DATA Pin 5 P3.3 In/Output Pin

Pin 1
GND GND

For the bootstrap loading sequence, an additional connection is required between the
ASC0 Target connector of the Universal Access Device and the ASC0 connector of the
miniMODUL-167 (P1). A simple 1:1 SUB-D9 (M) to SUB-D9 (F) extension cable can be
used.

? Further information of the hardware installation is described in the appendix.

Useful hints for 3Pin Debugging


An advantage of the combined bootstrap loading/3Pin communication is that the ASC0
interface is available for user purposes after the bootstrap loading sequence.
The Universal Access Device features the transparent switching between the bootstrap
loading mode and the user application. For that, an additional 1:1 SUB-D9 (M) to SUB-D9
(F) extension cable is required. Please connect this cable with the ASC0 Application
connector of the Universal Access Device and the external asynchronous device
(RS232).

86 of 177 An Example for C166 debugging via 3Pin Getting Started


Monitor preparations
For using the 3Pin interface, a monitor program in the target system is required. Two
ways are available for generating and loading of the monitor code:
 ROM Monitor Solution: The monitor code may be derived and built from a monitor
source library according on the user’s demand. This monitor hex code can be flashed into
the non-volatile target memory, i.e. into FLASH or EPROM memory. After this step, the
monitor will be executed directly after the power on.
For the “flashing” of the monitor code, the integrated FLASH MemTool of the Universal
Debug Engine can be used. The monitor source code library is offered by the PLS
Development Tools.
 Bootstrap loading/RAM Monitor Solution: A configurable predefined monitor
may be adapted to the used target hardware. This monitor will be downloaded via
bootstrap loading/ASC0 into the target and executed before every debug session.
In this example, the 2nd way is described. The advantages of this solution are, that no
monitor code must be “flashed” and the ASC interface is available for user’s purposes
after the initializing process.
In the first step, the predefined monitor must be configured. Please start the Monitor
Wizard using “fastmon.exe” from the <UDE_DIRECTORY> or the shortcut “Build
3-Pin Monitor” in the UDE start menu. The following dialog will be shown.

Build the monitor by execution of these 6 steps offered by the Monitor Wizard. Choose
the controller derivative, the pins for the DATA, CLOCK and MODE signal and the
monitor location. For the monitor location 3F000h is a suitable value. In the last step build
the monitor with the predefined characteristic. Save the monitor as mm67_3pn.mon.

Starting the Universal Debug Engine


Launch UDE and create a new workspace as described above. After creating and saving
the new workspace, you will be asked to select a target hardware configuration. UDE
comes with a number of prepared target configurations. For this example, an adapted
target hardware configuration is available under the entry "C167 Target (Boot/3Pin)".
Select this entry and click OK.

Getting Started An Example for C166 debugging via 3Pin 87 of 177


The Universal Debug Engine will now try to connect to the target system.
MSG: UADCommDev: Connected to UAD 70022
Possibly the BSL/3Pin monitor is not included yet, the connection will fail. The following
dialog will be displayed:

Push the button Change... to setup the target interface and follow the next steps.

Setup Target Interface


Choose the page Monitor. Check the radio buttons Download Bootstrap Loader
Monitor to Target and Use External Monitor File. Browse the generated monitor file
“mm67_3pn.mon” and choose 3Pin interface as Debug Communication Channel.

88 of 177 An Example for C166 debugging via 3Pin Getting Started


In the page Connect/Boot, the settings for bootstrap loading sequence are made.
Important values are the baud rate and the RS232 Drivers.
Choose the suitable values, in this example 57600 Baud (resp. 57600 bps) and Use
RS232 Driver. The Execute Initialisation Commands allows setup the start-up values
of the target controller.

If no initialization commands are given, click in the input form and enter a new init
command. To change an existing entry, click to the entry and edit the value.
Following init commands are required for successful working with the miniMODUL-167:

Init Command Description


SET SYSCON 0x4 0xFF7F Enable XBUS peripherals
SET BUSCON0 0x40E 0xFF3F Configuration of the FLASH-ROM (/CS0) bus window
SET ADDRSEL1 0x6 Address window of the RAM (/CS1) bus (256 kByte)
COPY BUSCON0 BUSCON1 Copy the Configuration of the RAM (/CS1) bus
window from RAM (/CS0)
EINIT Execute the EINIT command after initializing

Getting Started An Example for C166 debugging via 3Pin 89 of 177


Memory layout of the miniMODUL-167 after initialization

XBCON0 XBUS Active window

BUSCON1 RAM Inactive window

BUSCON0 ROM
0 3FFFF

Close the dialog and start the target interface by pushing the button Single retry. In the
target connection dialog failed dialog. When the connection is successfully established,
the following message will appear in the Command window:
UDEDebugServer: Connection to C167CR target monitor
established: monibc67 V3.42 08/00
(C) 1991/2006 pls Programmierbare Logik & Systeme GmbH.

Using the Simulated I/O channel


The Universal Debug Engine features the I/O communication of the target application via
the debug channel. This means, that the application can use scanf(), printf()
and equivalent functions to input and output of text.
Requirement is the linking of the SIMIO.C software with your application software.
SIMIO.C is available for the C16x architecture and supports the compilers from
Tasking, Keil and HighTec (GNU). The Sieve example from the examples folder
demonstrates the using of the simulated I/O.
If your hardware preparations are done successful and your target is connected, load the
program \SAMPLES\C16X\SIEVE\TASKING\SIEVE.OUT in your target.
Open the Simulated I/O Window from the menu Views – Simulated I/O Terminal or use
the corresponding button from the tool bar.
Start the program via Debug - Start program Execution. The program output will be
redirected to the Simulated I/O Terminal. In the last line, you are asked for the input of the
count of executions. The program is waiting in the scanf() function until the user
press <ENTER>.
Activate the I/O Terminal and type in i.e. 20 and press <ENTER>. The program will
continue and calculate the primes. In addition, an execution time measurement is done.

90 of 177 An Example for C166 debugging via 3Pin Getting Started


Creating new Target Configurations
In the chapters above the starting point was mostly a Starterkit with predefined target
configurations. In this chapter, you will learn how you can build a target configuration with
your custom specific target hardware yourself. Main goal is to introduce the Target
Configuration Wizard.
First, you have to define the target hardware that may have multiple different
microcontrollers and memories.
In this example, a fictitious target equipped with one C167CR and two 29F010 connected
to /CS0 of the controller is used. Furthermore, the target has one external 16-bit sRAM
connected to /CS1. The communication channel is the ASC0 with RS232 driver. The
target controller is started via bootstrap loading.
 Controller: C167CR
 FLASH: 2x 8 bit FLASH NX29F010 at /CS0
 sRAM: 1x 16-bit RAM at /CS1
 Communication Channel: ASC0 via RS232
 Monitor: Bootstrap Loader Monitor

Creating a new workspace


A workspace refers always to one target system. Choose File - New Workspace from
the menu and enter a new name for the workspace in the appearing dialog box. Press the
OK button to apply the entered name.

Invoking the Wizard


The next dialog is the Target Selection Dialog. Press the button New and click Next to
create a new target configuration.
The next dialog allows both describing the new target and choosing the controller family.
If you do not enter a description then the file name will be displayed in this dialog only.

Press the Next button if you have done it.

Getting Started Creating new Target Configurations 91 of 177


Select the controller derivative
The next step is the selection of the used derivative. With this selection, UDE will be
equipped with the correct databases of the used derivative. It is important to select the
correct corresponding type of your derivative.
Select the C167CR derivative for this example and click Next.

Selecting Target Interface


In this step, the target communication interface has to be selected. Because an ASC0
based monitor via bootstrap loading is used, the C16x Debug monitor Interface must be
selected.
To specify the interface settings e.g. the baud rate and the communication channel
properties to the target click Setup.

92 of 177 Creating new Target Configurations Getting Started


Setup the Target Interface
The dialog is divided in a number of pages for setup the Target Interface. Please check
the content of each page for correct content.
Booting the controller by using the bootstrap loading mechanism of the C167CR will be
done within three steps.
1. Via the internal bootstrap loading the Second Level Loader is transferred to the internal
RAM and will be started.
2. This Second Level Loader loads the primary Boot Code.
3. The Boot Code initializes the controller system and loads the application or monitor
code.
General
Select and setup the used communication hardware.

In this example a special Target Monitor using the bootstrap loading mechanism has to
be used. The various offered standard ASC monitors differs only in the location where the
monitor is located.
For example, C167.ASCMon.BM67C0256 means a C167 ASC0 monitor is located at
3F290h – 3FFFFh, below the 256 kByte RAM memory boundary. Click the "..." button to
select another located monitor.
Select ASC as Debug Communication Channel.

Connect/Boot
In this example, the settings of Connect Option are not relevant, because the UAD
cannot cause a reset on your target via an ASC0/TTL line. Leave the Connect Option on
default.

Getting Started Creating new Target Configurations 93 of 177


In this example, the standard Boot Code is used. Only for a special purpose, a special
Use external Boot Code is necessary during the system loading process.

The initialization commands are executed from the Boot Code while the system
configuration processing. The commands initialize the memories they are connected on
/CS0 and /CS1 via a demultiplexed 16-bit bus. The address range of the /CS1 memory is
mapped 0x00000 to 0xFFFFF. Finally, the EINIT instruction will be executed.
Refer to the UDE manual for a complete set of initialization commands and to the C167
architecture manual for a description of external bus unit of the C167 microcontroller
architecture.
Close the Target Interface Setup via the OK button and click Next. If changes are
necessary later, you can change these settings within UDE.

Configuring the FLASH memory


In the dialog "Target Specify Memories“, you must set the number of memories at least to
1, if you want to use FLASH programming support. Click Next.
Enter in the dialog "Special Memories" a unique name for the flash name and the
description. The description will be displayed when you select a memory device in the
FLASH/OTP Memory Programming Tool.
For each special treated memory device, a special Handler is required. Select for FLASH
support the "UDE FLASH/OTP Memory Programming Tool". Setup both the bus mode
organization of the chips and an address range, where the memory is visible. These
settings must correspond with the configuration of the external bus controller done by the
initialization command.

94 of 177 Creating new Target Configurations Getting Started


Click Next.

With these steps, the FLASH/OTP Memory Programming is prepared. Further steps are
required when you are using the Programming tool. Please refer to the user's manual
chapter „FLASH Programming“ for further hints of use.
!
Finish the wizard
Enter the name of the file you intend to save the configuration of target. Usually the
Target Configuration files are stored in <UDE_DIRECTORY>/TARGETS folder.
By pressing the Finish button, you apply the settings to the target configuration. The
debugger loads all necessary components and connects to the target. If the following
message is displayed in the Command View, you were successfully.
MSG: UADCommDev: Connected to UAD 70022, FW-Version: 1.1.12
MSG: UDEDebugServer: Connection to C167CR target monitor
established: bootmon167 V3.41 07/00
(c) 1991/2000 pls Programmierbare Logik & Systeme GmbH
To edit this target configuration you can select the menu Config - Target Configuration.
In the appearing dialog you can modify the target configuration.

Getting Started Creating new Target Configurations 95 of 177


Conclusion
Congratulations! You have learned about the basic features of UDE. This will enable you
to load and debug an application using UDE with a Starterkit board as the target system.

You may now create your own applications using the GNU, the Tasking, the Keil or the
Greenhills C-Compiler and debug them with UDE. As UDE is constantly improved, please
check out our web site at http://www.pls-mc.com for the latest version of UDE.
? Additionally, if you have any questions or if you need any help regarding your
development tools we would like to encourage you to contact the PLS Support Team via
email at
support@pls-mc.com or via phone at +49 35722 384 0.

Thank you for using Universal Debug Engine.

96 of 177 Conclusion Getting Started


User's Guide

Introduction
The Universal Debug Engine (UDE) is one of the most powerful development
workbenches available for the AURIX, TriCore, PowerArchitecture, Cortex, ARM7, ARM9,
ARM11, C166, XC166, XC2000, XE166, XScale, RH850, SuperH SH-2A and further
microcontroller families.
The UDE workbench lets you edit and organize your projects, supports you while building
the applications and lets you run and test your software on the supported microcontrollers
based customer specific hardware or different evaluation boards in a very convenient and
cost-efficient way. The vast capabilities of the UDE High-End Debugger enable you to
develop fast and reliable software as well as to get short turn-around times for your
microcontroller projects.

Integrated Development
Editor Environment

Compiler CASE Tool

R
T
O
S
universal debug engine

Target
Simulator JTAG ICE
Monitor

Evaluation Board Custom Specific Hardware

User's Guide Introduction 97 of 177


Hand-in-hand with our target access hardware the Universal Debug Engine offers a
flexible debug platform. It allows...
 High-speed and flexible access to target systems
 Full-featured on-chip debug modules, OCDS L1, DAP, embeddedICE, CoreSight,
SWD support
 Full code and data trace via MCDS, ETM, ETB, NEXUS, CoreSight and triggered
Transfer support
 Multi-Core Debugging
 Various Operation system support, RTOS and embedded Linux
 supports further Third-Party Tools.

Architecture of Universal Debug Engine


The Universal Debug Engine (UDE) is a new concept of our cross debugger based on a
set of standard components and core specific components. UDE supports different cores
and multi core debugging. The system is built based on components to ensure extension
with additional cores and development tools. This way, the user is able to extend the
debug system due to custom requirements.

Debugger Client (Desktop Container)

ViewServer
ViewServer ViewServer
Custom
Program Program2
MultiCore
Debugging
ViewServer ViewServer
Watch HTML

Debug Server Debug Server 2


(Base Functions, Symbol Processing)

Target Server Target Server 2


(Core and Communication Components)

98 of 177 Architecture of Universal Debug Engine User's Guide


The UDE concept splits the basic debugger tasks into three independent program parts:
 The user interface (debugger client) works as a client for both servers, generates
requests for target data access and symbol processing and displays the results of the
processed requests after receiving the ready signal.
 The symbol engine (debug server) works as an independent server that processes
requests to resolve symbolic relations of the program code. If the request is
processed, the requesting client receives a message that the resolution is available.
 The target communication server (target server) serves all requests for downloading
program code into the target and accessing target data to display target system
states (program variables etc.). The target core specific debugger engines implement
the basic debugger functions of a specific core (e.g. debugger engine for TriCore,
PCP, C166 ...).
The partitioning of debugger tasks into client/server architecture significantly enhances
the performance of complex debugger tasks. To add debug support for additional cores is
very simple due to the client/server architecture. One target communication server and
usually one symbol server must be included to add debug support for a particular core. If
several cores use the program code of the same application, no additional symbol server
is necessary for the core. The multiple independent engines enhance utilization of the
host CPU as well as the turn-around cycle of the debug process decreases.
Moreover, the architecture of an UDE Debugger contains following parts:
 The desktop frame works as a container for several components. The container is
based on framework to instantiate views of the basic debugger engines and export
interfaces to extend the user interface dynamically (e.g. add menu entries, tool bars).
 The views are windows to implement debugger specific views to the target system.
The views implement standard debugger functions (program window, watch window,
memory windows, register windows etc.), programmable views based on page
description languages (HTML) and application specific views (special views based on
e.g. COM components).

Using On-line Help


The Universal Debug Engine provides an integrated, context sensitive help. To use this
help simply press the <F1> key.
You may also select Help Viewer Window from menu Help for viewing the UDE Manual.
This manual introduces the architecture of UDE and describes the UDE main features by
examples.
Furthermore, please visit our Web site on the Internet at http://www.pls-mc.com. There
you can obtain the newest information and download the latest version of Universal
Debug Engine.

User's Guide Using On-line Help 99 of 177


Project Management
Working with Projects
Projects let you organize your work more efficient by combining all target specific and
desktop settings in one workspace. This workspace stores all project relevant files and
settings of the UDE Desktop.
A main role of the project management plays the source files and their associated
binaries. These files are displayed in the workspace window. The view is subdivided into
file names and functions.
If the workspace window is invisible, select Project Workspace from menu Window to
display.
In the Explore Symbols window of
your current workspace, the
source files are grouped under the
folder Source files. If the folder
content is invisible, click on the [+]
item or double-click on the 'Source
files' folder to expand it.
An easy way to open a new
source code window is by double-
clicking on the corresponding
source file entry. In a similar way,
it is possible to view a function of
the source code by clicking on the
function name displayed in the
folder Functions.
To collapse a folder in the
workspace window click on [-].

Creating a New Project


If you want to build a new project,
create a new workspace that
contains all settings and files of
the new project. Select New
Workspace from the File menu of
UDE Desktop and choose a new
file from the file selection box.
Usually, the workspace file is
located in the project folder.
Note the possibility to create new folders in the file selection box: Right-click into an
empty area of the file selection field for the context menu and select New - Folders. This
way you can create new folders without the need of an additional Explorer window.

When a new version of UDE is started the first time a firmware update may be executed
on the access device (UAD, UAD2, ...). This may take some more time than usual for the

! target connect operation. Please DO NOT power off or unplug the access device while
this time!

100 of 177 Project Management User's Guide


Select Target Configuration
After choosing the workspace file, you may select a predefined target configuration or
may create or derive an adapted configuration.

Press the Default button to select a predefined configuration delivered with UDE.
Press the New button to create a new configuration and follow the Configuration wizard.
Select a predefined target configuration and press the Copy button to derive a new
configuration from the selected configuration. This is recommending for adaptation of a
similar configuration.
Select a predefined target configuration and press Edit to change an existing
configuration. Please note that the changes are saved permanently.

Loading a Project
Open the File menu and select Open Workspace. Select a valid workspace file in the
opened file selection box. Usually, workspace files are named with the file extension
*.wsx .
To load the application binary file use the Load Program from File menu and select the
binary file. If you use the multi-core debug feature, please note that momentarily only
compilers are supported they build the single core's source into only one binary file.

Saving Project Settings


Usually the project settings are stored automatically when the workspace or the UDE
Desktop will be closed. However, if you want to create a new project that is derived from
a current project you may store the current project under a different path or project name.
To do so, choose File - Save Workspace as ... and select a new project path and project
name.

Closing a Project
To close the current workspace, select from File menu Close Workspace. This will save
all settings of the UDE Desktop, view windows and their contents, paths and names of
loaded files and will close your current project. The project and its workspace are also
saved when the UDE Desktop is closed.

User's Guide Project Management 101 of 177


Command line options of UDE
UDE can be parameterized via command line interface and started automatically to open
or create a workspace and execute a start-up script.
Synopsis:
UDEDesktop[.exe] [ -p file] [ -s file]
Options:
-p<wsxfile> ... open or create a workspace
-s<scriptfile> ... run a startup script
-d<file> ... write diagnostic output into file

Preparing a binary File


The Universal Debug Engine supports the compiler tool chain of various compiler
manufacturers. Please see the compatibility list for selection the suitable compiler and the
compiler manual for correct usage of the compiler.

Compiler Support
The recommended file extension for the output file are *.out (C166 derivatives) and
*.elf (all supported derivatives). If you want use the HLL source code-debugging
feature in the debugger, the corresponding debug information must be linked to the
executable file. See the compiler manual for the correct options.

Note: If you use the multi-core debugging functionality of UDE, the software for both
cores is downloaded and initialized by the debugger automatically. Momentarily UDE
supports compilers joining the parts for the multi-cores to one single binary file only. The

! debugger takes the job of relocating the separate core programs.

Attention: If the debugger is not used the user application is responsible for correct
relocation and initialization of the core programs! Otherwise, the programs will fail.

Compiler Support for C16x, XC166, XC2000, XE166


The Universal Debug Engine supports the Tasking OUT format, the GNU OUT format
and the Keil OMF166 format for binaries.
To build such a file applies the following compiler switches:
Compiler Command line options for output
Tasking C/C++ Compiler Compiler: "–g"

Keil C Compiler Compiler: "DEBUG"

GNU C/C++ Compiler (HighTec) Compiler: "–g"

The recommended file extension for the output file is *.OUT.

102 of 177 Preparing a binary File User's Guide


Compiler Support for TriCore
The Universal Debug Engine supports the ELF/DWARF 1.1 , ELF/DWARF 2 format
containing both the binary target pattern and the debug information.
To build such a file applies the following compiler switches:
Compiler Command line options for ELF/DWARF output
Tasking C/C++ Compiler for Compiler: "–g"
TriCore PCP Assembler: “–gal”
Locator: "–f4"
GNU C/C++ Compiler for TriCore Compiler (gcc): "–g –O0"
(HighTec) PCP Assembler: “–Wa, ––gdwarf2”
Wind River C/C++ Compiler for Compiler: "–g –O0 "
TriCore
Greenhills C/C++ Compiler for Compiler (cctri): "–G –dwarf"
TriCore

Compiler Support for PowerArchitecture


The Universal Debug Engine supports the ELF/DWARF 1.1 , ELF/DWARF 2 format
containing both the binary target pattern and the debug information.
To build such a file applies the following compiler switches:
Compiler Command line options for ELF/DWARF output
GNU C/C++ Compiler for Compiler : "–g –O0"
PowerArchitecture
Wind River C/C++ Compiler for Compiler: "–g –O0 "
PowerArchitecture
Freescale C/C++ Compiler for Compiler: "–g"
PowerArchitecture
Byte Craft eTPU Compiler Compiler: "–g"

Compiler Support for Cortex, ARM7, ARM9, ARM11, XScale


The Universal Debug Engine supports the ELF/DWARF 1.1 , ELF/DWARF 2 format
containing both the binary target pattern and the debug information.
Compiler Command line options for ELF/DWARF output
RealView MDK-ARM and Compiler: "DEBUG"
RealView Development Suite for Assembler: “––debug ––dwarf2”
Cortex, ARM7, ARM9, ARM11
GNU C/C++ Compiler for ARM7, Compiler: "–g –O0"
ARM9, ARM11 (HighTec)
Wind River C/C++ Compiler for Compiler: "–g –O0 "
Cortex, ARM7, ARM9, ARM11
C Compiler for ARM7, ARM9, Compiler: "–g"
ARM11 (ImageCraft)
The recommended file extension for the output file is *.elf.

HexFile Support
In addition, the simple Intel hex file and the Motorola S record format are supported.

User's Guide Preparing a binary File 103 of 177


Downloading the binary File
Before debugging an application, the binary executable file must be downloaded into the
target. For that, a communication channel must be chosen. The following chapter gives
you an overview about the offered solutions of the Universal Debug Engine and its add-
ons.

Examples of Debug Communication Channels


Communication Channel via JTAG
JTAG is supported for AURIX, TriCore, PowerArchitecture, Cortex, ARM7, ARM9,
ARM11, XC166, XC2000 derivatives based on an on-chip IEEE1149.1 module.

Communication Channel via DAP


The Universal Debug Engine supports DAP as debug interface for TriCore AUDO Future
and upcoming 16-bit and 32-bit microcontrollers.

Communication Channel via SWD


The Universal Debug Engine supports SWD as debug interface for Cortex 32-bit
microcontrollers.

Communication Channel to via ASC interface


The Universal Debug Engine supports an asynchronous communication to the target
system. The communication hardware is RS232 compatible. Optional an unbuffered
5 Volts TTL-compatible asynchronous interface for direct hardware access is available by
the add-on Universal Access Device.
The ASC monitor is available as RAM monitor for bootstrap loading or as ROM monitor.
Requirement for the ROM monitor solution is the Monitor Development Tool offered by
the PLS Development Tools.

Communication Channel via 3Pin interface


The Universal Debug Engine for C16x features a 3Pin communication channel between
the target system and the debugger. The communication is done via a proprietary
protocol and uses 3 port pins of the microcontroller.
The 3Pin monitor is downloaded via the on-chip bootstrap loader of the C166
microcontroller into the target system RAM or is located in the target’s non-volatile
memory (FLASH or EPROM) as ROM monitor. In the case of bootstrap loading the ASC
interface is free available for the application after the load sequence. Requirement for the
ROM monitor solution is the Monitor Development Tool offered by the PLS Development
Tools.

Communication Channel via SSC interface


The Universal Debug Engine supports a synchronous communication to the target
system. The SSC monitor is available for C16x as RAM monitor for bootstrap loading or
as ROM monitor. Requirement for the ROM monitor solution is the Monitor Development
Tool offered by the PLS Development Tools.

Communication Channel to via CAN interface


The Universal Debug Engine supports a communication to the target system via CAN
bus. The CAN monitor is available as RAM monitor for bootstrap loading or as ROM
monitor. Requirement for the ROM monitor solution is the Monitor Development Tool
offered by the PLS Development Tools.

104 of 177 Downloading the binary File User's Guide


Selection of a Hardware Communication Channel
The Universal Debug Engine is capable to communicate with the target hardware via
various communication channels. For the physical target access, the hardware add-ons
as the Universal Access Device provide various hardware communication channels.
In the table below offered debug solutions are described. For further information, please
refer to the chapter „Hardware Description“ of the add-on.

Hardware Channel Target Monitor Description


DAP AURIX not required Connection via DAP to the OCDS L1
TriCore module
XE166
JTAG / OCDS AURIX not required Connection via JTAG to the OCDS
TriCore L1 module
XC166
XC2000
JTAG Cortex not required Connection via JTAG to the
ARM7 EmbeddedICE
ARM9
ARM11
PowerPC
XScale
SWD Cortex not required Connection via SWD to the
CoreSight

ASC C16x, ST10 RAM / ROM Connection via ASC


XC16x
SSC C16x, ST10 RAM / ROM Connection via SSC

CAN C16x, ST10 RAM / ROM Connection via CAN

3Pin C16x, ST10 RAM / ROM Connection via a proprietary 3Pin


interface

LPT Onboard JTAG TriCore not required Connection via onboard JTAG
adapter adapter to the OCDS L1 module
LPT Onboard JTAG XC166 not required Connection via onboard JTAG
adapter XC2000 adapter to the OCDS L1 module
XE166

User's Guide Downloading the binary File 105 of 177


Overview about the Monitor programs
Usually a running monitor on the user's target hardware is required, except the
communication via a specialized on-chip debug module (OCDS L1).
The following table gives an overview about the various monitor versions:

Monitor Version Communication Description


Target access via The monitor code is loaded via the on-chip bootstrap loading or the
a RAM-Monitor OCDS L1 module into the target and executed before every debug
session. The switching between the ASC-bootstrap loading and the
debug communication channel appears transparently.
Target access via The target monitor code is located in the non-volatile target system
a ROM-Monitor memory and executed directly after the power on.
Advantageous is that the monitor is running as soon as the board
is powered on. This allows a multi-target debugging, i.e. debugging
several nodes in a CAN network.
Access without a Target hardware supported by a specialized on-chip debug support
Monitor (i.e. OCDS L1, EmbeddedICE, and CoreSight) does not require an
additional monitor.

Preparing the Communication


To open the communication channel some preparations are required.
The primary selection of the communication channel is done by choosing a suitable
configuration, saved as *.CFG. You can select a new target configuration file while
creating a new workspace or you can setup an existing configuration via the Setup
Target Config button in the ‘connection failed dialog’ or the menu entry Config - Setup
Target.

Select configuration
While creating a new workspace you can choose a new configuration for your target
hardware. The Universal Debug Engine is equipped with some predefined configurations
already. With this configuration, you have a short way to the first example with the
Starterkits, and you can derive a user-defined configuration from an existing Starterkit
configuration file, i.e.

Select a RAM based monitor program


The Universal Debug Engine provides a set of target monitors as binary images. The
user may adapt the monitors to the demands of the target system.
The monitor will be downloaded via the on-chip bootstrap loading or a specialized on-chip
debug module into the target system RAM before every debug session.
Select an ASC monitor program
Several predefined ASC monitors are available as standard monitor in the internal
monitor database. The difference between the monitors is the location of the monitor
code and its data area. For selection the monitor program use the Target Interface Setup
dialog, page Monitor and check Download Bootstrap Loader to Target and Use
Standard Monitor. With the ... button you can browse a suitable monitor from the
database.
The monitor code will be downloaded via bootstrap loading sequence. The properties as
baud rate and TTL-RS232 driver usage will be taken from the bootstrap loading settings.
To change this properties use the page Boot and Init.

106 of 177 Downloading the binary File User's Guide


Custom defined monitors are
possible with the help of the Monitor
Development Tool. Use such
monitors as external monitor in the
page Monitor.
Note, that the correct type of monitor
must be selected as Debug
Communication Channel.

Select a CAN monitor program


Select the CAN monitor as Debug Communication Channel. Furthermore, you have to
setup the correct baud rate and CAN-ID.
Additional make sure, that the bootstrap loading and initialization settings are correct in
the page Boot and Init.
Select a 3Pin monitor program
Because the 3Pin monitor is more configurable, an additional step for monitor building is
required. Use the 3Pin Monitor Wizard “flashmon.exe“ from the
<UDE_DIRECTORY> for building a user defined monitor. Select the three pins for
communication and setup the monitor location. Use this generated monitor as external
monitor code in the page Monitor. Note, that the correct type of monitor must be selected
as Debug Communication Channel.
Additional make sure, that the bootstrap loading and initialization settings are correct in
the page Boot and Init.

Select a ROM based monitor


ROM monitors are located in the target’s non-volatile memory (FLASH or EPROM) and
will be started by power on of the target board.
The build of a ROM monitor is supported by the Monitor Development Toolkit, offered by
the PLS Development Tools. This toolkit provides the source code of our monitors
prepared for the supported compilers. On this way, the user can build its “own” monitor
program.
Before you can debug the application with a ROM monitor, the monitor code must be
flashed into the non-volatile memory of the target system. For that, you can use a
bootstrap loading based communication, i.e. the ASC Boot monitor. Switch your
hardware to bootstrap loading mode and use the internal FLASH MemTool of Universal
Debug Engine for programming the monitor code.

Monitor-less solutions
On principle for the JTAG/OCDS L1 communication, no monitor is required.

Note: Because of the internal architecture, the C166CBC derivatives require a monitor
still. In the page Monitor the location of monitor and vector table can be adjusted.

! However, the monitor will be loaded into the target system transparently via JTAG/OCDS
L1.

User's Guide Downloading the binary File 107 of 177


Connect the target system
After the preparations of the communication channel, you can connect the debugger with
your target hardware. Make sure, that the hardware is reset and correct initialized. Push
the button Single retry and the debugger will connect the target via the new
communication channel.
After the successful connection, the following message is shown:
UDEDebugServer: Connection to C167CR target monitor
established: monibc67 V3.42 08/00
(C) 1991/2000 pls Programmierbare Logik & Systeme GmbH.

Download the application


To download the application select Load Program from menu File. In the following file
selection box you can browse to a binary file and open it. After that, the program is
downloaded into the target and the debugger is ready to go through the program.
The instruction pointer is set to the default entry point of you program, usually the start-up
code. The start address depends from your used target architecture.

Viewing Program Code


The Universal Debug Engine features the viewing of program code in C/C++ and
Assembler level and provides the view of the program from three different standpoints. It
shows the source files, the functions and the sections of the loaded program. The
workspace window helps you to navigate into the parts of the program.

Note: UDE provides the view of the source code parts

!
located in the program sections by default. For viewing of
code outside of the program location, you may use the single
program window view.

Workspace
The workspace window shows all program specific
information and makes the navigation through the parts of
the program easier. The project is shown as tree control with
source files, functions and sections. You can expand the
view to the content by left clicking on the [+| -] Symbol.
If no workspace window is visible, open it via Window -
Project Workspace.

Source files
The folder Source files lists all sources of the current
project. With double-click you can open the source or bring
the source window to the top.

Functions
In the folder Functions all C/C++ functions of the loaded
program are displayed. By double-clicking on an entry in the workspace window, the
cursor is set to the corresponding line in the source code windows.

Sections
Sections are consecutive memory areas of code or data blocks. In the folder Sections all
allocated memory areas are listed, also the non-C/C++ parts of the program as the start-
up code, vector table and so on.

108 of 177 Viewing Program Code User's Guide


Program Window
In the program window, the source code is displayed. The Universal Debug Engine
supports a C/C++/Assembler source oriented view mode and a disassembly view mode.
Both display modes may be merged. If no C/C++/Assembler code is available UDE
shows disassembled instruction only.
The switch between the view modes C/C++ and C/C++/Assembler is made via the
context menu and the Mixed Mode entry.

C/C++ oriented view mode

The yellow pointer indicates the current location of the instruction pointer. After each step,
the position is updated.
The solid red circle shows that a breakpoint is located at this position. You can only set
breakpoints to C/C++ source line indicated with a small blue dot or to assembler lines.
The small blue dot means that the compiler has generated machine code for this C/C++
source line.

C/C++/Assembler mixed mode


The picture below shows the upper example displayed in the mixed mode. Each C/C++
source line is shown with the corresponding count of machine code lines. The breakpoint
indication is set to the real address location in the machine code.

User's Guide Viewing Program Code 109 of 177


Single Program window mode
One program window shows the target memory content as machine code with symbolical
information (code labels, C/C++ source lines) if available. The display position can be
moved by keyboard and mouse. If a source file was not found by the debugger
automatically, the file name and source line number will be displayed. In this case, a
mouse double click on this line opens a file dialog to browse in the file.

The Single program window mode can switched on/off in menu Views - Single Program
Window and with a corresponding tool bar button.

Disassembly view mode


The Disassembly view mode is only used, if no source is available.

110 of 177 Viewing Program Code User's Guide


Printing of program code
Via menu File - Print or the shortcut <CTRL - P> the content of the program code
window can be printed via the system printers. It is possible to print all pages, a set of
pages or selections. All view modes are supported.

Running a program
After the successful downloading of the program into the target, the program can be
started. The instruction pointer is set to the first instruction of the code. For example in
the C166 architecture, the address 0x0000 is used.
To start your program, use the menu Debug - Start Program Execution, or the <F5>
key.
Your program will stop under following conditions:
1. A breakpoint is reached.
2. A manual user break is made via menu Debug - Break Program Execution.

Note: Usually the compiler implements code for the case that the program returns from
the main function. Often it is implemented as an infinity loop, so that the program will

! continue running after the main's return. A solution for that problem is using a breakpoint
at the last return instruction.

Inline Assembler
The integrated inline assembler allows the change
of several machine instructions. It is available in
program windows in mixed mode or disassembly
mode only.
To input a new machine instruction set the mouse
cursor to the assembler line and use the context
menu. The entry Integrated Assembler allows to
start the Inline Assembler. In the following dialog box you may input the new machine
instruction. Push the button OK and the new instruction will be written into the target's
memory.

Attention: If the new instruction does not fit in the alignment and length of the code, a

! further instruction line is inserted with non-valid instructions. Be careful that non-valid
instructions are not occurred in the code.

User's Guide Running a program 111 of 177


Viewing and Modifying Registers
The Universal Debug Engine enables you to display and modify the complete register set
of the current microcontroller derivative on different ways. In addition to the predefined
CPU window and to the configurable SFR window UDE offers the feature of a user-
definable HTML based extension window.

Kinds of Register Views


Description of SFR, CSFR and GPR Registers
Core Special Function Registers (CSFR) control the operations of the microcontroller
core and provide status information about core operation. The General Purpose
Registers (GPR) complete the CSFRs with a set of multifunction registers. All other
registers of the used derivatives (except the CSFRs and GPRs as stated) are denoted as
Special Function Registers (SFR).

CPU View
The CPU window displays a selection of CSFR and GPR registers of the target
controller. It allows a fast access to the PSW, IP, Address and Data Registers. It is not
possible to configure the view of the register set for the CPU window.

SFR View
The SFR window allows a more flexible view to the registers. You can select any free
collection of CSFR, SFR and GPR registers that are displayed in the SFR window. This
way, a simple custom specific view is possible.

HTML View
Maximum customization is offered by the HTML window. It allows creating customer-
specific HTML documents where UDE ActiveX-controls, user components and access to
the UDE Object Model are embedded. This allows you to visualize and control aspects of
your target system in a more understandable and attractive way.

CPU View
To open the CPU view use the menu View - CPU window. A predefined selection of
CSFR and GPR registers of the target controller will be shown.

Changing the register content


To modify the value of a register in hexadecimal mode move the mouse cursor over the
target register content and double-click. An edit box with the content will open and allow
you to modify the register value. To enter the value push the <RETURN> key or click with
the mouse outside of the register box.

Color coding
The register values appear in three colors indicating the current state of the value.
Register Value Color State of the Register Value
Red Value has been modified by the program during the last step
Blue Value was changed by the user, but not yet written into the
target
Black Value was not changed

Note: For writing the user-changed value into the target, click outside the edit box, but

! inside the CPU window or push the <RETURN> key. Otherwise, the value will not be
written into the target.

112 of 177 Viewing and Modifying Registers User's Guide


SFR View
Creating or changing a SFR view
In the SFR View all registers of the CSFR-, GPR- and SFR-sets of the current
microcontroller can be displayed and modified. To open a SFR View, select Views - SFR
Window from the menu.
For selecting or deselecting the registers,
simply use the context menu via a right-
click on the SFR window. Now click on
the Browse menu item to open the
Register Selection dialog window. All
available registers of the current
microcontroller will be displayed in that
window. They are assorted according to
the peripherals they belong.
To select a register, expand the list and
scroll to the special entry for that register.
Click on Select or simply double-click the
entry to insert it into the SFR window.
A ToolTip will give you a short description
of every register in the list.
If the Expand checkbox is activated then the new register is automatically expanded in
the SFR window. If a register is already in the SFR window, it is marked bold.
To remove a register from the SFR window move the mouse over the register and open
the context menu via right click. Then select Delete to remove the SFR.

Changing the layout


The SFR window displays the registers and the values in a table format. The two columns
on the left show the name and the current value of the whole register. If you move the
mouse over the name, a short tool tip will show you the address, the reset value and a
short description of the register.
If you expand a register, the belonging fields and bits will be shown in columns right to
the name and current value of the register. The names of the fields are the same like in
the controller manual. The current value of each field is shown in a translated form. That
means you will not see the hexadecimal value but the meaning of the setting.
An example SFR view shows the following figure. There are some SFRs added to the
window. The PLL_CLC register is expanded and you can see all the bit fields and the
meaning of the current setting.

It is possible to display more than one bit field per row. This is useful if the register has a
great number of fields (e.g. port registers). You can select 1, 2, 3 or 4 fields per row. To
change the layout you can use the context menu and go to Layout. In the submenu
select one of the alternatives. You can also change the order inside the SFR window.
Move the register per Drag ’n Drop from one location to that place that you want.
The layout of the SFR view content can be exported and imported via Content from the
context menu.

User's Guide Viewing and Modifying Registers 113 of 177


Changing the register content
To change the register content you have two possibilities. The first one is to change the
complete value for one register. To do this, select the register (complete row will be
marked blue) and move the mouse cursor over the register value (second column). After
that open the context menu via right click. Select Change will prompt a cursor inside the
value. Now you can modify the data. Press return to accept the new data and to write it
into the target. As a shortcut simply press ‘F2’ to enter the change mode.
The second possibility is to change not the whole registers, but only one bit field. Expand
the register to display all fields of it. Then select the field that you want to change, move
the mouse cursor over the value and open the context menu. Now you can select one
possible setting for this special field from the menu or select change to enter a
hexadecimal value manually. To enter the change mode you can use the shortcut ’F2’

Note: Some registers have a lock symbol left to their name (e.g. the BIV register in the

! figure above). That means that these registers are EndInit protected. To change their
values you must first unlock them. For that registers a new option Write protect is in the
context menu. If this option is disabled the lock symbol is also in an unlocked state. Now
you can change the data. The Debugger performs a special access cycle in this case.

Saving and Restoring


If you want to save your current window configuration for later use or for other projects,
you can use the Content option from the context menu. Select Save from the submenu
opens a file dialog where you specify the filename. Later or in other projects, you can
load the SFR window content by selecting Load from the context submenu.

Color coding
The register values appear in two colors indicating the current state of the register value.

Register Value Color State of the Register Value


Red Value has been modified by the program during the last step
Black Value was not changed

HTML View based on the UDE Object Model


The HTML view is suitable for visualizing and controlling of contexts of custom specific
target hardware.

Note: All HTML views are interactive only when they are running under the UDE desktop

! control. That is why the HTML window for viewing must be used.

The online help system contains a detailed description of the UDE object model
illustrated with many examples. The documentation can be found at
<UDE_DIRECTORY>\Help\UdeObjectModel.chm

114 of 177 Viewing and Modifying Registers User's Guide


Watching Variables
The Universal Debug Engine features two kinds of windows for viewing the contents of
C/C++ variables.
1. The content of the Watch View can be defined by the user. All types of variables
(automatic, static and global) are possible.
2. The Locals View shows all-automatic and function/block local static variables that
are valid in the current scope.

Watch View

You may open the Watch View by clicking Views - Watch.


The Watch View content can be defined by the user. Adding of variables may be done via
right clicking in the Name column and using the context menu entries Browse or
Expression. Alternatively, you push the <Ins> button for selecting a variable from the
variable list or the <F2> button for editing the name of the variable.
Expandable variables, i.e. pointer and array, are shown with a + / - flag in front of the
variable. Use this flag to collapsing and expanding of the variable's elements. The
variable view format can be selected from decimal, hexadecimal and ASCII. For this
purpose, two value columns are displayable. The physical address of the variable part is
also displayable.
Variable values can be easily changed by clicking in the value area and typing in the new
value. Additionally, the context menu entry Change and the button <F2> are usable.

Note: In the first line of an expandable variable the value means the base address of the

! variable. In the example above, the abyBuffer variable is an array. The first line value
entry 0x4001 points to the base address of abyBuffer in the target's memory.

Watch Expressions
In the previous section, the selection of variables to view from a list by its name was
described. Beside this, it is also possible to define watch expression, which means the
manual selection of variables and parts of its structures.

Global Variable description

Syntax
VariableName (global)
VariableName#
The second form is for compatibility reasons to fast-view66 only.

Example
g_nCount (global)

User's Guide Watching Variables 115 of 177


Module static variable description

Syntax
VariableName [source_file]

Example
nLastTime [time.c]

Function static variable description

Syntax
VariableName [source_file]:{function}

Element Description Example


source_file Name of source file with extension and without ..\time.c
path (A relative or absolute path from the v:\time.c
command line of compiler is also possible but
has to match exactly)
function Function name

Example
nLocalCount [time.c] : {timer_overflow}

Global, static variables and parts of it


Global and static program variables means all variables with a fix address, which means
not stored in registers or on the stack. Such variables and parts of it can describe in
common C-Syntax, as the expression would used in a C program.

Syntax
?(<C variable or part of it>)

Examples
?(abyBuffer[5])
?(timeStruct)
?(timeStruct.hour)
?(arrayOfTimeStructsInstance[4].hour)

Real expressions
Real expressions means expressions that value do not have a fix address. Therefore,
these expressions consist of two or more global or static program variables and may
contain constants. They can describe in common C-Syntax, as the expressions would
used in a C program.

Syntax
?(<C expression>)

116 of 177 Watching Variables User's Guide


For compatibility reasons to former products functions following inline function in
expressions is supported

fconvert("<double_scale_factor>[,<double_offset>]",<C expression>)

<double_scale_factor> and <double-offset> are in %G syntax.


<double_offset> default value is 0.
<C expression> is integer expression.
This inline function will be converted after input to following expression

(<C expression>)*<double_scale_factor>-<doube_offset>

Examples
?(timeStruct.hour*60)
?(timeStruct.hour*60+timeStruct.minutes)
?(arrayInstance[i])
?(arrayOfTimeStructsInstance[i+1].hour)
?(i+3)

Please note, that 'i' can be a variable of global or static scope.

Real expressions with alias name


Real expressions with alias name mean the same like real expressions in paragraph 2.
In addition, an alias string can be assigned.

Syntax
?("<printf format string one format specifier>", <C expression>)

Input Examples Output Examples


?("%d minutes left", timeStruct.hour*60+timeStruct.minutes) 73 minutes left
?("Temperature: %G °C",((a+b)*2)/30) Temperature: 47.21 °C

Description of watch view content in a file


It is possible to describe the watch window content in a text file. The file can Load/Save
via the context menu in watch window.

Syntax description

Every line contains one watch variable description or watch expression like explained in
chapter II and III of this document. Blank lines and comment lines are also allowed.
Comment lines start with a semicolon character (';') as the first non-whitespace-character
of the line.

Adding Variables and Expressions using Select Watch


Dialog
This sizeable dialog makes it possible to add static and global variables (all variables with
fixed address) and complex expressions using these variables of loaded program to
watch window.

User's Guide Watching Variables 117 of 177


The dialog contains two tabs:

 Variables Tab:
This dialog page enables to add variables to the current watch window. Variables are
sorted by scope: Global variables, Module static variables, Function static variables,
All static variables and a list of all. Within lower hierarchy levels the entries are sorted
in alphabetical order.
 Expressions Tab:
The expression tab is the viewer for the global debugger “Expression Clipboard”. It
shows user defined expressions from Watch and Graph window and expressions
loaded via 'Load' button from *.wat or *.wax files . An expression can added to the
Watch or Graph window from here.

If expressions contain only one integer variable, this variable is extracted


automatically and can be selected separately.
This expression itself allows enables an additional display feature, which is called
Advanced Expression Resolution:

This means the parallel display of multiple values for the expression, which contains
only one integer variable. This makes it possible to display the calculated value of the
expression and of the corresponding integer variable. Following additional implicit
functions are available for such expression:
 Formula simplification
 Recognition of such formula type
 Automatic extraction of integer variable
 Changing of expression and variable possible
 Recalculation and changing of integer variable in target if expression value
is changed

118 of 177 Watching Variables User's Guide


Locals View
Open the Locals View by clicking Views – Locals. The Locals window displays all
automatic and function/block local static variables defined by C/C++ scope rules. This
view is not configurable, but refreshed automatically. The variables are shown
comparable with the Watch view and the values can be changed in the same way.

Automatically variable content refresh


UDE can refresh the variable content during all states of the target, assumed that the
target is in a connected state. Via the context menu the automatic refresh period can be
setup. A manual refresh is also possible.

Stepping and Breakpoints


Overview
In general breakpoints are used the stop a running target system. On the one hand,
breakpoints help you to follow the program flow and on the other hand, they allow you to
see the actual program and processor status. Shortly, they are helpful to observe the
behaviour of the watched program.
With the support of the OCDS L1 modules of C166CBC and TriCore UDE offers some
new features of debugging. The OCDS L1 module can be programmed as a user defined
trigger and supports hardware breakpoints, stops the microcontroller when a target
read/write access occurs and stops in dependency of the ALU result.

Following the program flow


The Universal Debug Engine supports the stepping through the program on a very
comfortable way.
Many features are available for controlling the program flow. You may use the menu
Debug or the task bar for selecting the matching feature.
Step into Subroutine <F8>
Step into the Subroutine means that all code lines are executed step by step.
Step over Subroutine <F9>
Step over the Subroutine means that subroutines are executed, without the inside of
the Subroutine is shown.
Step out Subroutine
If the IP is located within a subroutine the Step out command jumps to the calling
procedure of the subroutine.
Run Program to Cursor <F4>
The program is started and is run until the instruction pointer reaches the location
defined by the current cursor location.

User's Guide Stepping and Breakpoints 119 of 177


Stop the program at a specified location
The Universal Debug Engine allows setting breakpoints in the program manually. These
breakpoints stop the execution of the program, when the microcontroller reaches this
location. Fundamental you can differentiate between conditional and absolute
breakpoints. Additionally data breakpoints are supported.

Absolute Breakpoints
Absolute breakpoint means a program stop at a
specified target location without any conditions.
Setting of breakpoints can be done via the context
menu of the program window. Set the cursor to the
program line and open the context menu via right
clicking.
The entry Insert/Remove Breakpoint set or reset a
breakpoint to the specified program line. As a result,
a solid red circle is shown on the left side of the
program line. The entry Enable Breakpoint enables
or disables the specified Breakpoint. Disable
breakpoints are shown as red circles.
The breakpoint dialog reachable via menu Debug -
Breakpoints gives you an overview about all breakpoints.

Conditional Breakpoints
Conditional breakpoints are used to halt a program because of a predefined condition. To
setup the conditional breakpoints use the breakpoint dialog, reachable via menu Debug -
Breakpoints ...

Data Breakpoints
UDE supports the usage of data breakpoints if on-chip debug support on target MCU is
available (e.g. OCDS L1). This means that the program will break when a read or write
access to a memory location is happen. Data breakpoints can be set in Watch View and
in Memory View.
The context menu of a Watch Window
serves to set data breakpoints. This option is
available only if the connected target
supports data breakpoints. It can use at a
one or more selected main and child entries
in all columns except the <new variable
entry>. The memory range for the data
breakpoint will build up from the start
address and the length of the selected entry.
If a head entry of a complex data type (e.g.
structure or array) is selected a data
breakpoint at the length of the whole type is
set. The breakpoint can be set on Write,
Read or Read/Write accesses. All data
breakpoints can be enabled, disabled or
cleared together.
Data breakpoints can be used in the
Memory Window similarly, the same context
menu is available. These breakpoints are
shown with red mark analog code
breakpoints.

120 of 177 Stepping and Breakpoints User's Guide


Breakpoint dialog

Hardware/Software Breakpoints
Corresponding to the used target controller hardware and software breakpoints can be
used.

Software breakpoints are special microcontroller instruction that will cause an interrupt or
trap. To set a software breakpoint the program code must be modified. Because of that
the program part for debugging must be located in a RAM memory area.
Hardware breakpoints are only available with the support by specialized hardware
architecture. For example, the C166CBC, the C166S and the TriCore microcontroller
feature the OCDS L1, the On-chip Debug Support module, which allows hardware
breakpoint. With using of hardware breakpoints, the program code can be located in all
kinds of memory systems.

Note: The hardware breakpoints are a limited resource. That is why, not all breakpoint

! constellations are solvable with hardware breakpoints, i.e. breakpoints in complex case
expressions.

Loop qualified breakpoints


At this time loop qualified breakpoints are available. This means that the breakpoint will
cause a microcontroller stop after a predefined count of loops over the breakpoint
location. In the example above the Breakpoint 0 has been reach zero times and will stop
the microcontroller after eight loops.
The start point and end point are defined in the breakpoint dialog. The checkbox Loop
Counter enables the condition for the selected breakpoint. The value shows the current
loop count and the Goal box defines the endpoint. Both values are editable and shown in
the upper list box in the columns Max. Loops and Curr. Loops.
Counting the loops is done at the host side, thus the user application is stopped and
restarted if the program counter passes the given location.
Condition
Here a C-Expression can be entered. This expression is evaluated each time the
program counter passes the location of the breakpoint. If the result of the expression is
not equal to zero then the user application is halted.
Macro
If the user application is halted due to the breakpoint then the macro with the specified
name will be executed. Please refer to macros and UDE Object Model how to write and
load macros.
The buttons Add and Change show sub dialogs for adding and changing of breakpoints.
You can set or move breakpoints to functions and code locations directly.

User's Guide Stepping and Breakpoints 121 of 177


Breakpoint identifier
Assembler Breakpoints are defined via its physical address location on assembler level.
However, High-Level-Language Breakpoints have a reference to the source code,
specified via module, function, source code line and so on. That is why the breakpoint
description of a HLL-Breakpoint is more difficult.

Syntax description
'function {source_file}.line[+]';module[,module2...];line_range;
line_offset;[address_offset];

'label [+ address_offset]';module;

address

Element Description Example


function Function name quick_sort
source_file Source file name sort.cpp
line Line number - A plus sign (optional) means that 50
the breakpoint is near the corresponding address
only and it is not an high level language
breakpoint (Assembler breakpoint). Assembler
breakpoints have one address only.
module Module name - Module names separated by SORT
commas.
High-level language breakpoints at source lines
line_range
can cover different code ranges. This is the
position number of the corresponding code range.
The number starts with one and increases with
growing addresses.
line_offset This is the line number offset from start of function
to the breakpoint line. This saves the breakpoint
description against source file changes around
the function.
For Assembler breakpoints, this parameter
address_offset
describe the address offset from the
corresponding line or label address to the
breakpoint address.
Can be null (0x0) to describe an Assembler
breakpoint at a line address.
label Label name. quick_sort
address Pure hexadecimal address with 0x prefix. 0x200

122 of 177 Stepping and Breakpoints User's Guide


Viewing Memory Locations
For viewing and modifying of the target's memory locations, the Memory Window is
usable. It is available via menu Views - Memory Window or the corresponding tool bar
button.
The leftmost column displays the address of the data, and the columns beside the
address column show the data in the selected format. You may specify the format using
the context menu as Byte for 8 bit data, Word for 16 bit data and DWord for 32 bit data.
Independent of the data width, an entry named Decimal in the context menu allows
toggling between hexadecimal and decimal display.
To change values simply overwrite the selected location with the desired value. The
Memory Window ignores the input if a key is pressed which is out of range for the current
format (for example, if typing in the letter X in any but ASCII format range).
The size for editing addresses is limited to 8 chars. Addresses in integer based modes
must be entered in hexadecimal form without any extensions like '0x' or 'h'. This differs
from entering addresses in floating point modes.

! Please note that you can also type in symbolic names of programs object into the
address field.

Writing data to target


There are two modes to write data to the target. The first one - Auto Write - writes the
user-modified data as soon as the user moves the cursor to a different location (address)
while in the second mode the user is responsible to write the data to the target using the
context menu entry Write explicitly. Data modified by the user, but not written into the
target system, is displayed in blue color.

Note that data marked in blue color might differ from the data in the target.

Toggling between these modes is done with the context menu entry Auto Write. When
writing to the target, the values will be verified. If the read value has the expected value,
the color is changed from blue to black. When writing has failed, the color is changed to
red.

Updating data from target


Updating is done when the user application switches from running to stop and when the
Memory Window is scrolled. In each case, the entire previous snapshot is discarded. If
the data has not changed, the new snapshot is compared against the old one and
modified data will be displayed in red color.
Data coloring for different states of the entries:

! Register Value Color


Red on White
State of the Register Value
Value has been modified by the program during the last step
Blue on White Value was changed by the user, but not yet written into the
target
Black on White Value was not changed
White on Red Data Breakpoint enabled
Black on-pink Data Breakpoint disabled
White on Blue Data Range selected

User's Guide Viewing Memory Locations 123 of 177


Printing of memory locations
Via menu File - Print or the shortcut <CTRL - P> the content of the program code
window can be printed via the system printers. It is possible to print all pages, a set of
pages or a selection. All view modes are supported.

Viewing Data as Scientific Chart


The UDE graphical window displays target program data as series of a scientific chart. It
is a powerful visualization tool, which helps to accelerate the evaluation of complex target
program data from process environment and by the verification of complex software
algorithms. It can be used with all microcontroller families supported by UDE.
The UDE window displays pre-processed target system data as data series of a 2-
dimensional scientific diagram. This feature makes it easier to visualize and evaluate
target data to accelerate the verification of complex software algorithms and input from
process environment.

Basic features of the Graphic Display Window


 Multiple curves in one diagram window
 Separate x- and y-axis for each curve
 Flexible calculation of curve data points from target program data with UDE
expressions
 Update of data after program hold or with programmable refresh rates during running
and stopped target program
 Save and restore of complex settings in UDE workspace and separate file
For using the Graphic Display Window the window is available via menu Views - Graphic
or the corresponding tool bar button.

Using Expressions
The typical application of Graphical Display Window displays target data, which are
stored in target program’s data arrays. The description, which parts from target array data
is displayed, is held flexible.

124 of 177 Viewing Data as Scientific Chart User's Guide


The detailed description of the expression syntax can be found at
<UDE_DIRECTORY>\Help\UdeGraphWin.chm
chapter „Reference/Using Expressions“.

Graphical Display Window Properties


The context menu allows following modifications:
Zoom changes the cursor to cross cursor to select the Zoom range. Push the left mouse
button down at the diagram position, where the zoom rectangle has to start, hold the
button down and pull the zoom rectangle to the opposite endpoint. If the button is
released, the zoom operation occurs. The nested zoom state is saved and can be
recovered with Zoom out function or via the Reset function to return to un-zoomed
original state immediately. To release the zoom operation mode, re-open context menu
and activate the Select function. If a nested zoom-out operation is pending, the context
menu contains an additional Zoom out entry.
Zoom out restore last previously stored zoom state or the original window state, if all
nested zoom states are restored.
Enter the Pan mode and change the cursor into a typical move cursor. If the left mouse
button is held down, the whole diagram can be dragged from current view position into
another view position. The axis coordinates are changed according to the new position.
The Reset function restores the original window state. To release the pan operation
mode, re-open context menu and activate the Select function.
The Cursor mode opens a line cross over the whole diagram area and an additional
window, that displays the x- and y- values of all corves at the current line cross center. To
release the cursor operation mode, re-open context menu and activate the Select
function.
Load external opens the file open dialog and asks for a file name that contains a
complete set of current graphical view settings. The current content of the graphical view
windows will be deleted and the window restores the content from graphical view storage
file.

Viewing Call Stack


The Call Stack window displays the calling hierarchy of the program. The top entry shows
the actually IP location and the name of the currently executed function, if available. The
entries below list the return addresses in the sequence of their occurrence.
With a double-click to a stack entry, the corresponding location is shown in the program
window. So, an easy navigation through the current program hierarchy is supported.

Once a line is selected the default context in UDE is changed to this location and all
information in watch, locals and in the CPU window is related to the selected context.

In the example above the actual IP


location is 0xD40041F0 in the
timer_handler() function. This
function was called by an interrupt
occurring while execution of the
main() function. The function will
return to the address 0xD4004230 in
the main() function. The section between the two functions means the interrupt
handling code. The entry at the bottom shows the return point in the startup code.
Because the startup code is not a high-level-language part of the program no function
name is displayed.

User's Guide Viewing Call Stack 125 of 177


Program Execution Time Measuring
Program execution time measuring is supported by UDE via
 Trace unit on target. Please refer to the chapter about time measuring
 Timer unit on target.
To use time measuring via target timers the feature has to be enabled in the target
interface. Connect to the target and open the target interface setup. Open the page
Monitor respectively the page Debug and enable the Program execution time
measuring. Select the timers for usage if available.
Open the tool bar Config, double-click to the right field, labeled with Function disabled
per default. A properties dialog will be opened. Enable the time measuring in this dialog.
Select the adequate working mode:
 Continuous mode - the timer accumulate the lapsed time
 Single step mode - the timer shows the lapsed time of the last single step of UDE.

126 of 177 Program Execution Time Measuring User's Guide


Trace, Visualization and Analyzing
Hard real-time debugging requires close interaction with the processor. Tracing shall
provide a chronological picture of a system's inner workings up to, starting from or in the
vicinity an event, mainly to guide a human in understanding a faulty program.

System Level Debugging


Code Execution Variable
Profiling
Coverage Sequence access
Amount of Call hierarchy
Execution Memory
Measurement execution time
of code
and execution
changes
for each function time sequence
Code trace with
Code trace Data trace with
tick information Code trace with
Requirements (Subroutine
without
tick information
tick
tick information information
only possible)
Graphical chart Graphical chart Graphical Graphical
Results and reports and reports chart chart

Different semiconductor vendors have defined trace interfaces like MCDS, Nexus,
CoreSight, ETM and ETB for this purpose. These trace ports are available on the
AURIX, TriCore, PowerArchitecture and ARM derivatives. The Universal Access Device
2+ with Trace Board add-on and Universal Access Device 3+ with parallel trace pod
support NEXUS and ETM parallel trace.
MCDS and ETB are embedded trace ports including the trace buffer on-chip, which
reduces the requirements of an external trace analyzer to a minimum. AURIX processors
support MCDS trace and several Automotive Power Architecture processors support
NEXUS trace over high-speed serial Aurora trace interface. Universal Access Device 3+
supports this high-speed serial trace interface by a special trace pod.
Triggered Transfer is a feature of TriCore and XC2000/XE166 micrcontrollers for high
performance polling of target memory.
Memory Transfer means the transfer of data via debug channel.
Cortex can provide trace event messages via the Serial Wire Output SWO or
Instrumentation Trace Messages ITM.

Trace Sources
MCDS Aurora Nexus Aurora
MCDS Nexus
Trace Trace
EmulationDevice
Automotive Automotive
Processor TriCore ED, EmulationDevice
Power Power
support XC2000 ED, AURIX ED,
Architecture Architecture
AURIX ED
Event Event Event Event
Output format Messages Messages Messages Messages

Message Message Message Message


Time accuracy1 Tick Tick Tick Tick
+
+ UAD2 - 5 MByte +
On-Chip Memory: UAD3 - 4 GByte + UAD3 - 4 GByte
Trace memory up to 1024 kByte UAD3 - 4 GByte
Aurora trace pod Aurora trace pod
parallel trace pod
Instruction Trace Instruction Trace Instruction Trace Instruction Trace
Trace covering Data Trace Data Trace Data Trace Data Trace
Continuous trace, Continuous trace,
Advantages complex trace complex trace Continuous trace Continuous trace
filter filter
Limited by size of Limited by size of Limited by size of Limited by size of
Disadvantages trace board buffer trace board buffer trace board buffer trace board buffer

User's Guide Trace, Visualization and Analyzing 127 of 177


Trace Sources (cont’d)
Triggered Memory
CoreSight ETM ETB
Transfer Transfer
Processor TriCore, XC166,
ARM, Cortex All except ARM ARM, Cortex
support XC2000, XE166

Event Data Signal and IP Pipeline


Output format Messages Snapshots Snapshots States

Message Endless Trace Endless Trace Processor


Time accuracy1 Tick ≥ 100ms ≥ 1ms Tick
+
UAD2 - 5 MByte
+ Buffered in Buffered in On-Chip Memory:
Trace memory UAD3 - 4 Gbyte UAD2, UAD3 UAD2, UAD3 up to 6 kByte
parallel trace pod
Instruction Trace IP and Data Instruction Trace
Trace covering Data Trace
Data Trace
Trace Data Trace

Endless trace Endless trace


Advantages Continuous trace
possible possible
Continuous trace

Limited by size of Non-continuous Non-continuous Limited by size of


Disadvantages trace board buffer trace trace trace board buffer

Trace Sources (cont’d)


ITM / SWO

Processor
Cortex
support
Event
Output format Messages

Endless
Time accuracy1 Trace

Buffered in
Trace memory UAD2, UAD3

Trace covering Data Trace

Endless trace
Advantages possible

Non-continuous
Disadvantages trace
1)
depending from target system

128 of 177 Trace, Visualization and Analyzing User's Guide


Trace Analyzing Features and Views
Analyzing of traced data is one of the features supported by UDE. The analyzing
functions support different use-cases. Different types of views support the visualization of
the results of these use-cases. The table below shows an overview of the supported trace
visualization and analyzing use-cases.

Trace Visualization and Analyzing


Code Program Flow
IP Profiling Trace Profiling Time Chart
Coverage

View format Bar chart Bar chart Bar chart Line chart

Memory Transfer MCDS MCDS MCDS


Trace source Periodical debug Nexus, ETM, Nexus, ETM, Nexus, ETM,
read by UAD FW ETB, CoreSight ETB, CoreSight ETB, CoreSight
Displays traced
Displays hits of Displays code addresses
Displays all
sampled IP recorded IP hits assigned to
Method of executed
addresses addresses hits function ranges
Visualization instruction in
assigned to assigned to or hexadecimal
program window
function ranges function ranges addresses over
time axis
Endless trace,
Exact profiling Graphical display
good Flow of recorded
results over the of program trace
approximation IP addresses,
recorded time records to get a
Advantages about most
range of IP
detection of
better global
runtime- incomplete
addresses in overview about
consuming execution of code
trace buffer program flow
program parts

Trace Visualization and Analyzing (cont’d)


Variables
Access Time Trace View Signal Trace Signal Log
Chart

View format Line chart Message Log Line Chart Message Log

MCDS
MCDS Memory Transfer
Nexus, ETM, ITM,
Trace source Nexus, ETM,
ETB, CoreSight,
Periodical debug
Trigger Transfer
ETB, CoreSight read by UAD FW
ITM
Displays
Displays all Displays all
recorded read- Displays values
recorded recorded
Method of and/or write of a variable or
information information
Visualization access of expression over
contained in raw contained in raw
variables over time axis
trace data trace data
time axis
Graphical display
of variable trace Raw trace, flow of
records to get a recorded IP data Endless trace, full
Raw trace, flow of
Advantages better global related to scaling of time
recorded data
overview about appropriate and value interval
time of variable source code
access

User's Guide Trace, Visualization and Analyzing 129 of 177


Trace View
MCDS trace, NEXUS trace (some types) and ETB trace can be used without any
additional hardware add-on.
Dedicated AURIX and PowerArchitecture emulation devices support high-speed serial
trace output via Aurora protocol. Therefore, a UAD3+ with Aurora trace pod is required.
Using the Nexus parallel trace, CoreSight, ETM trace features with UDE is only possible
with UAD3+ with parallel trace pod.
Usage of external trace requires an additional target specific interface cable. The
complete overview over all target specific interface solutions is available within the actual
PLS’ product information or on our website www.pls-mc.com or ask PLS support
(support@pls-mc.com) for further details.

Configuring the Trace Window


The actual UDE configuration must be configured to support one of the hardware specific
UDE trace channels. If this feature is configured, a tool bar and a menu item to open the
trace window are available. Then, open the trace window by menu Views - Trace
Window. Following user interface elements are additional available, if trace feature is
available:
 Trace functions in “Tools” tool bar

o Save trace steam


o Load trace stream
o Start trace
o Stop trace
o Clear trace data
o Configure trace
o Trace use case
 Same functions are available within “Tools” menu
 The local menu of the trace window provides also the most functions of these
bars.
o Start / Stop Trace activate/deactivate the trace
manually. Before the trace can be started, the
trace must be configured correctly.
o Clear deletes trace data so the window is
completely empty after execution of this
command.
o Show Trace from helps you to navigate to the
top, the bottom and the trigger position. For a
finer resolution use the Find options.
o Trace Config … opens the trace channel specific
trace configuration window or dialog.
o The Hide / Show Empty Rows menu-point toggles the display mode of
the window. The trace buffer contains often many empty samples
(Pipeline holes). For the choice of a compact view of the program trace
hide the empty rows. For an isochronous view, choose the empty rows
for showing.
o Use the Save As ... to save the displayed samples to a file. Two formats
are possible: columns tabulator separated (*.tab) or formatted with space
characters (*.txt).

130 of 177 Trace, Visualization and Analyzing User's Guide


o With Find ... you can search for a term in the specified column of trace
buffer.
o Configures the trace window properties via the Properties ... entry.

 Furthermore, the local menu of the appropriate trace stream node in the Target
Browser view provides also a local menu with all global control functions of the
trace stream.

Configuring of Trace Configuration


The trace window can display different kinds of trace message from of different cores.
Therefore this window is an ideal tool to identify complex problems, e.g. to find multi-core
software run-conditions.
This example uses a TC27xxED with MCDS support and as program the TimeDemo.elf
from the example directory.
Open the UEC trace configuration window via menu Tools – Configure Trace to create a
trace configuration to record the multi-core start sequence between core 0 and core 1of
TC27xx. Execute the following steps to create the required configuration:
 Switch to UEC configuration window.
 Switch from Compact to Advanced Configuration library.
 Drag the Init TriCore library element (1.0) to configuration area.

User's Guide Trace, Visualization and Analyzing 131 of 177


 Change Memory Size to maximum value of 1024kByte
 Change Syncmode to mode Sync to set the best tick resolution between traced code
samples
 Change Core Y to core 1.
 Drag the Signal program address library element (2.1) to configuration area.
 Set Signal name to e.g. “my_signal”
 Select LEDCTL_Init function start address as comparison address for Core X PC
 Drag the Actions on condition library element (5.1) to configuration area.
 Browse “my_signal” as signal name for If condition.
 Select as action Trigger trace
 Drag the Emit actions library element (5.3) to configuration area.
 Add emit action store Core X PC
 Add emit action store Core Y PC
 Add emit action ticks on
The MCDS trace configuration for this special task is now completed.

Now you can start trace (tool bar icon or menu Tools – Start trace.. or trace window local
menu start trace function). After start of program execution, the Background Task
Progress window completes the task:
 Record trace stream to memory

132 of 177 Trace, Visualization and Analyzing User's Guide


Analyzing Results
After completion of this task, the Trace window displays the first page of the decode trace
stream.

Identify Core related Messages

The core related trace messages are colored in the core specific framework windows tabs
colors. These colors can be assigned by UDE configuration dialog (menu Configuration
- Debug Server Configuration - Windows Tabs Color) .

Trace Buffer Find Dialog

Value defines the string to find in a


column. The search string is case
sensitive. The find operation returns any
row in the selected column that contains a
substring, which hits the input search
pattern. The dialog saves user input
values in a history for later re-use for
additional searches. The history is accessible with the drop down box.
Select the Column that has to contain the search string. This value is preselected
corresponding to the right-click position automatically.
The Up and Down specifies the direction to search for. The search starts at the selected
row. Find Next starts the search. The dialog remains open without successful search
operation. Otherwise, the dialog is automatically closed and the window scrolls the found
row in the view area and highlights it.

Switch to Source Code


After selection of an row , which contains code trace messages, a double click at this
rows force to open a program window with the source code of the selected code address
and shows the related code position in the current mode of this program window
(assembly or high-level language source code),

User's Guide Trace, Visualization and Analyzing 133 of 177


Instruction Pointer Profiling
The Instruction Pointer Profiling window displays profiling results of occurrence of
instruction pointer samples inside of functions of a running program. The input data will
be provided by periodical read of instruction pointer over debug channel by UAD
firmware.

Configuring the Instruction Pointer Profiling Window


A distribution statistic over polling results will be displayed as bar chart over all functions
or sections (if no symbolic information about functions is found for the appropriate
address) , which are hit by periodical polling of the value of the instruction pointer. This
method requires an architecture, which provides the capability to read the instruction
pointer value periodically during program execution (e.g. Infineon TriCore and
XC2000/XE166 microcontrollers). Using the UAD2, a sampling period in the range of 1
millisecond (1 ms) is assured for snapshots of the actual content of the instruction pointer
in a selectable period during running target program.
Open the trace window by menu Views – Instruction Pointer Trace Profiling.

The chart displays the actual statistics of instruction pointer sampling results. The
profiling method of periodical polling of the instruction pointer generates two kinds of
results for each function or section range:
 Number of hits per function or section range and
 the approximated execution time of the function.
The execution time will be calculated from hits per function multiplied with the period
between two samples. The Profiling Setup page enables setup of different parameters
like the refresh period.
The profiling result table lists all details of instruction pointer profiling data set.

134 of 177 Trace, Visualization and Analyzing User's Guide


Trace Profiling
The Trace Profiling window displays profiling results of occurrence of instruction pointer
samples inside of functions of a running program, which are recorded by code trace from
MCDS, Nexus, CoreSight or ETM trace channel. The full program trace enables
measurement results of function execution time, which are much more exactly than
results from instruction pointer polling.

Use of Trace Profiling Window


The results of trace profiling will be displayed by the trace profiling window by two bar
charts (one for the amount of execution time of a function from overall execution time and
one for the absolute execution time of an function) and a table, which provides all details
of profiling calculation. Therefore open the trace profiling window by menu Views – Trace
Profiling…. The window content will be updated, when the corresponding hardware trace
stream has recorded and decoded new trace data.

Configuring of full Program Trace


The measurement requires a suitable trace stream configuration, which depends from the
kind of the trace channel. It ensures that program flow trace of the debugger assigned
core is part of recorded trace data.
This example uses a TC27xxED with MCDS support and as program the TimeDemo.elf
from the example directory.
Open the UEC trace configuration window via menu Tools – Configure Trace to create a
suitable trace configuration to record a program trace data with ticks of core 0 of TC27xx.
The profiling algorithm uses the data set to calculate the function execution results.
Execute the following steps to create the required configuration:
 Switch to UEC configuration window.
 Switch from Compact to Advanced Configuration library.
 Drag the Init TriCore library element (1.0) to configuration area.
 Change Memory Size to maximum value of 1024kByte
 Change Syncmode to mode Sync to set the best tick resolution between traced code
samples
 Drag the Signal program address library element (2.1) to configuration area.
 Set Signal name to e.g. “my_signal”
 Select main function start address as comparison address for Core X PC

User's Guide Trace, Visualization and Analyzing 135 of 177


 Drag the Actions on condition library element (5.1) to configuration area.
 Browse “my_signal” as signal name for If condition.
 Select as action Trigger trace
 Drag the Emit actions library element (5.3) to configuration area.
 Add emit action store Core X PC
 Add emit action ticks on
The optimized MCDS trace configuration for this use -case is now completed.

It is recommended to enable automatic refresh of profiling data after end of program trace
(if 1Mbyte on-chip trace memory is filled) by the Profiling Setup page, Basic Profiling
Settings group, checkbox Enable automatic refresh of trace data.
Now you can start trace (tool bar icon or menu Tools – Start trace.. tool bar). After start
of program execution, the “Background Task Progress” window displays two subsequent
tasks:
 Record trace stream to memory
 Decode trace data
After completion of the last task, the Profiling Views page of the Code Trace Profiling
window will be updated with the results from last run of program trace. This method
generates more detailed results than the measurement by instruction pointer polling. The
results contain additional information (in comparison to profiling using instruction pointer
polling):
 Number of recorded functions calls
 and the average function execution time,
The quality of measurement depends from amount of traced program addresses without
tick information and it depends therefore from type of trace channel. The summary
information of the result table contains a percent value of “Approximate time stamps”,
which allows evaluation of the result precision. For all recorded trace samples without tick
information, the appropriate ticks must be approximated based on the last and next
known tick values.

136 of 177 Trace, Visualization and Analyzing User's Guide


The following figure of the raw trace window shows a recorded program trace, which
contains code address samples without tick information.

Configuring of MCDS Compact Function Trace


The MCDS trace of Infineon TriCore AURIXTM supports an additional code trace mode,
which is named Compact Function Trace. This mode traces only the call and return
instructions. Therefore, this mode provides important advantages toward normal program
full trace:
 It drastic reduces the consumption of trace memory in comparison to full program
trace, therefore the available memory can store trace data for a longer period
(typically ten time longer and more).
 Each recorded function call and returns instruction has an assigned own tick value,
therefore the precision of the measured function execution times will be increased.
The following two figures show the complete UEC configuration for a profiling task using
compact function trace.

User's Guide Trace, Visualization and Analyzing 137 of 177


The profiling data analysis detects the compact function trace mode automatically from
trace configuration. Due to the enhanced accuracy and the longer time of trace recording,
the result of the compact function trace profiling analysis provides two additional
important results:
 Minimum function execution time
 Maximum function execution time

138 of 177 Trace, Visualization and Analyzing User's Guide


Code Coverage
UDE supports tree methods of code coverage by analyzing of recorded program trace
data of MCDS, Nexus, CoreSight and ETM trace channels:
 Statement Coverage of Machine Code
This method calculates code coverage data for statement coverage based on
information of execution machine instructions. This mode causes, that statement
coverage results are available in the program windows. Additional the specialized
Code Coverage Window displays all detailed result of the mode.
 Branch Coverage of Machine Code
This method calculates code coverage data for statement and branch coverage
based on information of execution machine instructions. This mode causes, that
statement coverage information are available in the program windows. Additional the
specialized Code Coverage Window displays all detailed results of statement and
branch coverage. The complete calculation requires additional information about the
program flow from complier symbol information.
 Branch Coverage of Control Flow
This method calculates code coverage data for statement and branch coverage
based on program flow information from complier symbol information. This mode
causes, that statement coverage information are available in the program windows. .
Additional the specialized Code Coverage Window displays all detailed results of
statement and branch coverage. This mode requires the availability of the additional
compiler option to generate the symbol information about program flow. This mode
generates coverage results, which are comparatively identical to the coverage results
generated by common known GNU compiler gcov-option.

Configuring of Code Coverage Mode


The code coverage mode must be configured globally by Code Trace Use - Cases
Property Page of UDE configuration dialog (menu Configuration - Debug Server
Configuration). The code coverage mode must be set to one of the three active
coverage modes, to enable statement coverage display in program windows and to
enable the menu and tool bar items, which opens the code coverage window.

User's Guide Trace, Visualization and Analyzing 139 of 177


Configuring of Trace Configuration
The code coverage measurement requires a suitable trace stream configuration, which
depends from the kind of the trace channel. It ensures that program flow trace of the
debugger assigned core is part of recorded trace data.
This example uses a TC27xxED with MCDS support and as program the TimeDemo.elf
from the example directory.
Open the UEC trace configuration window via menu Tools – Configure Trace to create a
suitable trace configuration to record program trace data of core 0 of TC27xx. The code
coverage algorithm uses these trace data to calculate code coverage results. The
optimized code coverage configuration need not contain additional time information
(compared with profiling configuration), which saves trace memory space. Execute the
following steps to create the required configuration:
 Switch to UEC configuration window.
 Switch from Compact to Advanced Configuration library.
 Drag the Init TriCore library element (1.0) to configuration area.
 Change Memory Size to maximum value of 1024kByte
 Drag the Signal program address library element (2.1) to configuration area.
 Set Signal name to e.g. “my_signal”
 Select “main” function start address as comparison address for Core X PC
 Drag the Actions on condition library element (5.1) to configuration area.
 Browse “my_signal” as signal name for If condition.
 Select as action Trigger trace
 Drag the Emit actions library element (5.3) to configuration area.
 Add emit action store Core X PC
The optimized MCDS trace configuration for this use-case is now completed.

140 of 177 Trace, Visualization and Analyzing User's Guide


Use of Code Coverage Window to evaluate the Coverage Results
The trace coverage window displays all detailed results of trace coverage. Therefore
open the trace profiling window by menu Views – Trace Code Coverage…. The window
content will be updated, when the corresponding hardware trace stream has recorded
and decoded new trace data. The window contains multiple pages, which provide the
following functions:
 The Code Coverage Setup page enables setup of different code coverage settings.
 The Summary Chart page displays the coverage result overview about all functions,
which are covered by the program trace.

 Additional pages provide detailed information about source line coverage inside of
functions. The local menu of summary chart enables to open an additional page for
each function for that purpose. If the cursor of the summary page is positioned about
the bar of the appropriate function, the local menu provides an item, which allows
opening the coverage details page of this function.

 Furthermore, the “Code Coverage” window additional enables to create HTML


reports, which contain all details of code coverage measurement of one or more
functions. These reports are intended for later use to document the complete process
of software qualification. These reports can be generated manually via local menu of
summary page or automatically after end of coverage analysis via pre-setup of file
locations and file names of the report files at the code coverage setup page. The
local help of the code coverage windows provides the required details.

User's Guide Trace, Visualization and Analyzing 141 of 177


Use of Program Windows to evaluate the Statement Coverage
Results
The program windows provide basic information to evaluate statement coverage results.
The background color of the first column of the program windows visualizes, if the
appropriate source line or instruction was covered by latest run of code coverage
measurement. If source mode is active,
 the green background color indicates, that all machine instructions of the source line
were covered,
the yellow background color indicates, that some machine instructions of the source line
were covered,
 the default background color indicates, that no machine instructions of the source line
were covered.

142 of 177 Trace, Visualization and Analyzing User's Guide


If mixed- or assembly mode is active,
 the green background color indicates, that the machine instruction was covered,
 and the default background color indicates, that the machine instruction was not
covered by last trace data set.

Program Flow Time Chart


This UDE window displays all code trace records of the current debugger instance
assigned core as data series of a 2-dimensional scientific diagram. This feature makes it
easier to visualize and evaluate target data to accelerate the verification of complex
software algorithms and input from process environment. The Scientific Chart view can
be used with all targets, which provide a hardware trace channel for MCDS, Nexus,
CoreSight, ETM or ETB trace.

Features of the Instruction Pointer Trace Chart Window


The Instruction pointer mode (left image) displays the instruction pointer trace as data
series of hexadecimal addresses. The Function trace mode (right image) displays the
instruction pointer trace assigned to the high-level language function ranges. For
switching between the two modes, open the context menu and select the mode using
Change mode of graphical view.
A Find function is available to enhance the search- and zoom-function to find specific
trace samples and zoom into specific sample ranges recorded via MCDS, Nexus or ETM
trace channels. For that, the chart has to switch into Zoom mode via context menu.
Double click to switch to program code. If current cursor position is snapped to a valid
code address, a double mouse click at this position switches to a open program window
or opens a new program window, which contains the appropriate source of the trace
sample recorded by trace channels.

Configuring of Trace Configuration


The use-case of program flow time chart requires the same trace configuration like full
program trace for trace profiling:
 instruction pointer for each executed instruction
 and an assigned tick to calculate the relative time for the execution.
Therefore the same trace configuration, which was described in chapter “Trace Profiling,
Configuring of full Program Trace” can be used.

User's Guide Trace, Visualization and Analyzing 143 of 177


Use of Instruction Trace Chart Window
Open the instruction pointer trace chart by menu Views – Instruction Pointer Trace
Chart. The configuration of the view is very simple; one of the possible display modes
must be selected by local menu of the view:
 Instruction Pointer Mode (default) , which displays an time base line chart of the
recorded addresses of the instruction pointer,

 Function Trace Mode, which displays an time base line chart of the recorded
addresses of the instruction pointer,

The trace data visualization will be updated, if new trace data are decoded and if they are
available for all trace data sinks. Therefore it is not necessary to define additional settings
then program the appropriate trace source to enable trace of instruction pointer values.

Variables Access Time Chart


This UDE window displays all data-access trace records of the current debugger instance
assigned core as data series of a 2-dimensional scientific diagram. This feature makes it
easier to detect time-related variable access problems and to accelerate the verification
of complex software algorithms and input from process environment. The Scientific Chart
view can be used with all targets, which provide a hardware trace channel for MCDS,
Nexus, CoreSight, ETM or ETB trace and enables data-access trace.

144 of 177 Trace, Visualization and Analyzing User's Guide


Features of the Graphic Display Window Instruction Pointer Trace
A Find function is available to enhance the search- and zoom-function to find specific
trace samples and zoom into specific sample ranges recorded via MCDS, Nexus or ETM
trace channels. For that, the chart has to switch into Zoom mode via context menu.
The pre-processing algorithm, which analyses the data-access trace records of the last
recorded stream, detects automatically the high-level variables, which are modified or
read by the core inside of the recorded stream. Therefore the main configuration for this
use-case is the an appropriate channel configuration, which configures the filter of the
favored data accesses.

Configuring of Trace Configuration


This example uses a TC27xxED with MCDS support and as program the TimeDemo.elf
from the example directory.
Open the UEC trace configuration window via menu Tools – Configure Trace to create a
suitable trace configuration to record write-access trace for the global variables g_Time
and g_TimerFlag with ticks of core 0 of TC27xx. The variable access chart trace post-
processing algorithm re-assigns the address based data-write trace message to the
original variable names. Execute the following steps to create the required configuration:
 Switch to UEC configuration window.
 Switch from Compact to Advanced Configuration library.
 Drag the Init TriCore library element (1.0) to configuration area.
 Change Syncmode to mode Sync to set the best tick resolution between traced data
samples
 Drag the Signal program address range library element (2.2) to configuration area.
 Set “Signal name“ to e.g. “my_start”
 Select main function as start address and endof main as end address of comparison
address range for Core X PC
 Drag the Actions on condition library element (5.1) to configuration area.
 Browse “my_start” as signal name for If condition.
 Select as action Trigger trace
 Drag the Signal data address library element (2.3) to configuration area
 Assign GTime as signal name of this signal
 Select the variable “g_time” from watch browse dialog as signal address
 Drag the Actions on condition library element (5.1) to configuration area.
 Browse GTime as signal name for If condition.
 Select as action store Core X WB addr
 Add further action store Core X WB data
 Add further action ticks on
 Drag the Signal data address library element (2.3) to configuration area
 Assign GTimerFlag as signal name of this signal
 Select the variable “g_TimerFlag” from watch browse dialog as signal address
 Drag the Actions on condition library element (5.1) to configuration area.
 Browse GTimerFlag as signal name for If condition.
 Select as action store Core X WB addr
 Add further action store Core X WB data
 Add further action ticks on
The optimized MCDS trace configuration for this use-case is now completed.

User's Guide Trace, Visualization and Analyzing 145 of 177


It is recommended to enable automatic refresh of trace data after end of data trace (if
1Mbyte on-chip trace memory is filled) by Code Trace Use - Cases Property Page of
UDE configuration dialog (menu Configuration - Debug Server Configuration”),
checkbox Enable automatic refresh of trace data.

146 of 177 Trace, Visualization and Analyzing User's Guide


Use of Variables Access Trace Chart Window
Open the variables access trace chart by menu Views – Variables Access Trace Chart.
Now you can start trace (tool bar icon or menu Tools – Start trace..). After start of
program execution, the “Background Task Progress” window displays two subsequent
tasks:
 Record trace stream to memory
 Decode trace data
After completion of the last task, the Variables Access Trace Chart window will be
updated with the results from last run of variable access trace.

Signal Trace - Real-Time Graphical Monitoring


The UDE graphical display window supports real-time graphical-monitoring of target
program variables. It lets you monitor and analyze the values of variables and complex
expressions calculated from multiple variables in your real-time application while the
application is running. You can use this mode of the graphical display window to track
down performance problems, “glitches,” and program errors. It can be used with all
microcontroller families supported by UDE, which support real-time memory access
(currently available for TriCore, XC166/XC2000 families, for PowerArchitecture targets,
which support the IEEE-ISTO Nexus 5001 compliance classification classes 3/4 and for
ARM Cortex
targets).
For using the
Graphic Display
Window the
window is
available via
menu Views -
Graphic or the
corresponding tool
bar button.

User's Guide Trace, Visualization and Analyzing 147 of 177


The variable browse dialog of New Signal Wizard or Expression Property Page allows
to select expression from new Expression Clipboard (see Adding Variables and
Expressions using Select Watch Dialog) as curve signals. New expression created by
New Signal Wizard or Expression Property Page are always saved to the UDE global
expression clipboard, if scientific time traced signal chart mode is active.
For better navigation of the current display range in the whole pane of available data
samples the legend display will be extended, if Zoom-, Cursor- or Move Data Window
Mode is active. This extended legend contains additional information, which part of
available data will be covered by actual display range of the chart window.
A Tooltip popup window displays all summary information about the curve data or axis
data range of the appropriate cursor position.

Using Expressions
The main difference between the expressions for Real-time Monitoring Mode and for
the Memory Locations Display Mode of the graphical display window is:
 The expression memory locations display mode shows multiple data point at the
same time because this mode displays a snapshot of different memory locations of
the target program to the same system time. Therefore, these expressions contain an
additional part that calculates the iteration counter to address the point of the curve.
 The real-time monitoring mode calculates the same expression periodically the
display the changes of the expression over the time. Therefore, it does not require
the expression syntax for an iteration counter.
Typical for real-time monitoring expressions can be consisting of:
 Simple basic program variables from type signed / unsigned character signed /
unsigned short, signed / unsigned long of single or double precision floating point.
 Expressions, which describes member of complex variables from type signed /
unsigned character, signed / unsigned short, signed / unsigned long of single or
double precision floating point.
 Expressions, which calculates results from type signed / unsigned character, signed /
unsigned short, signed / unsigned long of single or double precision floating point
from any expression of the multiple basic variables or basic member of complex
types.
The main advantage of using complex expressions is, that real physical values, which
must be calculated from multiples program variables, can be collected and displayed in
real-time. This includes the ability to access to basic members of complex types and
dynamically access to array member and to the controller special function registers. The
detailed description of the expression syntax can be found at
<UDE_DIRECTORY>\Help\UdeGraphWin.chm in chapter „Reference/Using
Expressions“.

Setting up Real-Time Monitoring Mode


The real-time monitoring mode requires fulfilling two requirements:
 The target debug interface must enable to access to target memory locations during
running target program with a minimum of real-time violation by this target access
 Due to the minimum sample period of 1 millisecond the data collection and pre-
processing (expression calculation) is be executed by the firmware of the access-
device.
The switch between the two modes of the graphical display window can be reached via
graphical display window local menu entry Properties. The scientific chart page contains
all settings cover global user interface settings (colors), the global chart settings and the
global data management settings: Array mode, which enables the display of a collection
or array of data based on a variable index. Real-time monitoring mode, which enables
display expressions (single variables or expressions calculated from multiple variables)
over the time by polling target data periodically during running target program.

148 of 177 Trace, Visualization and Analyzing User's Guide


This mode is called Time Sample Mode in the dialog boxes and property sheets of the
graphical display window.

If Cursor Mode is active, the Snap to cursor to nearest curve flag enables to snap
current cursor location to the nearest valid curve coordinates. If Double buffering is on,
the curve data are stored double buffered. Double buffering avoids flicker effects during
re-paint operations.
The trace results of the graphical display window can be stored in an XML based data set
collection. A new data set will be generated after each measurement period (depends
from selected display mode). The Result storage object path of this XML file can be
selected. If Array Mode is selected, the measurement period is closed after each update
of the curve (typically an update of an array). If time Sample Mode is selected, the
measurement period starts with the first program code run after program download. It will
be closed by termination of debug session or program reload or new program download.
A new data set, which was generated after each measurement period, can be added to
an existing data set collection or it can discard earlier generated data set via Append
data set to existing data storage.

User's Guide Trace, Visualization and Analyzing 149 of 177


Activating and Using Add-Ins
UDE is a component-oriented development workbench. UDE desktop as the working
environment of UDE can be extended with Add-Ins to expand the functionality of the UDE
development workbench.
Each Add-In can be activated individually for each project workspace. When a new
project workspace is created, no further add-ins are activated by default.

Activating an Add-In
To activate an Add-In within your project workspace and to write your application into a
programmable memory device please follow these steps:
1. Run UDE Desktop and load your project workspace.
2. Use menu Config - Add-In Components to open the UDE Add-In Manager. The
manager dialog shows a list of all UDE Add-Ins that are available within your UDE
installation. A checkbox shows whether an Add-In Component is already loaded
into the current workspace.

3. Mark the checkbox left of the Add-In to activate.


4. Use the OK button to close the Add-In manager dialog.
5. The add-in inserts new menu entries. Please see the reference of the add-in for
more information using the add-in.

Removing an Add-In
To remove an Add-In from your project workspace use menu Config - Add-In
Components to open the UDE Add-In Manager. Now uncheck the entry of the used Add-
In.

150 of 177 Activating and Using Add-Ins User's Guide


Triggered Transfer Recorder
UDE TTF Recorder uses the Triggered Transfer Feature of Infineon microcontrollers.
Triggered Transfer is part of the on-chip debug support implemented on these controllers.
It allows the transfer of a value of a single memory location via the JTAG debug interface.
The transfer is triggered by a debug event of the on-chip debug support (OCDS) unit.
There are several types of debug events, which can trigger the transfer, depending on the
actual type of controller. A typical use case provided by all supported controller types is to
trigger on write accesses on a single variable and to transfer the new value of the
variable.
The recording is done while the target system is in running state.

Setup
For setup the TTF recorder, use the
context menu.
Enable/disable the recording of
transferred values
Address of the memory location to be
transferred when the trigger event has
occurred. Depending on the data wide
of the transferred value, this has to be a
valid 16-bit or 32-bit address.
Trigger Setup Show the trigger setup
dialog of the underlying target interface
to define the debug event that forces
the triggered transfer to be recorded.

User's Guide Triggered Transfer Recorder 151 of 177


FLASH / OTP Programming
The UDE Memory Programming Tool supports handling of on-chip FLASH, OTP and
EEPROM memory on Infineon C16x, TriCore and ARM7 microcontrollers and external
FLASH memory devices. According to the capabilities of the respective programmable
memory device this tool allows to erase, program, verify and protect the module. The
Intel-Hex and Motorola-SRE format are supported.
There are two versions of UDE MemTool:
1. an integrated UDE Debugger Add-In used within an UDE Workspace,
 build-in component of the UDE architecture
 can use all communication channels supported by the UDE Debugger
2. a stand-alone application used outside of the UDE Debugger
 contains a separate front-end with direct access to all programming functions
 offers additional batch- and remote functions
 allows target communication via ASC bootstrap loading and Host PC serial port
additionally

Supported Functions
Depending on the capabilities of the memory device (and the driver used to handle the
device), MemTool provides functions to handle the device:
 a chip erase function, that deletes the contents of the whole memory device
 a sector erase function, that deletes the contents of one or more sectors of the
device
 a program function to write data into the memory device. This function also takes
care about certain data alignment requirements of the device
 a verify function that is implemented using the read functions of the target interface
 a query state Function that can read the state registers of the memory device
 a protect function that can be used to install, enable and disable read and write
protection mechanisms

Basic Concept
UDE MemTool is intended to handle on-chip and external memory devices that do not
permit direct and random write accesses unlike a RAM device permits. Typically, on-chip
FLASH/OTP memory devices and external FLASH are of this type.
A target may contain several on-chip and external memory devices that can all be
handled by MemTool. At a given time, only one device is activated. For each memory
device, a Memory Device Handler inside UDE MemTool handles all accesses to the
corresponding device. These Memory Device Handlers may be activated and deactivated
individually.
Programming of the memory device is done by the Memory Device Driver which is a
small application executed by the target MCU. MemTool uses functions provided by the
UDE Target Interface to load and run this driver application.

152 of 177 FLASH / OTP Programming User's Guide


Memory mapping variants
To understand how MemTool programs a user application into a programmable memory
device it is necessary to consider the two memory mapping types used by MemTool. It
defines the memory mapping variants "Program Time Mapping" and "Run Time
Mapping".
To understand the difference between these two mapping types consider the following
scenario: Imagine a target system with the C16x, 1 MByte external RAM and 256 kByte
external FLASH.
After a target reset, the program code is fetched from the FLASH memory at segment 0
(physical address 0x00'0000). That is why the RAM is located by the initialization code at
segment 8 (physical address 0x80'0000). This constellation is called "Run Time
Mapping".
The program, which is in development state, is located at segment 0 (physical address
0x00'0000). For debugging purposes the on-board RAM is mapped to segment 0,
therewith breakpoints can be handled e.g. When the development stage is finished, the
program is programmed into the FLASH at segment 0, so that the power-on execution
can be done from the FLASH program content. However, at this moment the FLASH is
not visible at segment 0, because the RAM overlaps the FLASH range. That's why the
UDE MemTool remaps all program code sections to another visible range of the FLASH
for FLASH programming, in this case at segment 8 (physical address 0x80'0000). This
constellation is called "Program Time Mapping".

Run Time Mapping

Mapping type is used when the user application is executed.

RAM e.g. visual range

FLASH PROGRAM
ROM CODE buried range visual range
0 0x80'0000 0x90'0000

visible memory range

invisible memory range

Program Time Mapping

Mapping type used when the user application is about to be programmed into the
Memory Device,

RAM e.g. PROGRAM CODE Remapped


by MemTool

FLASH buried range visual range visual range


0 0x80'0000 0x90'0000

To configure this example in UDE following settings must be done: The FLASH memory
must be defined in the target configuration as memory device with a visible address
range: 0x80'0000-0x8F'FFFF. To allow the remapping of the program code sections the
MemTool must be setup with a different start address: 0x00'0000 (via Setup of
FLASH/OTP Device dialog).

! Please see the next chapter for more detailed information about the configuring of FLASH
memory devices.

User's Guide FLASH / OTP Programming 153 of 177


Target Communication
In the stand-alone UDE MemTool, mini-monitors for communication and FLASH
programming are used only. These mini-monitors are using on-chip resources, so that the
programming works without external RAM. “Single-Chip Systems” are supported.
This integrated UDE Debugger Add-In uses the debug communication channel for
communication, debugging and FLASH programming. These debug-monitors require
external RAM per default. An exception is the target communication via JTAG, which
needs no external RAM and supports the 'Single-Chip Systems' too.
The following table gives an overview about all available communication channels
supported by the integrated and the stand-alone UDE MemTool:

Target µController and Host Serial Host Parallel Universal fast-PC6x


3
communication interface RS232 EPP Access Device Interface Card

C16x, ST10, XC16x, XC2xx,


TriCore, MPC55xx via ASC-BSL
1  

ST10, XC16x, XC2xx, TriCore via


 
CAN-BSL
C166, ST10, XC16x, XC2xx,
 
TriCore via K-Line
XC16x, XC2xx, TriCore,
PowerArchitecture, ARM, XScale 2 
via JTAG
1) 2) 3)
only available with the stand-alone UDE MemTool JTAG on-board JTAG adapter required all
variants.

Supported FLASH/OTP Memory Devices


On-chip FLASH/OTP memory devices on ...
 Infineon TriCore family
 PowerArchitecture family (MPC55xx ...)
 Cortex , ARM7, ARM9, ARM11, XScale derivatives (Cortex-M3, Cortex-R4, Cortex-
A9 ...)
 Infineon C16x family, STMicroelectronics ST10Fx derivatives
 Infineon C166CBC family (EasyUTAH, SDA6000 ...)
 Infineon C166S V2 family (XC166, XC2000, XE166 ...)
 SuperH SH-2A derivatives
External FLASH-EPROM's ...
 AMD Am29Fxxx, M29Wxxx family and 100% compatible types
 Atmel AT29Cxxx, AT49Cxxx family
 SST39VFxxx, SST39LFxxx family
 M58BWxxx family, ST58BWxxx family
 Intel i28Fxxx family
 I2C 24LCxx family
 all JEDEC Standard Command Set compatible
For the list of supported external memory devices, see the file EXTFLASH.DAT within
the UDE installation folder. If newer FLASH devices are available, which are not
supported by UDE MemTool, please contact the PLS Support Team at support@pls-
mc.com to receive a newer version of the FLASH database.

154 of 177 FLASH / OTP Programming User's Guide


Please note: Versions of UDE MemTool shipped with UDE Starterkits are limited to

! memory devices provided by the respective Starterkit hardware.

Definition of external FLASH Memories


Before FLASH programming is possible, the external FLASH devices must be defined in
target configuration of UDE. This can be done while creating a new Target Configuration,
but while editing an existing configuration too.

Create a new Target Configuration with FLASH support


Create a new target configuration and specify the count of FLASH memory devices in
page New Target Specify Memory. Define the device with name and description in page
New Target Special Memory and select as Handler UDE FLASH/OTP Memory
Programming Tool. Setup the used Bus Mode of the FLASH device, the FLASH Type,
which means the family of FLASH devices and the Start and End Address, where the
FLASH device is visible completely.

Edit an existing Target Configuration with FLASH support


When the target is connected, open the 'Edit Target Configuration' dialog via menu
Config - Target Configuration and select the controller item in the target tree. Via the
Add and Modify button you can change the list of registered memory devices. Use
Remove for deleting of entries.
Push Add to setup a new memory device. Enter a name and a description of the FLASH
memory and enable the handling by UDE FLASH/OTP Memory Programming Tool.
Select the used Bus Mode of the FLASH device and the FLASH Type, which means the
family of FLASH devices.
Add a new address range, where the FLASH device is visible completely.

Definition of on-chip FLASH Memories


The on-chip FLASH devices are registered automatically. The requirement is that the
correct controller derivative is selected in the target configuration. In this case, an
additional memory device labeled with PFLASH or DFLASH is included. Please check,
that the on-chip FLASH is enabled on the property sheet of the device.

Please note: For programming on-chip FLASH modules of C16x and ST10Fx derivatives,
the on-chip FLASH module must be activated (SYSCON.ROMEN=1) and mapped to

! starting address 0x10000 (SYSCON.ROMS1=1). To run the FLASH driver software,


XRAM must be enabled (SYSCON.XPEN=1).

User's Guide FLASH / OTP Programming 155 of 177


Definition of Memory Access Filters
A memory access filter is used like a FLASH Memory Device with the difference, that no
FLASH programming functionality is provided, but various memory access filter functions.
Memory access filters are useful, when devices, visible in the address range of the
microcontroller, must not be read/written by UDE. A memory access filter reserves an
address range and can be specified as
 Block any access
 Block any write access
 Notify user on write access
Define the memory access filter as new memory device with name and description in
page New Target Special Memory of the target configuration and select as Handler
Memory access filter.

Enabling the FLASH Programming


The UDE Memory Programming Tool is an Add-In of UDE and must be activated. This is
done via the Add-In Manager, menu Config - Add-in Components. Enable the entry
UDE FLASH/OTP Memory Programming Tool.

! The detailed description about Add-Ins is contained in the chapter 'Activating and Using
Add-Ins'.

When the UDE FLASH/OTP Memory Programming Tool is enable, a new menu entry is
created in UDE menu Tools - FLASH programming. Open this dialog and the main
front-end of MemTool will be opened. Choose the FLASH device and try to enable it. If all
settings were correct, a list of FLASH sectors will displayed as shown below.

If not, please check carefully all FLASH device settings, the target hardware and the
content of the SYSTEM and BUSCONFIG registers again. The FLASH device must be
visible in full size. Use the memory window to verify your assumption about the hardware
in terms of the address ranges of RAM and FLASH.
As shown above a list of FLASH sectors is displayed. These sectors are located on the
FLASH addresses adjusted to the corresponding physical address ranges defined in the
target configuration. Because the program code is mostly located at 0x0, the 'Program
Time Mapping' must be activated.
Push the button Setup button to set the Use different Start Address to 0x0. Now the
'Program Time Mapping' is selected within UDE and the code range filter will be activated
from physical address 0x0 with the size of the FLASH device.

156 of 177 FLASH / OTP Programming User's Guide


FLASH Programming
If the UDE FLASH/OTP Memory Programming Tool is enabled, all registered FLASH
devices are installed with special filters. These filters watch the download stream for
address ranges met with a registered FLASH device. If the filters detect, that a code
section is loaded, which is destined for the FLASH device, the code section will be
marked for FLASH programming.
For the practical work it means, that you have to load the FLASH/ROM version of your
program code File - Load Program only.
After loading the program code sections, the FLASH Programming Tool will open the
main dialog and will offer the erasing, programming and verifying of code sections.

The Erase ... button allows the erasing of single FLASH sectors or complete FLASH
devices. Because of the FLASH architecture, a FLASH sector has to erased before new
FLASH programming. Before starting the Erase Function, the Select FLASH Sectors for
Erase dialog is shown. One or more sectors to be erased are selected here. If the current
Memory Device supports a Chip Erase Function, you may choose Erase whole FLASH
Module to execute this function. Otherwise, Sector Erase Function is used.
Program immediately starts to write all sections loaded into the current Memory Device
Handler. It presents the Execute Command Box showing the function progress.
Canceling the operation is also provided.

User's Guide FLASH / OTP Programming 157 of 177


The Verify function immediately starts to compare all sections loaded into the current
Memory Device Handler against the contents of the Memory Device on target. It presents
the Execute Command Box showing the function progress. Canceling the operation is
also provided. As the result, after the function has finished the number of different bytes
is shown.
Setup ... lets you setup FLASH programming options.
The Info ... window shows information about the current Memory Device and the Memory
Device Driver used to handle the device.

Setup FLASH Programming options


Mapping
If Run Time Memory Mapping and Program Time Memory Mapping are not equal check
the Use different Start Address checkbox and enter a valid Run Time Mapping start
address for the Memory Device.
Driver
The Driver page allows the replacement of FLASH drivers and is destined for special
purposes. Changes have to be only done in accordance with the PLS Support Team.

Program
The options Automatic Chip Erase Before Program and Automatic Sector Erase
Before Program allows the automatic erasing of sectors or devices before programming
with new data's.
With Simulate Random Access Mode, all sectors to be programmed with new data are
completely read out into buffers. Then, these sectors are erased. Now the buffered data
is merged with the new data to be programmed and the result is written back to the
memory device.
The verify function is started after programming has finished when Automatic Verify
after Program is enabled.

158 of 177 FLASH / OTP Programming User's Guide


UDE CAN Recorder
Supported Functions
The UDE CAN Recorder is an Add-In of UDE and can send and record CAN messages
from a CAN network. Following features are supported:
 Configuring the CAN controller
 Edit and Send CAN messages (CAN bus stimulation)
 Receive CAN messages (CAN bus observation) with filter mechanism
 Symbolic representation of CAN messages

Enabling the CAN Recorder


The UDE CAN Recorder is an Add-In of UDE and must be activated. This is done via the
Add-In Manager, menu Config - Add-in Components. Enable the entry UDE CAN
Recorder.
When the UDE CAN Recorder is enable, a new menu entry is created in UDE menu
Views - CAN Recorder. Start the CAN Recorder via this menu entry.

Send and Record CAN Messages


Before using the CAN Recorder it has to setup. Use the context
menu and click on Setup Recording. Specify the baud rate of the
CAN bus in the tab Timing. Setup the CAN message format and
mask in the tab Recording.
To record messages from the CAN network use the context menu
and enable the Record entry. All messages are recorded and
shown that corresponds to the defined filter mask.
To send a message type in the ID and Data form and push the Send button.

User's Guide UDE CAN Recorder 159 of 177


UDE RTX Viewer
Supported Functions
The UDE RTX Viewer is an Add-In of UDE which give a detailed overview about the RTX
RTOS internals. These internals can be:
 Tasks overview including all states
 Queue overview (per Message/Semaphore/Mutex Control Block information)
 Timers overview (name, timer count, unique callback information)
 Signals overview (waiting/active events mask)

Enabling the RTX Viewer


The UDE RTX Viewer is an Add-In of UDE and must be activated before it can be used.
To activate it, open the Add-In Manager, menu Config - Add-in Components. Enable
the entry RTX Awareness.
After the UDE RTX Viewer was enabled, a new menu entry is created in UDE menu
Views - RTX Support. Open the RTX Viewer by clicking on this menu entry.

Depending on the functions enabled in the RTOS configuration file the RTX viewer
window immediately shows a snapshot of the current system state:

The green line inside the RTX viewer marks the task which was active/running before the
system was halted by the debugger. Please note, because the RTOS creates the tasks at
runtime, maybe not all tasks are displayed if the system was broken immediately after
first go/step.

Using the RTX Viewer


To work with the RTX viewer, first a RTX RTOS application AXF file must be loaded. The
RTX RTOS application itself can be built using the Keil compiler. Please also note that
the RTX RTOS version must be greater than or equal to v4.x.
After the RTX application was loaded the RTX must be initialized and all needed tasks
must be created. This is normally done by an “init” function. The init function itself is
therefore called by “os_sys_init” inside the main-function.
If the initialization was performed successfully, all created tasks are listed in the RTX
viewer as shown above. By setting breakpoints inside the application the behaviour of
each task can now be introspected by using the RTX viewer.

160 of 177 UDE RTX Viewer User's Guide


UDE rcX Viewer
Supported Functions
The UDE rcX Viewer is an Add-In of UDE which give a detailed overview about the rcX
RTOS internals. These internals can be:
 Tasks overview including all states
 Queues overview (name, fill level, memory usage)
 Mutexes overview (name, owner task)
 Semaphores overview (name, modes, state, callback)
 Interrupts overview (name, type, priority, ISR)
 UARTs overview (name, state, speed, callbacks)

The functions are mostly similar to the RTX viewer above.

Enabling the rcX Viewer


The UDE rcX Viewer is an Add-In of UDE and must be activated before it can be used.
To activate it, open the Add-In Manager, menu Config - Add-in Components. Enable
the entry rcX Awareness.

After the UDE rcX Viewer was enabled, a new menu entry is created in UDE menu Views
- rcX Support. Open the rcX Viewer by clicking on this menu entry. Depending on the
functions enabled in the RTOS configuration file the rcX viewer window immediately
shows a snapshot of the current system state:

The green line inside the rcX viewer marks the task which was active/running before the
system was halted by the debugger. Please note, because the RTOS creates the tasks at
runtime, maybe not all tasks are displayed if the system was broken immediately after
first go/step.

Using the rcX Viewer


To work with the rcX viewer, first a rcX RTOS application ELF file must be loaded. The
rcX RTOS application itself can be built using the GNU ARM compiler. Please also note
that the rcX RTOS version must be greater than or equal to v2.x.
After the rcX application was loaded the rcX RTOS must be initialized and all needed
tasks must be created. This is normally done by an “init” function. The init function itself is
therefore called by “rX_SysEnterKernelExt” inside the main-function.
If the initialization was performed successfully, all created tasks are listed in the rcX
viewer as shown above. By setting breakpoints inside the application the behavior of
each task can now be introspected by using the rcX viewer.

User's Guide UDE rcX Viewer 161 of 177


Eclipse IDE for UDE
Overview about supported Eclipse IDE Versions
UDE provides two own Eclipse Integration packages:
 UDEEclipseIntegration.zip - supports all Eclipse 3.x based platforms
 UDEEclipse4Integration.zip - supports all Eclipse 4.x based platforms
The installation procedure of the both packages is roughly identical, the selection of the
appropriate installation packages depends from basic Eclipse version. The complete
overview shows the table below.
C/C++- Supported by
Eclipse Version Development Start Bitmap UDE Eclipse
Plug-In Version Integration Package
Support for Eclipse 3.x Versions
Eclipse 3.4 CDT 5.0 UDEEclipseIntegration.zip
(Ganymede)

Eclipse 3.5 CDT 6.0 UDEEclipseIntegration.zip


(Galileo)

Eclipse 3.6 CDT 7.0 UDEEclipseIntegration.zip


(Helios)

Eclipse 3.7 CDT 8.0 UDEEclipseIntegration.zip


(Indigo)

Eclipse 3.8 CDT 8.1 UDEEclipseIntegration.zip

Last
Eclipse 3.x version
released
with
Eclipse Juno
Tasking VX- Based on CDT 5.0 UDEEclipseIntegration.zip
toolset 3.x
Manual installation of
Based on standard CDT plug-ins
Eclipse Ganymede required*

Tasking VX- Based on CDT 8.1 UDEEclipseIntegration.zip


toolset 4.x
Manual installation of
Based on standard CDT plug-ins
Eclipse 3.8 required*

162 of 177 Eclipse IDE for UDE User's Guide


C/C++- Supported by
Eclipse Version Development Start Bitmap UDE Eclipse
Plug-In Version Integration Package
Support for Eclipse 4.x Versions
Eclipse 4.2 CDT 8.1 UDEEclipse4Integration.zip
(Juno)

Eclipse 4.3 CDT 8.3 UDEEclipse4Integration.zip


(Kepler)

Eclipse 4.4 CDT 8.6 UDEEclipse4Integration.zip


(Luna)

Eclipse 4.5 CDT 8.7 UDEEclipse4Integration.zip


(Mars)**

ST SPC5 Studio CDT 8.1 with UDEEclipse4Integration.zip


Based on additional ST CDT
Eclipse Juno
extension plug-ins

* Detailed installation description provides the appropriate help topic ** UDE 4.05.01 or higher

Please note, that the Windows 32bit installation package of the appropriate Eclipse
version must be used for UDE Eclipse Integration plug-in.

Prepare Eclipse IDE for UDE Integration Package


The UDE Eclipse Integration Package for Eclipse 3.x UDEEclipseIntegration.zip must
satisfy following requirements:
 Java JRE 6 Update 10 or higher
 Eclipse Platform Ganymede 3.4.x / Eclipse Platform Galileo 3.5.x / Eclipse
Platform Helios 3.6.x / Eclipse Platform Indigo 3.7.x / Eclipse Platform 3.8.x –
32bit Windows installation package
 CDT Ganymede Release 5.0.x / CDT Galileo Release 6.0.x / CDT Galileo
Release 7.0.x / CDT Indigo Release 8.0.x / CDT 3.8 Release 8.1.x
 UDE 4.0.7 or higher

User's Guide Eclipse IDE for UDE 163 of 177


The UDE Eclipse Integration Package for Eclipse 4.x UDEEclipse4Integration.zip must
satisfy following requirements:
 Java JRE 6 Update 10 or higher
 Eclipse Platform Juno 4.2.x / Eclipse Platform Kepler 4.3.x / Eclipse Platform
Luna 4.4.x / Eclipse Platform Mars 4.5.x - 32bit Windows installation package
 CDT Juno Release 8.1.x / CDT Kepler Release 8.3.x / CDT Luna Release 8.6.x /
CDT Mars Release 8.7.x
 UDE 4.0.7 or higher

Install UDE Eclipse Integration Feature for Eclipse 3.4 Ganymede


 Install Universal Debug Engine 4.0.7 or higher
 Start Eclipse Ganymede IDE
 Open the Software Update dialog of the Eclipse Help menu
 Select tab Available Software
 Select button Add...

 Select button Archive... and browse for UDEEclipseIntegration.zip


from UDE root installation directory.
 Select Universal Debug Engine Eclipse Integration for installation.

 Press Install... button


 Finish installation of Universal Debug Engine Eclipse Integration feature.

164 of 177 Eclipse IDE for UDE User's Guide


Install UDE Eclipse Integration Packages for Eclipse 3.5 Galileo,
Eclipse 3.6 Helios, Eclipse 3.7 Indigo, Eclipse 3.8, Eclipse 4.2 Juno,
Eclipse 4.3 Kepler, Eclipse 4.4 Luna, Eclipse 4.5 Mars
 Start appropriate Eclipse IDE
 Open the Software Update dialog of the Eclipse Help menu
 Uncheck Group items by category
 Select button Add...
 Select button Archive... and browse for UDEEclipseIntegration.zip
for Eclipse 3.x IDE or UDEEclipse4Integration.zip
for Eclipse 4.x IDE from UDE root installation directory.
 Check Universal Debug Engine Eclipse Integration package or Universal
Debug Engine Eclipse 4 Integration package in the list control of available
software packages

 Select Next button for installation


 Press Install... button
 Finish installation of Universal Debug Engine Eclipse Integration or Universal
Debug Engine Eclipse 4 Integration feature.

User's Guide Eclipse IDE for UDE 165 of 177


Launching UDE Debug Session in Eclipse IDE
Creating UDE Eclipse Platform Launch Configuration
The integration of Universal Debug Engine into Eclipse IDE for C/C++ developers
enables to launch an UDE debug session by a specific debug configuration of a C/C++
project. This launch configuration can be created from local menu of the appropriate
C/C++ project:
 Change to C/C++ perspective
 Click with right mouse button into the project tree root of the Project Explorer view
to open local menu
 Select Debug As menu, submenu Debug Configurations... to open Debug
Configurations dialog

 Select the Universal Debug Engine launch configuration type


 Press the New Launch Configuration button to create a new launch configuration
for the selected project.

166 of 177 Eclipse IDE for UDE User's Guide


 The Main, Source and Common tabs are common elements of each C/C++ launch
configuration dialog.
 The UDE Startup tab contains all settings, which are necessary for a specific UDE
launch configuration.
 The two settings for UDE Workspace File and UDE Target Configuration File are
required for a valid UDE launch configuration.
 The selection of an UDE Diagnostic Output File is optional.
The file system directory of an UDE Workspace File for an UDE Eclipse launch
configuration is the C/C++ project directory subdirectory ../.UDE. The default location
of the UDE Target Configuration File is the C/C++ project file system location
subdirectory ../.UDE/.TARGET. The additional functions allow to import or export
existing UDE workspaces and UDE target configurations to or from default or common
location of Universal Debug Engine from or to the relative paths of the Eclipse C/C++
project locations. Detailed descriptions of all buttons contain the UDE help system.

Steps to start Debug Session with UDE Eclipse Launch Configuration


The newly created UDE launch configuration allows launching a debug session using
UDE via Debug button of Eclipse IDE tool bar.
Use the Debug button of the tool bar of the Run menu
Debug item (shortcut <F11>) to start the created launch
configuration, which opens the UDE perspective, loads
the selected workspace file and uses the selected target
configuration to connect to the target debug system.

User's Guide Eclipse IDE for UDE 167 of 177


Add UDE Sample Project to Eclipse Helios C/C++ IDE
Creating Eclipse Makefile Project from UDE TimeDemo Sample
UDE sample makefile projects can be easily imported as Eclipse C/C++ projects using
the Eclipse import wizard:
 Change to C/C++ perspective
 Open the Import.. wizard of Eclipse File menu.
 Select C/C++ -> Existing Code as Makefile Project

 On the next wizard page use browse button to select UDE sample directory (e.g.
C:\Program
Files\pls\UDESamples\TriCore\Triboard_TC1796\TimeDem
o\GNUTC)
 Add an appropriate project name
 Check the Languages checkbox C only
 Select <none> as tool chain

 Push Finish button

168 of 177 Eclipse IDE for UDE User's Guide


 The TimeDemo Tc1796 Eclipse C/C++ will be
created
 Select TimeDemo TC1796 project in the project
explorer to prepare start of debug session
 Press bug tool bar button or select menu item Run
submenu item Debug (or F11)
 The Debug as dialog will be opened to select the
type of launch configuration to start debug session

 Select Universal Debug Engine as appropriate


launch configuration type to start the debug
session
 Press OK to open the dialog to select to binary file
for loading to target
 The “C Local Application” dialog allows selecting
the binary file, which will be loaded by the launch
configuration into target system. Select the
appropriate binary file of current build
configuration.

 After selecting elf file of active


build configuration, the launch
configuration “Edit Configuration”
dialog has to complete by
choosing the UDE target
configuration, which contains the
settings of the actual used target
system.

 The UDE launch configuration is


now ready for use

User's Guide Eclipse IDE for UDE 169 of 177


UDE Object Model
Overview
With the UDE object model built on the Microsoft COM technology you can access the
target, control the Universal Debug Engine and MemTool, start and stop programs
running on the target, set breakpoints, flashing code and much more. The UDE object
model is completely scriptable and not only in Visual Basic as a very wide range of script
languages is supported. Examples are: tcl/tk, Perl, Python, JavaScript ...
A detailed documentation of UDE object model can be found at
<UDE_DIRECTORY>\Help\UdeObjectModel.chm

? Please contact support@pls-mc.com for more samples of using the UDE object model.

Example for TriCore


Looking at special function registers and calculating the values that are really needed
takes a lot time. The HTML page below provides a user-friendly view to the ASC module
of the TriCore. It shows the frequency used by the ASC module and calculates the baud
rate with the values of the related register. Of course, the values needed for the
calculation are read from the target.

<script language="VBScript">
dim PllCl
dim S0Clc
dim S0Con
dim S0Fdv
dim S0Bg

sub ReadFromTarget ()
set debugger = external
PllCl = cdbl (debugger.Register("PLLCL"))
S0Clc = cdbl (debugger.Register("S0CLC"))
if ((S0Clc and 2) <> 2) then
S0Con = cdbl (debugger.Register("S0CON"))
S0Fdv = cdbl (debugger.Register("S0FDV"))
else
S0Con = 0
S0Fdv = 0
end if
end sub
</script>
This HTML view based on the UDE object model provides a user-friendly view of the ASC
module.

170 of 177 UDE Object Model User's Guide


User Definable Enhancements
The UDE concept allows extending the debugger functions by additional components in
the following levels:
 HTML scripts based on UDE ActiveX™ controls, customer specific controls and
access via the UDE object model to display consumer-defined views with UDE
HTML view server. For a description of these features, see the chapter about
Viewing and Modifying Registers and the UDE object model.
 Programming a custom view server can solve complex problems and can provide
detailed and optimized target related views, e.g. for integrating specific RTOS,
CAN views ..
 The UDE desktop client may be substituted by a customer GUI for production and
field maintenance purposes, e.g. for Service Tools, Matlab or CASE tool
integration. The functionality of the core debugger can be extended or even
reduced to enable essential views and features only. Please see for further
information the chapter about the UDE object model.

? Please contact support@pls-mc.com for more information and examples about the UDE
extensions.

User's Guide User Definable Enhancements 171 of 177


Reference

The Reference of the Universal Debug Engine (UDE) is available via the Window's Help
system. To use the help, please open UDE and press <F1> or browse to the UDE
installation menu and select UDE Help.

Reference 173 of 177


JTAG 14, 16, 18, 104
JTAG ARM 17
JTAG-Extender 21
JTAG-Pod 24, 31
OCDS L1 14, 16, 18

Index OCDS L1-Extender 21, 31


SSC 25, 26, 28, 104
SWD 20, 104
SWD-Extender 23
Compiler
ARM11 103
ARM7 103
ARM9 103
C166 102
C166S-V2 102
C16x 102
3
PowerPC 103
3Pin 8, 27, 86, 87, 104
Support 102
Monitor 87
TriCore 103
XC166 102
A XC2000 102
Add-In XE166 102
Activating and Using 150 XScale 103
Removing 150 COMx 11, 15, 47
Alias names 117 Connect the Target 108
Architecture of UDE 98 Cortex 55
ARM11 55 CPU View 60, 112
ARM7 55 Creating new Workspace 56, 63, 100
ARM9 55
ASC 8, 25, 26, 28, 104
D
Assembler 111
DAP 8, 19, 22, 104
Debugging
B Aurix 65
Blocking Memory Access 156 C166S V2 81
BMI header 69 C16x 86
Breakpoints 59 Multi-Core 63
Absolute 120 PowerPC 83, 85
Condition 120, 121 TriCore 56
Data Breakpoints 120 Delivery Contents 9
Dialog 121 Demo version 8, 12, 14, 15, 16
Hardware/Software 121 Download 108
Identifier 122 Downloading a Binary File 102
Loop 121 Driver
Macro 121 fast-PC6x 46
BSL 25, 26, 27, 28, 29 Starterkit 47
UAD 37
C UAD2 37
C165 55 UAD3 37
C167 55 USB-JTAG-Port 44
Call Stack View 125 USB-Key 45
CAN 8, 25, 26, 29, 104
CAN Recorder 159 E
Code Coverage 139 Eclipse 162
Configuration 139 Debug Configuration 166
Command line 102 Galileo 165
Communication Channels 105 Ganymede 164
3Pin 27 Helios 165
3Pin Communication 104 Indigo 165
ASC 15, 25, 26, 28, 104 Integration Package 163, 164
Bootstrap loader 15 Juno 165
CAN 25, 26, 29, 104 Kepler 165
DAP 19, 104 Launch 166
DAP-Extender 22 Luna 165

174 of 177 Index


Mars 165 UAD3 37
Version 3.x 162 USB-JTAG-Port 44
Version 4.x 162 USB-Key 45
Enabling FLASH Programming 156 Instruction Pointer profiling 134
ESD 13 Intel Hex 103
Ethernet 24, 26, 27, 30, 31, 41 Interface 11
ETM 8, 30
Evaluation Kit 8 J
Examples 55 JTAG 8, 17, 18, 21, 24, 31, 83, 104
Expression clipboard Protector 32, 33
Add Expression 118
external FLASH 155 K
Keil 102
F
fast-PC276C/PCI 28, 29 L
fast-PC67C/PCI 28, 29 Leaving the Project 62
Firewire 11 License Manager 48
FLASH License Node-locked 49
Concept 152 Loading of an Executable 58, 68, 74, 81
Configuration 94, 158 Locals View 119
Program Time Mapping 153
Programming 152, 157 M
Remap settings 69 Macro 121
Run Time Mapping 153 MaxSim 8
Safe BMI header 69 MDK 103
FLASHUCB header 70 Memory Access Filter 156
Following the Program flow 119 Memory View 62, 123
Function static Variable 116 Module static Variable 116
Functions 108 Monitor 106
3Pin 104
G 3Pin 87
Getting Started 55 Access without a Monitor 107
Global Variable 115 ASC 104
GNU 102 CAN 104
Graphical Display Window RAM 106
Basic features 124 ROM 107
Local Menu 125 Monitor Wizard 87
Real-Time Data Collection 147 Motorola S 103
Real-Time Graphical Monitoring 147 Multi-core Debugging 65
Setting up 148
Using Expressions 124 N
Using Expressions 148 Nexus 30
Greenhills 103 Node-locked licensing 49

H O
Help Object Model 114
On-line Help 99 OCDS L1 8, 14, 16, 18, 21, 24, 31
Hex File 103 Trigger 82
HighTec 102 OCDS L2 8, 30
Host ID 49 OHCI 38
on-chip FLASH 155
I Overvoltage 13
IEEE1394 11, 21, 22, 23, 26, 27, 30, 38
IEEE1394b 24, 31, 39 P
ImageCraft 103 Parallel Port 14, 37
Inline Assembler 111 PCI 11, 28, 46
Installing PowerArchitecture 55
fast-PC6x 46 PowerPC 55, 83
Hardware 13 Trigger 84
Software 35 Printing
Starterkit 47 Memory Locations 124
UAD 37 Program Code 111
UAD2 37 Profiling

Index 175 of 177


Instruction Pointer 134 Triggered Transfer 151
Trace 135 View 78, 130, 133, 135
Program Flow Time Chart 143 Visualization 129
Program View 108 Trace Analyzing 127
View Mode 109 Trace Configuration 131
Project Management 100 Trace Profiling 135
Trace Result Analyzing 133
R Trace Visualization 127
rcX Viewer 161 Trace Window Configuration 130
Real expressions 116 TriCore 55
RealView 103 Trigger 82, 84
Reference 173 Triggered Transfer Trace 151
Refresh 119 Trouble Shooting 53
Register View 112 TSIM 8, 34
Reinstalling Software 52
Requirements 11 U
RTX Viewer 160 UAD2 18, 19, 20, 25
Run a Program 59, 64, 111 JTAG Protector 32
UAD2+ 21, 22, 23, 26, 27
S JTAG Protector 33
Safe BMI header 69 UAD2compact 17
Samples 55 UAD2pro 18, 19
Sections 108 UAD3+ 24, 31
Sentinel USB SuperPro 45 UCB header 70
SFR View 60, 113 UDE Object Model 114, 170
Signal Trace 147 UHCI 40
Simulated I/O 90 Uninstalling Software 52
Simulator 8, 34 USB 11, 34, 40, 44, 45
Single-Chip Systems 154 USB 2.0 11, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
Source Files 108 26, 27, 30, 31
SSC 8, 25, 26, 28, 104 USB-JTAG adapter 8, 11
Stack View 125 USB-to-Serial Converter 15, 47
Starterkit 8, 12, 14, 15, 16, 47 User defined 171
Starting UDE 56
Static Electricity Precautions 13 V
Stepping and Breakpoints 119 Variables 116
Stop the Program at a specified Location 120 View 61
SuperH SH-2A 55 Variables Access Timer Chart 144
SWD 8, 20, 23, 104 Versions of UDE
System Requirements 11 Simulator 8
Standard
T fast-PC67 8
Target Configuration 91 UAD2 8
Select 101 UAD2+ 8
Wizard 91 UAD2compact 8
Target Interface UAD2pro 8
Controller 92 UAD3+ 8
Select 92 Starterkits 8
Setup 93 View Mode
Target Interface Setup 88 Assembler 109
Tasking 102 C/C++ 109
TC1130 55 Disassembly 110
TC1796 55 Mixed 109
TCP/IP 41 Single Program 110
Time measuring Viewing and Modifying Registers 112
Timers 126 Viewing Program Code 108
Trace 8, 127 Views
Analyzing 129 Call Stack 125
Configuration 134, 135, 137, 143, 145 Code Coverage 139
Find 133 CPU Register 60, 112
Multi-core View 79 Graphical Display Window 124, 147
Signal 147 HTML 112
Sources 127 Instruction Pointer profiling 134

176 of 177 Index


Locals 119
MCDS 78, 79
Memory 62
Multi-core Trace 79
Program 108
Program Execution Time Measuring 126
Program Flow Time Chart 143
SFR Register 60, 112, 113
Simulated I/O 90
Stack 125
Trace 78
Trace Profiling 135
Trace View 130
Trace Visualisation 127
Variables 61
Variables Access Timer Chart 144
Watch 115

W
Watch Expressions 115
Watch View 115, 117
Advanced Expression Resolution 118
Expression 117
Expression Clipboard 118
Variable 117
Website 53
Workspace 100, 108

X
XC166 55, 81
XC2000 55, 81
XE166 81

Index 177 of 177

Potrebbero piacerti anche