Title: Designing User Interfaces Spring 1999
1SE 746-NT Embedded Software Systems
Development Robert Oshana Lecture
33 For more information, please
contact NTU Tape Orders NTU Media
Services (970) 495-6455
oshana_at_airmail.net
tapeorders_at_ntu.edu
2Emulation and Debugging Technology for Embedded
Systems Part 3
3Agenda
- In circuit emulators
- Vanishing system visibility
- Real time data exchange
4ICE
5In circuit emulator
- Single test instrument that integrated various
functions - Microprocessor run control
- Debugging kernel
- Memory substitution
- ROM emulator
- Real-time trace
- Logic analyzer
6Key Blocks
- NMI control logic
- Memory steering logic
- Shadow ROM and RAM
7General emulator design (next page)
8(No Transcript)
9Core with real time trace
10(No Transcript)
11Real-time trace
- Once the generic emulator is attached to the
target, getting real-time trace data is trivial - Already connections to address, data, and status
busses - Piggy back logic analyzer onto the same
connection - Control processor and observe behavior in real
time
12HW breakpoints
- Trigger system of the logic analyzer can take
over some of the functions from the debug kernel - Set a breakpoint
- Complex break conditions
- Signals as system executes in real-time
- Can also see whats happened in real-time
13Timing constraints
- Emulators cant be used with all systems
- Timing constraints
- Physical constraints
14Debug challenges for embedded systems
- Forces changing development landscape
- System level integration as application
complexity has increased and system on a chip
complexity has led to smaller footprints, the
visibility into the system components has
diminished - Embedded system busses lead to an instrumentation
challenge - Wider system busses also lead to system bandwidth
issues - Program control in these environments is
difficult
15Restoring visibility
- On chip instrumentation
- Bus snooping logic analyzer functions have been
implemented in on chip logic - triggering logic to find the events of interest
- trace collection and export logic to allowing the
viewing of events - maximizing export bandwidth per available pin on
the processor core - Off chip collection foundation once the data is
exported from the core, the data must be stored,
processed, filtered, and formatted in such a way
as to be useful to those test engineers to
meaningfully interpret the data
16Restoring visibility
- Data visualization capability
- Embedded system integration capabilities include
the ability to easily view the data in different
configurations
17System level integration leads to diminishing
visibility
18Application space diversity
- Â Embedded applications are becoming more diverse
- o basestation applications require high
bandwidth, high frequency debug capabilities - o Voice over IP applications require MIPS
density and many homogeneous processors per
board. - o Cell phone and other wireless applications
require multi-heterogeneous processors and very
high system level integration - o Automotive apps require low cost debug
solutions where chip pins are at a premium
19/
-----
Control
---------
\
/
-----
Visibility
-------
\
/
-
Usage..
\
Real time data
Exe.
Cntl
.
Event triggers
Configuration
Trace
Precise
Long cables (rack
Basestation
triggering
PC Data Trace
High Bandwidth
mount equip)
(High
Perf
, High
Realtime
(constrain high
High BW/pin
point
-
to
-
point
Ganging emulator
Frequency)
BW trace)
tools (high BW)
Realtime
Multi channel
Multi
-
drop
Homogeneous
Shared
Very wide trace
VOIP (Many
Concurrent PC
Real
-
time
triggering
Ganging emulator
Multi
-
Data
homogeneous
trace
components
tools (many chips
processing
exchange
processors)
Selective Data
Cross
-
triggering
per board)
Global
(JTAG)
trace
Commands
Realtime
Small Connection
Multi channel
Multi
-
drop
Wireless
Heterogeneous
Shared
Footprint (in
Real
-
time
Concurrent PC
(Multiple
multi
-
triggering
system debug)
Data
Heterogeneous
trace
processing
components
Short Cables
exchange
Processors)
Selective Data
Global
Cross
-
triggering
(Desk Top, Small
(JTAG)
trace
commands
System Debug)
Automotive
Effective
Effective PC
Small connection
Low cost real
(Extreme cost
Realtime
triggering with
trace with low
footprint (In
-
Time data
sensitivity)
minimal gates
pin counts
system debug)
(JTAG)
20User development environment
- Â Development environment for embedded developers
is changing and debug technologies are changing
to accommodate these new environments - Embedded developers are transitioning debug
platforms from desktop PC systems to laptops
that are portable to the field for debug in the
customers environment. Portable remote
applications require portable debug environments
21Continued clock rate increases
- Embedded core clock speeds increasing
- More data is required to perform debug
- directly proportional to the core clock speed
- More pins and more data per pin is required to
maintain the required visibility into the
behavior of the device
22(No Transcript)
23(No Transcript)
24System level integration
Debug
Debug
Debug
Debug
Control
Control
Control
Control
Memory
Memory
DSP
DSP
Trace
Trace
Trace
Trace
Core
Core
Facilities
Facilities
Facilities
Facilities
Cache
Cache
Trigger
Trigger
Debug
Debug
Emulator
Emulator
Emulation
Emulation
Port
Port
Acquire
Acquire
ASIC Logic and
ASIC Logic and
DSP
peripherals
peripherals
SLI environment
SLI environment
100 MHz to 2 GHz clock rates
100 MHz to 2 GHz clock rates
Lower Si costs
ð
emulation on
-
chip, at
-
speed
Lower Si costs
ð
emulation on
-
chip, at
-
speed
Lower
/pin
ð
debug port pins affordable for data export
Lower
/pin
ð
debug port pins affordable for data export
Logic Analyzer functions in emulator
ð
lower cost to user
Logic Analyzer functions in emulator
ð
lower cost to user
25Emulation Basics
- An emulator is a debug tool with two different
functional groups of features - simple run control
- allows the embedded developer to control the
operation of the processor - Examples of run control actions include GO, HALT,
STEP, and Hit Breakpoints at given memory
locations - capture and record processor activity as shown on
the processor bus. - A triggering system allows the developer to
specify conditions to control capturing of this
trace information - The trace system records the processor bus
activity in high-speed RAM either in the system
itself or possibly external to the system
26Emulation Basics
- An emulator can be viewed as a hardware device or
a program that pretends to be another particular
device or program that other components expect to
interact with - Emulators provide visibility into the processor,
registers, and application software - allows the software engineer to understand what
changes are taking place inside of the processor
as the application executes
27Emulation Basics
- Software engineer can set breakpoints in the
application based on hardware signal values or
software locations within the application - At these breakpoints, the user can understand the
state of the processor and data and determine if
their application is still operating correctly - They can also perform benchmarking (timing
analysis) and profiling (CPU loading) of their
application software within the emulator
28Emulation Basics
- Multiprocessor debug can allow the user to debug
software on several processors at the same time,
and it provides a method of stopping one or
multiple processors based on a condition set in
another processor - Allows user to capture the entire system state at
the time in question - Greatly reduce debugging time in the software
development cycle
29Emulation Basics
- An emulator is connected directly to the target
processor - Electrical signals are sent to the emulator which
provides access to portions of the processor that
a standard software debugger cannot - Engineer can view and modify registers that are
unavailable to a standard software debugger - Hardware signaling also allows better run-time
control
30Emulation Basics
- Emulators also provide the ability to record
processor activity in real time - if a problem occurs the developer have a history
of system activity available to analyze - Â Another advantage of an emulator over a standard
software debugger is in debugging system startup
code - standard software debugger will usually require
the target operating system in order to provide
access to the system and the communication port
31Emulation Basics
- During the system initialization process, this is
not available - Emulator provides its own communication port
(usually JTAG) - Emulators can access any part of the system,
usually the same visibility as the CPU - Another advantage of an emulator is in debugging
systems that have crashed - If the target system crashes for any reason, the
operating system usually suspends operation
32Emulation Basics
- This renders the software debugger inoperative
- Emulators are not affected by these types of
system crashes - An emulator can preserve valuable trace
information as well as processor state
information (such as the register values - This data can then be analyzed to help determine
the situation that caused the crash
33Basic emulation components
- The emulation setup is comprised of two tools
- the emulator itself (such as a TI XDS510), which
controls the information flow to and from the
target - debugger, which is the user interface to this
information - Beyond the emulation setup is the target
processor - Emulation logic within most processors uses the
Joint Test Action Group (JTAG) standard
connection in procuring the debug information
from within the processor
34Basic emulation components
- Debug of the hardware is performed by stopping
the core to enable information to be scanned into
and out of the device via the JTAG header - This information is transferred serially through
the JTAG port following IEEE 1149.1 JTAG
specifications - It is important to understand that this debug
method is near real time, but is intrusive, as it
may require that the core be halted to scan the
information
35Basic emulation components
- While the connection to the JTAG header may be
the same, the scan chains used for emulation
purposes are different from those used for
boundary scan - Internally to the processor, there are various
serial scan chains in which the information can
be scanned into and out of - The control of which scan chain is used and what
information is contained in each scan chain, is
performed by a microprocessor
36Basic emulation components
- This scan manager has the task of controlling
this information as it is scanned to and from the
various processors in the scan chain, and
directing it to and from the various debugger
windows - The host of the emulator acts as the scan manager
as it controls the delivery of the scan
information to and from the target and the
debugger window - For example, the operating system may be a PC and
the JTAG connection is made through an ISA card
37Basic emulation components
- Other configurations are possible as well
- When the host CPU, or a separate processor
controls the JTAG scan information, they need to
be supplied with information regarding the
devices included in the scan chain
38(No Transcript)
39Real-time data exchange
40RT data exchange Architecture
Host (PC)
Target
RTDX Target Library
Host App
Target App
Code Composer
RTDX DLL
Emulation Logic
Emulator
RTDX Target API
RTDX Host API
41Target-to-Host Data Transfer
Host (PC)
Target
RTDX Target Library
Target App
Host App
Code Composer
RTDXDLL
Emulation Logic
Emulator
data
data
RTDX Host API
RTDX Target API
42Host-to-Target Data Transfer
Host (PC)
Target
RTDX Target Library
Target App
Host App
Code Composer
RTDXDLL
Emulation Logic
Emulator
data
RR
data
RTDX Host API
RTDX Target API
RR - Read Request
43Signal Display Using Excel
44Signal Display Using LabVIEW
45Signal Display Using MATLAB
46SE 746-NT Embedded Software Systems
Development Robert Oshana End of
Lecture For more information, please
contact NTU Tape Orders NTU Media
Services (970) 495-6455
oshana_at_airmail.net
tapeorders_at_ntu.edu