Title: Designing User Interfaces Spring 1999
1SE 746-NT Embedded Software Systems
Development Robert Oshana Lecture
31 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 1
3Agenda
- Embedded debug philosophy
- Debug kernels
- ROM emulators
- Logic analyzers
4Embedded Debug Philosophy
5Embedded debug Philosophy
- In software development, perhaps the most
critical, yet least predictable stage in the
process is debugging - Many factors come into play when debugging
software applications - time is of utmost importance
- The time required to set up and debug a software
application can have significant impacts on
time-to-market, meeting customer expectations,
and financial impact of a well developed product
that succeeds in the market
6Embedded debug Philosophy
- The integration of an application follows a model
of multiple spirals through the stages of build,
load, debug/tune, and change
7Host based debugging
- Certain amount of testing can be done on the PC
- Eventually differences force you to the target
- Potential problems
- Word size
- Byte order
8Storing bytes in 16-bit wide memory introduces
order ambiguity
9Remote debuggers and debug kernels
- Embedded platforms too resource limited and
specialized to support a full featured debugger - Embedded systems distribute this function
- Portion resides on target
- Portion resides on host
- Communicate via comm channel (serial, ethernet)
10Typical architecture block diagram
11Debugger control services
- Setting breakpoints
- Loading programs from the host
- Viewing or modifying memory and registers
- Running from an address
- Single stepping the processor
12Resources required from target
- Interrupt vector
- Software interrupt
13Schematic presentation of a debug kernel in a
target system
14Debug kernel
- Similar to an ISR
- Interrupt received from device (such as a serial
port connected to host) - Usually set at high enough priority level (NMI?)
so that debugger is always serviced - Dont want errant interrupt to disable other
interrupts (locked out!)
15Debug kernel
- Arrival of interrupt from host stops application
code - Processor enters ISR (debug kernel)
- Machine context saved
- Debugger now in control of the target
16How a debugger sets a breakpoint in read/write
memory
17Advantages/disadvantages of a debug kernel
- Advantages
- Low cost 0 to lt 1000
- Same debugger can be used with remote kernel or
on host - Provides most of the services that a SW designer
needs - Simple serial link is all that is required
- Disadvantages
- Depends on a stable memory subsystem in the
target and is not suitable for initial HW/SW
integration - Not real-time, so system performance will differ
with a debugger present
18Advantages/disadvantages of a debug kernel
- Advantages
- Can be used with a virtual serial port
- Can be linked with users code for ISRs and field
service - Good choice for code development when HW is
stable - Can easily be integrated into a design team
- Disadvantages
- Difficulty in running out of ROM-based memory
because you cant single step or insert
breakpoints - Requires that the target has additional services
which may not be possible - Might not always have control of the system
19ROM emulator
- Cabling device(s) to match the target system
mechanical footprint of the target system ROM
devices - Fast RAM to substitute for the ROM in the target
system - Local control processor
- Comm port to the host
- Additional features such as trace memory and
flash programming algorithms
20Schematic of a ROM emulator
21ROM emulator
- Allows quick downloading new object images to run
in the target system - Change cycle time is important
- ROM emulator with TBase100 ethernet is good for
downloading large images
22ROM emulator
- ROM emulator is really RAM
- Can set breakpoints in memory
- Gets around the write to ROM problem in your
embedded system - Can be used to create virtual ports to the host
23Advantages/disadvantages of a ROM emulator
- Advantages
- Cost effective (1000 - 5000)
- Generic tool, compatible with many different
memory configurations - Can download large blocks of code to the target
system at high speed
- Disadvantages
- Requires that the target system memory is in a
stable condition - Feasible only if embedded code is contained in
standard ROMs rather than custom ASICs or
microcontrollers with on-chip ROM
24Advantages/disadvantages of a ROM emulator
- Advantages
- Most cost effective way to support large amounts
of RAM substitution memory - Can trace ROM code activity in real time
- Provides virtual UART function, eliminating need
for additional services in target system
- Disadvantages
- Real-time trace is possible only if program
executes directly out of ROM - Many targets transfer code to RAM for performance
reasons
25Advantages/disadvantages of a ROM emulator
- Advantages
- Can be integrated with other HW and SW tools such
as commercial debuggers - Can set breakpoints in ROM
26Intrusiveness and RT debugging
- Debug kernel not as useful for trying to find
real time problems - Highly intrusive
- Tool presence modifies behavior
- Mechanical compatibility between external tools
as target system - Signal intrusion
- Physical intrusion
27Evaluation boards
28SE 746-NT Embedded Software Systems
Development Robert Oshana 10 Minute
Break For more information, please
contact NTU Tape Orders NTU Media
Services (970) 495-6455
oshana_at_airmail.net
tapeorders_at_ntu.edu