Lauterbach mTrace User manual

1 Embedded Artists LPC4357 Guide 16 October 2013
µTrace setup guide for Embedded
Artists LPC4357 development
board
1 Embedded Artists LPC4357 Guide 16 October 2013
µTrace setup guide for Embedded
Artists LPC4357 development
board
1 Embedded Artists LPC4357 Guide 16 October 2013
µTrace setup guide for Embedded
Artists LPC4357 development
board

2 Embedded Artists LPC4357 Guide 16 October 2013
About this document
This document will explain how to get up and running with the Lauterbach µTrace unit and the Embedded
Artists LPC4357 development board. The document goes with a zip file containing the examples and
configuration scripts described herein.
Two examples are provided: one runs a simple loop on the Cortex-M4 core of the device; the other runs a
similar program on the Cortex-M4 and a very simple loop on the Cortex-M0 core in the device.
Pre-Requisites
The Lauterbach TRACE32 software for µTrace has been installed. It is assumed that this has been installed
to the default location of C:\T32_uTrace. It will be referred to as $T32SYS in the rest of this document.
No changes were made from the default jumper settings.
Setup Procedures
Unzip the archive EA_LPC4357.zip so that it over-writes files in the $T32SYS directory. You may wish to
take a backup of this directory beforehand.
Connect the CombiProbe header to Socket A on the µTrace.
Connect the CombiProbe header (using the MIPI34-MIPI20T
adapter) to either Socket J1 on the SODIMM
board (see Figure1) or to socket J10 on the main board (see
Figure 2). For systems using off-chip trace, it is recommended
to use J1 on the SODIMM due to the shorter track lengths of
the trace signals.
In tests here, the board was powered with a 5V external
power supply connected to J24, not the mini USB connector
at J25.
Power on the μTrace and then power on the LPC4357 board.
Start the TRACE32 software and you should see something
like Figure 3 below.
Figure 1: J1 on SODIMM
Figure 2: J10 on main board
Figure 3: TRACE32
2 Embedded Artists LPC4357 Guide 16 October 2013
About this document
This document will explain how to get up and running with the Lauterbach µTrace unit and the Embedded
Artists LPC4357 development board. The document goes with a zip file containing the examples and
configuration scripts described herein.
Two examples are provided: one runs a simple loop on the Cortex-M4 core of the device; the other runs a
similar program on the Cortex-M4 and a very simple loop on the Cortex-M0 core in the device.
Pre-Requisites
The Lauterbach TRACE32 software for µTrace has been installed. It is assumed that this has been installed
to the default location of C:\T32_uTrace. It will be referred to as $T32SYS in the rest of this document.
No changes were made from the default jumper settings.
Setup Procedures
Unzip the archive EA_LPC4357.zip so that it over-writes files in the $T32SYS directory. You may wish to
take a backup of this directory beforehand.
Connect the CombiProbe header to Socket A on the µTrace.
Connect the CombiProbe header (using the MIPI34-MIPI20T
adapter) to either Socket J1 on the SODIMM
board (see Figure1) or to socket J10 on the main board (see
Figure 2). For systems using off-chip trace, it is recommended
to use J1 on the SODIMM due to the shorter track lengths of
the trace signals.
In tests here, the board was powered with a 5V external
power supply connected to J24, not the mini USB connector
at J25.
Power on the μTrace and then power on the LPC4357 board.
Start the TRACE32 software and you should see something
like Figure 3 below.
Figure 1: J1 on SODIMM
Figure 2: J10 on main board
Figure 3: TRACE32
2 Embedded Artists LPC4357 Guide 16 October 2013
About this document
This document will explain how to get up and running with the Lauterbach µTrace unit and the Embedded
Artists LPC4357 development board. The document goes with a zip file containing the examples and
configuration scripts described herein.
Two examples are provided: one runs a simple loop on the Cortex-M4 core of the device; the other runs a
similar program on the Cortex-M4 and a very simple loop on the Cortex-M0 core in the device.
Pre-Requisites
The Lauterbach TRACE32 software for µTrace has been installed. It is assumed that this has been installed
to the default location of C:\T32_uTrace. It will be referred to as $T32SYS in the rest of this document.
No changes were made from the default jumper settings.
Setup Procedures
Unzip the archive EA_LPC4357.zip so that it over-writes files in the $T32SYS directory. You may wish to
take a backup of this directory beforehand.
Connect the CombiProbe header to Socket A on the µTrace.
Connect the CombiProbe header (using the MIPI34-MIPI20T
adapter) to either Socket J1 on the SODIMM
board (see Figure1) or to socket J10 on the main board (see
Figure 2). For systems using off-chip trace, it is recommended
to use J1 on the SODIMM due to the shorter track lengths of
the trace signals.
In tests here, the board was powered with a 5V external
power supply connected to J24, not the mini USB connector
at J25.
Power on the μTrace and then power on the LPC4357 board.
Start the TRACE32 software and you should see something
like Figure 3 below.
Figure 1: J1 on SODIMM
Figure 2: J10 on main board
Figure 3: TRACE32

3 Embedded Artists LPC4357 Guide 16 October 2013
From the File menu, select Run Batchfile..., browse to $T32SYS and select
startup.cmm. You should see a window which looks like
Figure 4. Detailed use of this script is beyond the scope of
this document but more information can be found in the
accompanying Startup Guide.pdf.
TRACE32 can be configured to call this script each time you
start it up. To do this, edit the t32.cmm file in the $T32SYS
directory. At the bottom of the file, just before the line that
reads "ENDDO" add a line which reads
do startup.cmm
For now, click the LOAD button and browse for the basic_demo.t32ini file which is located in
$T32SYS\Eval Boards\Embedded Artists\LPC4357
directory. This will populate some of the fields in the startup window. Click the big start button to launch
the demo. The target will be
initialised, a small application
will be downloaded and
some basic windows opened
so that TRACE32 will now
look like Figure 5.
This will give you JTAG
control of the target. The
connection is via the Serial
Wire Debug (SWD) interface
to the Cortex-M4.
Figure 4: startup.cmm
Figure 5: Demo loaded
3 Embedded Artists LPC4357 Guide 16 October 2013
From the File menu, select Run Batchfile..., browse to $T32SYS and select
startup.cmm. You should see a window which looks like
Figure 4. Detailed use of this script is beyond the scope of
this document but more information can be found in the
accompanying Startup Guide.pdf.
TRACE32 can be configured to call this script each time you
start it up. To do this, edit the t32.cmm file in the $T32SYS
directory. At the bottom of the file, just before the line that
reads "ENDDO" add a line which reads
do startup.cmm
For now, click the LOAD button and browse for the basic_demo.t32ini file which is located in
$T32SYS\Eval Boards\Embedded Artists\LPC4357
directory. This will populate some of the fields in the startup window. Click the big start button to launch
the demo. The target will be
initialised, a small application
will be downloaded and
some basic windows opened
so that TRACE32 will now
look like Figure 5.
This will give you JTAG
control of the target. The
connection is via the Serial
Wire Debug (SWD) interface
to the Cortex-M4.
Figure 4: startup.cmm
Figure 5: Demo loaded
3 Embedded Artists LPC4357 Guide 16 October 2013
From the File menu, select Run Batchfile..., browse to $T32SYS and select
startup.cmm. You should see a window which looks like
Figure 4. Detailed use of this script is beyond the scope of
this document but more information can be found in the
accompanying Startup Guide.pdf.
TRACE32 can be configured to call this script each time you
start it up. To do this, edit the t32.cmm file in the $T32SYS
directory. At the bottom of the file, just before the line that
reads "ENDDO" add a line which reads
do startup.cmm
For now, click the LOAD button and browse for the basic_demo.t32ini file which is located in
$T32SYS\Eval Boards\Embedded Artists\LPC4357
directory. This will populate some of the fields in the startup window. Click the big start button to launch
the demo. The target will be
initialised, a small application
will be downloaded and
some basic windows opened
so that TRACE32 will now
look like Figure 5.
This will give you JTAG
control of the target. The
connection is via the Serial
Wire Debug (SWD) interface
to the Cortex-M4.
Figure 4: startup.cmm
Figure 5: Demo loaded

4 Embedded Artists LPC4357 Guide 16 October 2013
Trace Setup
In order to get ETM trace from the Cortex-M4 it is necessary to make a
small modification to the SODIMM board. On the
back of the SODIMM board is a small 0Ohm resistor
as position SJ1. This can be seen in Figure 6. It is
shown here in the default position connecting pads
1-2. The resistor must be moved to connect pads 2-3
to enable the off-chip trace signals.
The supplied configuration for the LPC4357 board
assumes a working trace port and will setup the pin
multiplexing and TRACE32 software accordingly.
However, until this modification has been made no
trace data can be collected.
Multi-Core Example
The second example loads code which is executed on both the Cortex-M4 and the Cortex-M0 in the
LPC4357 device. To debug both cores requires that the μTrace has a multi core license added to it.
This can be checked by starting TRACE32 and selecting About
TRACE32... from the Help menu. Figure 7 shows a multi core
system with the license highlighted. If your system does not have a
multi core license, please contact your local Lauterbach sales office.
Contact details can be found at:
http://www.lauterbach.com/sales
Before launching the multi core example some changes need to be
made to your config.t32 file which is located in the T32SYS
directory. These changes will not affect the single core functionality but
will extend TRACE32 to allow two instances of the software to connect to the same μTrace unit. This is
required to debug both cores in an Asymmetric Multi Processor (AMP) setup like this.
Edit config.t32 in your favourite text editor and at the bottom of the file add a
new section that looks like this. The blank line above and below are very important -
don't miss them.
Alter the PBI= section so that it now looks like this. Again, don't forget the blank
line above and below.
Save the changes.
Figure 6: SODIMM resistor
Figure 7: Multi core license
IC=NETASSIST
PORT=22000
PBI=
USB
CORE=1
4 Embedded Artists LPC4357 Guide 16 October 2013
Trace Setup
In order to get ETM trace from the Cortex-M4 it is necessary to make a
small modification to the SODIMM board. On the
back of the SODIMM board is a small 0Ohm resistor
as position SJ1. This can be seen in Figure 6. It is
shown here in the default position connecting pads
1-2. The resistor must be moved to connect pads 2-3
to enable the off-chip trace signals.
The supplied configuration for the LPC4357 board
assumes a working trace port and will setup the pin
multiplexing and TRACE32 software accordingly.
However, until this modification has been made no
trace data can be collected.
Multi-Core Example
The second example loads code which is executed on both the Cortex-M4 and the Cortex-M0 in the
LPC4357 device. To debug both cores requires that the μTrace has a multi core license added to it.
This can be checked by starting TRACE32 and selecting About
TRACE32... from the Help menu. Figure 7 shows a multi core
system with the license highlighted. If your system does not have a
multi core license, please contact your local Lauterbach sales office.
Contact details can be found at:
http://www.lauterbach.com/sales
Before launching the multi core example some changes need to be
made to your config.t32 file which is located in the T32SYS
directory. These changes will not affect the single core functionality but
will extend TRACE32 to allow two instances of the software to connect to the same μTrace unit. This is
required to debug both cores in an Asymmetric Multi Processor (AMP) setup like this.
Edit config.t32 in your favourite text editor and at the bottom of the file add a
new section that looks like this. The blank line above and below are very important -
don't miss them.
Alter the PBI= section so that it now looks like this. Again, don't forget the blank
line above and below.
Save the changes.
Figure 6: SODIMM resistor
Figure 7: Multi core license
IC=NETASSIST
PORT=22000
PBI=
USB
CORE=1
4 Embedded Artists LPC4357 Guide 16 October 2013
Trace Setup
In order to get ETM trace from the Cortex-M4 it is necessary to make a
small modification to the SODIMM board. On the
back of the SODIMM board is a small 0Ohm resistor
as position SJ1. This can be seen in Figure 6. It is
shown here in the default position connecting pads
1-2. The resistor must be moved to connect pads 2-3
to enable the off-chip trace signals.
The supplied configuration for the LPC4357 board
assumes a working trace port and will setup the pin
multiplexing and TRACE32 software accordingly.
However, until this modification has been made no
trace data can be collected.
Multi-Core Example
The second example loads code which is executed on both the Cortex-M4 and the Cortex-M0 in the
LPC4357 device. To debug both cores requires that the μTrace has a multi core license added to it.
This can be checked by starting TRACE32 and selecting About
TRACE32... from the Help menu. Figure 7 shows a multi core
system with the license highlighted. If your system does not have a
multi core license, please contact your local Lauterbach sales office.
Contact details can be found at:
http://www.lauterbach.com/sales
Before launching the multi core example some changes need to be
made to your config.t32 file which is located in the T32SYS
directory. These changes will not affect the single core functionality but
will extend TRACE32 to allow two instances of the software to connect to the same μTrace unit. This is
required to debug both cores in an Asymmetric Multi Processor (AMP) setup like this.
Edit config.t32 in your favourite text editor and at the bottom of the file add a
new section that looks like this. The blank line above and below are very important -
don't miss them.
Alter the PBI= section so that it now looks like this. Again, don't forget the blank
line above and below.
Save the changes.
Figure 6: SODIMM resistor
Figure 7: Multi core license
IC=NETASSIST
PORT=22000
PBI=
USB
CORE=1

5 Embedded Artists LPC4357 Guide 16 October 2013
Now take a copy of your config.t32 file and call it
config-2nd.t32. Place it in your $T32SYS directory.
This will need editing as well. The full contents of my
config.t32 file are shown here. Make sure the TMP
declaration is correct for your setup; it should be the same
as the one in your config.t32 file. The main changes are
summarised below:
OS=
Change ID=
Change TMP
PBI=
CORE=2
IC=
Change PORT=
SCREEN=
Add HEADER=
As before, connect the hardware and launch TRACE32. Run the startup.cmm script, if your system is not
already configured to auto run this. Click the LOAD button and browse for the
dual_core_demo.t32ini file in the
$T32SYS\Eval Boards\Embedded Artists\LPC4357
Click the big start button. After the first core has been initialised and code loaded a second instance of
TRACE32 will be started and connected to the Cortex-M0 core. The symbols will be loaded and you will end
up with two instances of TRACE32, looking like Figure 8. These have been resized to make the image fit
here.
The target has been configured so that each core can be single stepped independently but when either
core starts or stops (user controlled or via a breakpoint) the other core will also start or stop. These
settings can be adjusted using the Synch command. Please refer to the TRACE32 documentation.
Figure 8: Multi core Configuration
; Environment variables
OS=
ID=T32-2nd
TMP=C:\Users\rc\AppData\Local\Temp
SYS=C:\T32_uTrace
PBI=
USB
CORE=2
IC=NETASSIST
PORT=22001
; Printer settings
PRINTER=WINDOWS
; Screen fonts
SCREEN=
FONT=SMALL
HEADER=TRACE32 2nd Core
5 Embedded Artists LPC4357 Guide 16 October 2013
Now take a copy of your config.t32 file and call it
config-2nd.t32. Place it in your $T32SYS directory.
This will need editing as well. The full contents of my
config.t32 file are shown here. Make sure the TMP
declaration is correct for your setup; it should be the same
as the one in your config.t32 file. The main changes are
summarised below:
OS=
Change ID=
Change TMP
PBI=
CORE=2
IC=
Change PORT=
SCREEN=
Add HEADER=
As before, connect the hardware and launch TRACE32. Run the startup.cmm script, if your system is not
already configured to auto run this. Click the LOAD button and browse for the
dual_core_demo.t32ini file in the
$T32SYS\Eval Boards\Embedded Artists\LPC4357
Click the big start button. After the first core has been initialised and code loaded a second instance of
TRACE32 will be started and connected to the Cortex-M0 core. The symbols will be loaded and you will end
up with two instances of TRACE32, looking like Figure 8. These have been resized to make the image fit
here.
The target has been configured so that each core can be single stepped independently but when either
core starts or stops (user controlled or via a breakpoint) the other core will also start or stop. These
settings can be adjusted using the Synch command. Please refer to the TRACE32 documentation.
Figure 8: Multi core Configuration
; Environment variables
OS=
ID=T32-2nd
TMP=C:\Users\rc\AppData\Local\Temp
SYS=C:\T32_uTrace
PBI=
USB
CORE=2
IC=NETASSIST
PORT=22001
; Printer settings
PRINTER=WINDOWS
; Screen fonts
SCREEN=
FONT=SMALL
HEADER=TRACE32 2nd Core
5 Embedded Artists LPC4357 Guide 16 October 2013
Now take a copy of your config.t32 file and call it
config-2nd.t32. Place it in your $T32SYS directory.
This will need editing as well. The full contents of my
config.t32 file are shown here. Make sure the TMP
declaration is correct for your setup; it should be the same
as the one in your config.t32 file. The main changes are
summarised below:
OS=
Change ID=
Change TMP
PBI=
CORE=2
IC=
Change PORT=
SCREEN=
Add HEADER=
As before, connect the hardware and launch TRACE32. Run the startup.cmm script, if your system is not
already configured to auto run this. Click the LOAD button and browse for the
dual_core_demo.t32ini file in the
$T32SYS\Eval Boards\Embedded Artists\LPC4357
Click the big start button. After the first core has been initialised and code loaded a second instance of
TRACE32 will be started and connected to the Cortex-M0 core. The symbols will be loaded and you will end
up with two instances of TRACE32, looking like Figure 8. These have been resized to make the image fit
here.
The target has been configured so that each core can be single stepped independently but when either
core starts or stops (user controlled or via a breakpoint) the other core will also start or stop. These
settings can be adjusted using the Synch command. Please refer to the TRACE32 documentation.
Figure 8: Multi core Configuration
; Environment variables
OS=
ID=T32-2nd
TMP=C:\Users\rc\AppData\Local\Temp
SYS=C:\T32_uTrace
PBI=
USB
CORE=2
IC=NETASSIST
PORT=22001
; Printer settings
PRINTER=WINDOWS
; Screen fonts
SCREEN=
FONT=SMALL
HEADER=TRACE32 2nd Core

6 Embedded Artists LPC4357 Guide 16 October 2013
Tutorials
This section will provide some basic tutorials to help familiarise users with the TRACE32 concept.
Run Control
The target can be controlled via the buttons at the top of the
List window or using the control buttons on the toolbar.
See Figure T1. Users can also right-click on a line of code in
any List window and select Go Till to run to a
particular point. If you wish to run to known symbol the GO
command can be entered on the command line. See Figure
T2 for an example that will cause the debugger to run the
target until the entry of function func14 is reached.
Breakpoints
Double-click a source line in any List window to set a default
breakpoint. Right-click a line or variable for more control over
a breakpoint. For even finer control of breakpoints select
Set... from the Break menu - see Figure T3.
Change the settings to match figure T3 and click OK. Start the
target running and it will halt at line 681 where the first write
of 1 to variable flags[3] occurs.
Task aware, conditional and counting breakpoints can all be
set. Click the advanced button to access these extra settings. Discussion of these options is beyond the
scope of this document but should be reasonably self-explanatory.
The Vector catch unit can be programmed by selecting the OnChip Trigger... option from the
Break menu.
Registers
CPU registers can be viewed by using the Register
command or by selecting CPU Registers from the CPU
menu. This command can take a /SPOTLIGHT option which
causes the last four sets of deltas to the window contents to
be highlighted. See Figure T4. Double-click a register to
change its contents or right-click for indirect views.
Figure T1: Run Control Buttons
Figure T2: The Go command
Figure T3: Break.set
Figure T4: Highlighted Registers
6 Embedded Artists LPC4357 Guide 16 October 2013
Tutorials
This section will provide some basic tutorials to help familiarise users with the TRACE32 concept.
Run Control
The target can be controlled via the buttons at the top of the
List window or using the control buttons on the toolbar.
See Figure T1. Users can also right-click on a line of code in
any List window and select Go Till to run to a
particular point. If you wish to run to known symbol the GO
command can be entered on the command line. See Figure
T2 for an example that will cause the debugger to run the
target until the entry of function func14 is reached.
Breakpoints
Double-click a source line in any List window to set a default
breakpoint. Right-click a line or variable for more control over
a breakpoint. For even finer control of breakpoints select
Set... from the Break menu - see Figure T3.
Change the settings to match figure T3 and click OK. Start the
target running and it will halt at line 681 where the first write
of 1 to variable flags[3] occurs.
Task aware, conditional and counting breakpoints can all be
set. Click the advanced button to access these extra settings. Discussion of these options is beyond the
scope of this document but should be reasonably self-explanatory.
The Vector catch unit can be programmed by selecting the OnChip Trigger... option from the
Break menu.
Registers
CPU registers can be viewed by using the Register
command or by selecting CPU Registers from the CPU
menu. This command can take a /SPOTLIGHT option which
causes the last four sets of deltas to the window contents to
be highlighted. See Figure T4. Double-click a register to
change its contents or right-click for indirect views.
Figure T1: Run Control Buttons
Figure T2: The Go command
Figure T3: Break.set
Figure T4: Highlighted Registers
6 Embedded Artists LPC4357 Guide 16 October 2013
Tutorials
This section will provide some basic tutorials to help familiarise users with the TRACE32 concept.
Run Control
The target can be controlled via the buttons at the top of the
List window or using the control buttons on the toolbar.
See Figure T1. Users can also right-click on a line of code in
any List window and select Go Till to run to a
particular point. If you wish to run to known symbol the GO
command can be entered on the command line. See Figure
T2 for an example that will cause the debugger to run the
target until the entry of function func14 is reached.
Breakpoints
Double-click a source line in any List window to set a default
breakpoint. Right-click a line or variable for more control over
a breakpoint. For even finer control of breakpoints select
Set... from the Break menu - see Figure T3.
Change the settings to match figure T3 and click OK. Start the
target running and it will halt at line 681 where the first write
of 1 to variable flags[3] occurs.
Task aware, conditional and counting breakpoints can all be
set. Click the advanced button to access these extra settings. Discussion of these options is beyond the
scope of this document but should be reasonably self-explanatory.
The Vector catch unit can be programmed by selecting the OnChip Trigger... option from the
Break menu.
Registers
CPU registers can be viewed by using the Register
command or by selecting CPU Registers from the CPU
menu. This command can take a /SPOTLIGHT option which
causes the last four sets of deltas to the window contents to
be highlighted. See Figure T4. Double-click a register to
change its contents or right-click for indirect views.
Figure T1: Run Control Buttons
Figure T2: The Go command
Figure T3: Break.set
Figure T4: Highlighted Registers

7 Embedded Artists LPC4357 Guide 16 October 2013
The processor's peripheral control registers can be accessed via a dedicated
menu which is dynamically added at runtime once the
user has made their CPU selection. From here all of the
different sub-systems can be selected. A global view
can also be obtained by selecting Peripherals from
the CPU menu. An example can be seen in figure T5.
This window can also take the /SPOTLIGHT option to
highlight any changes to the contents.
A left-click on any of the registers or bit-fields will
cause the address and bits to be displayed in TRACE32
status line.
A right-click on any of the bit-fields will pop up a menu with a list of allowable values.
Variables
Variables can have their value displayed by left-clicking them in any window.
Variables can be dragged to a view or watch window. Local
and global variables can be shown by selecting the
appropriate options from the View or Var menus. Right-
clicking a variable opens up a menu with a number of
options for viewing it. A few are shown in figure T6.
Variables can be displayed graphically, in tables, can be
cast to other variable types. Memory can be cast to a
variable type for display and there are special options for
frame buffers, linked lists and waveforms.
Macros can be created that will take variable values and
convert them to real world values, such as volts from an
ADC reading.
Try displaying the array flags[] in function sieve in a number of different ways.
go sieve
Right-click flags and look at the options under other.
Where the processor supports it and the debugger has been configured for dualport memory access
variable values can be displayed and updated non-intrusively whilst the Cortex-M is executing code.
Figure T5: Peripheral Registers
Figure T6: Variable Views
7 Embedded Artists LPC4357 Guide 16 October 2013
The processor's peripheral control registers can be accessed via a dedicated
menu which is dynamically added at runtime once the
user has made their CPU selection. From here all of the
different sub-systems can be selected. A global view
can also be obtained by selecting Peripherals from
the CPU menu. An example can be seen in figure T5.
This window can also take the /SPOTLIGHT option to
highlight any changes to the contents.
A left-click on any of the registers or bit-fields will
cause the address and bits to be displayed in TRACE32
status line.
A right-click on any of the bit-fields will pop up a menu with a list of allowable values.
Variables
Variables can have their value displayed by left-clicking them in any window.
Variables can be dragged to a view or watch window. Local
and global variables can be shown by selecting the
appropriate options from the View or Var menus. Right-
clicking a variable opens up a menu with a number of
options for viewing it. A few are shown in figure T6.
Variables can be displayed graphically, in tables, can be
cast to other variable types. Memory can be cast to a
variable type for display and there are special options for
frame buffers, linked lists and waveforms.
Macros can be created that will take variable values and
convert them to real world values, such as volts from an
ADC reading.
Try displaying the array flags[] in function sieve in a number of different ways.
go sieve
Right-click flags and look at the options under other.
Where the processor supports it and the debugger has been configured for dualport memory access
variable values can be displayed and updated non-intrusively whilst the Cortex-M is executing code.
Figure T5: Peripheral Registers
Figure T6: Variable Views
7 Embedded Artists LPC4357 Guide 16 October 2013
The processor's peripheral control registers can be accessed via a dedicated
menu which is dynamically added at runtime once the
user has made their CPU selection. From here all of the
different sub-systems can be selected. A global view
can also be obtained by selecting Peripherals from
the CPU menu. An example can be seen in figure T5.
This window can also take the /SPOTLIGHT option to
highlight any changes to the contents.
A left-click on any of the registers or bit-fields will
cause the address and bits to be displayed in TRACE32
status line.
A right-click on any of the bit-fields will pop up a menu with a list of allowable values.
Variables
Variables can have their value displayed by left-clicking them in any window.
Variables can be dragged to a view or watch window. Local
and global variables can be shown by selecting the
appropriate options from the View or Var menus. Right-
clicking a variable opens up a menu with a number of
options for viewing it. A few are shown in figure T6.
Variables can be displayed graphically, in tables, can be
cast to other variable types. Memory can be cast to a
variable type for display and there are special options for
frame buffers, linked lists and waveforms.
Macros can be created that will take variable values and
convert them to real world values, such as volts from an
ADC reading.
Try displaying the array flags[] in function sieve in a number of different ways.
go sieve
Right-click flags and look at the options under other.
Where the processor supports it and the debugger has been configured for dualport memory access
variable values can be displayed and updated non-intrusively whilst the Cortex-M is executing code.
Figure T5: Peripheral Registers
Figure T6: Variable Views

8 Embedded Artists LPC4357 Guide 16 October 2013
Memory
Memory can be viewed by selecting Dump... from the View menu. Enter the
address to view and set any relevant options. A
window will be displayed like figure T7. Memory
can be searched for a pattern. Memory can be filled
with a pattern or a test pattern. Two ranges can be
compared or a CRC can be calculated for a given
range. A walking bit test can also be performed
over a memory region.
All memory view windows can have the
/SPOTLIGHT option added to them allowing the highlight of any changes in contents. Each value has a
right-click menu behind it providing access to further options.
Try the following:
var.view flags /SPOTLIGHT
data.dump flags /dialog /SPOTLIGHT
Change the values in one window and the values in the other will be highlighted.
Performance Analysis
A sample based performance analysis capability is provided. This can be accessed by selecting Perf
Configuration... from the Perf menu. An entire book could be written on this window alone so
instead a few examples will be provided to get you started.
This is a sample based metric and may or may not be intrusive depending upon the core chosen. If the
DWT in the chosen core supports the PC Snoop mode, the
sampling will be made non-intrusively. This can be checked
by opening the Data Watchpoint and Trace
setting from the Peripheral Registers view and checking
the availability of PCSAMPLEENA. See Figure T8. PC Snoop
is available on all Cortex-M4 cores, all Cortex-M0+ cores,
and all Cortex-M3 cores of r2p0 or newer.
If this is available non-intrusive metrics can be collected. Set the METHOD in the Perf window to Snoop.
If not, the target will need to be halted to read the Program Counter for the samples. Set the METHOD in
the Perf window to StopAndGo.
To view relative function runtime analysis:
Set the METHOD as described above
Set the Mode to PC
Set the state to OFF
Click the ListFunc button
Start the target running
An example is shown in figure T9.
Figure T7: Memory Dump
Figure T8: PC Snoop
Figure T9: PC Snoop
8 Embedded Artists LPC4357 Guide 16 October 2013
Memory
Memory can be viewed by selecting Dump... from the View menu. Enter the
address to view and set any relevant options. A
window will be displayed like figure T7. Memory
can be searched for a pattern. Memory can be filled
with a pattern or a test pattern. Two ranges can be
compared or a CRC can be calculated for a given
range. A walking bit test can also be performed
over a memory region.
All memory view windows can have the
/SPOTLIGHT option added to them allowing the highlight of any changes in contents. Each value has a
right-click menu behind it providing access to further options.
Try the following:
var.view flags /SPOTLIGHT
data.dump flags /dialog /SPOTLIGHT
Change the values in one window and the values in the other will be highlighted.
Performance Analysis
A sample based performance analysis capability is provided. This can be accessed by selecting Perf
Configuration... from the Perf menu. An entire book could be written on this window alone so
instead a few examples will be provided to get you started.
This is a sample based metric and may or may not be intrusive depending upon the core chosen. If the
DWT in the chosen core supports the PC Snoop mode, the
sampling will be made non-intrusively. This can be checked
by opening the Data Watchpoint and Trace
setting from the Peripheral Registers view and checking
the availability of PCSAMPLEENA. See Figure T8. PC Snoop
is available on all Cortex-M4 cores, all Cortex-M0+ cores,
and all Cortex-M3 cores of r2p0 or newer.
If this is available non-intrusive metrics can be collected. Set the METHOD in the Perf window to Snoop.
If not, the target will need to be halted to read the Program Counter for the samples. Set the METHOD in
the Perf window to StopAndGo.
To view relative function runtime analysis:
Set the METHOD as described above
Set the Mode to PC
Set the state to OFF
Click the ListFunc button
Start the target running
An example is shown in figure T9.
Figure T7: Memory Dump
Figure T8: PC Snoop
Figure T9: PC Snoop
8 Embedded Artists LPC4357 Guide 16 October 2013
Memory
Memory can be viewed by selecting Dump... from the View menu. Enter the
address to view and set any relevant options. A
window will be displayed like figure T7. Memory
can be searched for a pattern. Memory can be filled
with a pattern or a test pattern. Two ranges can be
compared or a CRC can be calculated for a given
range. A walking bit test can also be performed
over a memory region.
All memory view windows can have the
/SPOTLIGHT option added to them allowing the highlight of any changes in contents. Each value has a
right-click menu behind it providing access to further options.
Try the following:
var.view flags /SPOTLIGHT
data.dump flags /dialog /SPOTLIGHT
Change the values in one window and the values in the other will be highlighted.
Performance Analysis
A sample based performance analysis capability is provided. This can be accessed by selecting Perf
Configuration... from the Perf menu. An entire book could be written on this window alone so
instead a few examples will be provided to get you started.
This is a sample based metric and may or may not be intrusive depending upon the core chosen. If the
DWT in the chosen core supports the PC Snoop mode, the
sampling will be made non-intrusively. This can be checked
by opening the Data Watchpoint and Trace
setting from the Peripheral Registers view and checking
the availability of PCSAMPLEENA. See Figure T8. PC Snoop
is available on all Cortex-M4 cores, all Cortex-M0+ cores,
and all Cortex-M3 cores of r2p0 or newer.
If this is available non-intrusive metrics can be collected. Set the METHOD in the Perf window to Snoop.
If not, the target will need to be halted to read the Program Counter for the samples. Set the METHOD in
the Perf window to StopAndGo.
To view relative function runtime analysis:
Set the METHOD as described above
Set the Mode to PC
Set the state to OFF
Click the ListFunc button
Start the target running
An example is shown in figure T9.
Figure T7: Memory Dump
Figure T8: PC Snoop
Figure T9: PC Snoop

9 Embedded Artists LPC4357 Guide 16 October 2013
To view data values:
Set the METHOD as described above
Set the Mode to Memory
Set the State to OFF
Set SnoopAddress to flags
Set SnoopSize to Long
Click the ListDistrib button
Start the target running
An example is shown in figure T10.
On-Line Help
If Adobe Acrobat Read is installed on your PC before you install TRACE32 for µTrace a help plug-in will be
automatically configured. Help can be accessed at any time by pressing the F1 key. Partially type a
command and press F1 and after a few seconds wait the appropriate page of the documentation will be
opened up in the Acrobat Reader. Click and window and press F1 and help for that window will be
displayed. Additional help can be found on the Help menu, including a search capability and a target
manual which describes in more detail the debug capabilities of the family of cores you are working with:
No. breakpoints, non-intrusive memory access, dealing with watchdogs, etc.
There is an issue with Adobe Reader 10 which causes the right book to be opened but not the correct page
to be displayed.
You can also contact your local Lauterbach representative if you have any questions about the operation of
the µTrace unit or the TRACE32 software interface. A list can be found at:
http://www.lauterbach.com/tsupport.html
Figure T10: Data Snoop
9 Embedded Artists LPC4357 Guide 16 October 2013
To view data values:
Set the METHOD as described above
Set the Mode to Memory
Set the State to OFF
Set SnoopAddress to flags
Set SnoopSize to Long
Click the ListDistrib button
Start the target running
An example is shown in figure T10.
On-Line Help
If Adobe Acrobat Read is installed on your PC before you install TRACE32 for µTrace a help plug-in will be
automatically configured. Help can be accessed at any time by pressing the F1 key. Partially type a
command and press F1 and after a few seconds wait the appropriate page of the documentation will be
opened up in the Acrobat Reader. Click and window and press F1 and help for that window will be
displayed. Additional help can be found on the Help menu, including a search capability and a target
manual which describes in more detail the debug capabilities of the family of cores you are working with:
No. breakpoints, non-intrusive memory access, dealing with watchdogs, etc.
There is an issue with Adobe Reader 10 which causes the right book to be opened but not the correct page
to be displayed.
You can also contact your local Lauterbach representative if you have any questions about the operation of
the µTrace unit or the TRACE32 software interface. A list can be found at:
http://www.lauterbach.com/tsupport.html
Figure T10: Data Snoop
9 Embedded Artists LPC4357 Guide 16 October 2013
To view data values:
Set the METHOD as described above
Set the Mode to Memory
Set the State to OFF
Set SnoopAddress to flags
Set SnoopSize to Long
Click the ListDistrib button
Start the target running
An example is shown in figure T10.
On-Line Help
If Adobe Acrobat Read is installed on your PC before you install TRACE32 for µTrace a help plug-in will be
automatically configured. Help can be accessed at any time by pressing the F1 key. Partially type a
command and press F1 and after a few seconds wait the appropriate page of the documentation will be
opened up in the Acrobat Reader. Click and window and press F1 and help for that window will be
displayed. Additional help can be found on the Help menu, including a search capability and a target
manual which describes in more detail the debug capabilities of the family of cores you are working with:
No. breakpoints, non-intrusive memory access, dealing with watchdogs, etc.
There is an issue with Adobe Reader 10 which causes the right book to be opened but not the correct page
to be displayed.
You can also contact your local Lauterbach representative if you have any questions about the operation of
the µTrace unit or the TRACE32 software interface. A list can be found at:
http://www.lauterbach.com/tsupport.html
Figure T10: Data Snoop

10 Embedded Artists LPC4357 Guide 16 October 2013
Trace Examples
All of the previous tutorials have been using the JTAG or SWD interface. The next batch will look at using
the off-chip trace or ETM. The example scripts configure the trace port and pins but the board still needs to
be modified as described on page 4 so that the trace signals are available for the µTrace to capture.
Basic Trace Collection
Select Configuration from the Trace menu. You should get a
window like that in figure T11. Make sure that the METHOD is
set to CAnalyzer and the state is set to OFF. Ensure that the
AutoArm box is ticked. This allows tracing to start and stop as
the target CPU starts and stops.
Start the target and let it run for a few seconds before
stopping it again. There should be a blue bar in the used box
to indicate the number of trace records captured. This should
number in the tens or hundreds of thousand for a few
seconds of run time. If it is less than a hundred or so you may
need to check the resistor positioning as there appears to be
no meaningful trace data.
Once you have some trace data captured, click the List
button and see the program flow information. The
window will look like figure T12. Click the More or Less
buttons to filter the amount of information displayed in
the window.
The trace data can be searched. Click the Find button
and enter the text “sieve” into the address/expression
box. Then click the Find All button. This will show a
window that looks like figure T13 with all occurrences of
calls to the function sieve in the trace buffer. Clicking on
any of these will cause the trace listing window to jump to
that point in the buffer so you can see the program flow
around that event.
The ti.back column in the search results window shows
the time between function calls. It should average out at
around 72.5us.
By default there is no data trace on the Cortex-M so data reads and writes will not be traced and cannot be
searched for. However, if the DWT on your device supports it you can use a data breakpoint (up to four of
them are allowed for in the Cortex-M specification but the actual number is core specific) to cause a data
trace event to be injected into the trace stream. Care should be taken when doing this as data trace
packets cannot be as easily compressed as the program flow trace packets and you may get an internal
trace FIFO overflow and some data will be lost.
Figure T11: Trace Configuration
Figure T12: Program flow trace
Figure T13: Search Results
10 Embedded Artists LPC4357 Guide 16 October 2013
Trace Examples
All of the previous tutorials have been using the JTAG or SWD interface. The next batch will look at using
the off-chip trace or ETM. The example scripts configure the trace port and pins but the board still needs to
be modified as described on page 4 so that the trace signals are available for the µTrace to capture.
Basic Trace Collection
Select Configuration from the Trace menu. You should get a
window like that in figure T11. Make sure that the METHOD is
set to CAnalyzer and the state is set to OFF. Ensure that the
AutoArm box is ticked. This allows tracing to start and stop as
the target CPU starts and stops.
Start the target and let it run for a few seconds before
stopping it again. There should be a blue bar in the used box
to indicate the number of trace records captured. This should
number in the tens or hundreds of thousand for a few
seconds of run time. If it is less than a hundred or so you may
need to check the resistor positioning as there appears to be
no meaningful trace data.
Once you have some trace data captured, click the List
button and see the program flow information. The
window will look like figure T12. Click the More or Less
buttons to filter the amount of information displayed in
the window.
The trace data can be searched. Click the Find button
and enter the text “sieve” into the address/expression
box. Then click the Find All button. This will show a
window that looks like figure T13 with all occurrences of
calls to the function sieve in the trace buffer. Clicking on
any of these will cause the trace listing window to jump to
that point in the buffer so you can see the program flow
around that event.
The ti.back column in the search results window shows
the time between function calls. It should average out at
around 72.5us.
By default there is no data trace on the Cortex-M so data reads and writes will not be traced and cannot be
searched for. However, if the DWT on your device supports it you can use a data breakpoint (up to four of
them are allowed for in the Cortex-M specification but the actual number is core specific) to cause a data
trace event to be injected into the trace stream. Care should be taken when doing this as data trace
packets cannot be as easily compressed as the program flow trace packets and you may get an internal
trace FIFO overflow and some data will be lost.
Figure T11: Trace Configuration
Figure T12: Program flow trace
Figure T13: Search Results
10 Embedded Artists LPC4357 Guide 16 October 2013
Trace Examples
All of the previous tutorials have been using the JTAG or SWD interface. The next batch will look at using
the off-chip trace or ETM. The example scripts configure the trace port and pins but the board still needs to
be modified as described on page 4 so that the trace signals are available for the µTrace to capture.
Basic Trace Collection
Select Configuration from the Trace menu. You should get a
window like that in figure T11. Make sure that the METHOD is
set to CAnalyzer and the state is set to OFF. Ensure that the
AutoArm box is ticked. This allows tracing to start and stop as
the target CPU starts and stops.
Start the target and let it run for a few seconds before
stopping it again. There should be a blue bar in the used box
to indicate the number of trace records captured. This should
number in the tens or hundreds of thousand for a few
seconds of run time. If it is less than a hundred or so you may
need to check the resistor positioning as there appears to be
no meaningful trace data.
Once you have some trace data captured, click the List
button and see the program flow information. The
window will look like figure T12. Click the More or Less
buttons to filter the amount of information displayed in
the window.
The trace data can be searched. Click the Find button
and enter the text “sieve” into the address/expression
box. Then click the Find All button. This will show a
window that looks like figure T13 with all occurrences of
calls to the function sieve in the trace buffer. Clicking on
any of these will cause the trace listing window to jump to
that point in the buffer so you can see the program flow
around that event.
The ti.back column in the search results window shows
the time between function calls. It should average out at
around 72.5us.
By default there is no data trace on the Cortex-M so data reads and writes will not be traced and cannot be
searched for. However, if the DWT on your device supports it you can use a data breakpoint (up to four of
them are allowed for in the Cortex-M specification but the actual number is core specific) to cause a data
trace event to be injected into the trace stream. Care should be taken when doing this as data trace
packets cannot be as easily compressed as the program flow trace packets and you may get an internal
trace FIFO overflow and some data will be lost.
Figure T11: Trace Configuration
Figure T12: Program flow trace
Figure T13: Search Results

11 Embedded Artists LPC4357 Guide 16 October 2013
In the trace list window, click the Chart button to see
a view of functions against time, similar to that in
Figure T14. The example shown here has been
zoomed in to show individual functions against the
timeline on the horizontal axis.
The zoom can be controlled in a number of ways:
- Click the In and Out buttons
- Click on the chart and use the mouse scroll
wheel to zoom in and out
- Click and drag to select an area of the chart
and then left click within it to zoom it to the
full size of the window
- Double-click on the chart but do not release
the second mouse click. Move the mouse up
and down to zoom in and out around the point clicked on.
Code Coverage
With program flow trace available it is easy
to get code coverage information. Select
Add Tracebuffer from the Cov menu.
This will add the contents of the current
trace buffer to the existing code coverage
database. Like this multiple test runs can be
aggregated. Now select List functions
from the Cov menu. You should see a
window like that in Figure T15.
Any of the functions can be expanded by
clicking on the “+” icon to see individual sources lines. Expand func11, which has only partial coverage, to
see which lines haven’t been covered. Double-click on line 438—438 to see more detail about that line
which only has partial coverage. You should see a
modified source view window similar to Figure T16. If
you toggle the Mode button to switch to High Level
Language (HLL) view you will see that only the default
case in the switch statement has ever been executed.
Figure T14: Trace Chart
Figure T15: Function level code coverage
Figure T16: Low level code coverage
11 Embedded Artists LPC4357 Guide 16 October 2013
In the trace list window, click the Chart button to see
a view of functions against time, similar to that in
Figure T14. The example shown here has been
zoomed in to show individual functions against the
timeline on the horizontal axis.
The zoom can be controlled in a number of ways:
- Click the In and Out buttons
- Click on the chart and use the mouse scroll
wheel to zoom in and out
- Click and drag to select an area of the chart
and then left click within it to zoom it to the
full size of the window
- Double-click on the chart but do not release
the second mouse click. Move the mouse up
and down to zoom in and out around the point clicked on.
Code Coverage
With program flow trace available it is easy
to get code coverage information. Select
Add Tracebuffer from the Cov menu.
This will add the contents of the current
trace buffer to the existing code coverage
database. Like this multiple test runs can be
aggregated. Now select List functions
from the Cov menu. You should see a
window like that in Figure T15.
Any of the functions can be expanded by
clicking on the “+” icon to see individual sources lines. Expand func11, which has only partial coverage, to
see which lines haven’t been covered. Double-click on line 438—438 to see more detail about that line
which only has partial coverage. You should see a
modified source view window similar to Figure T16. If
you toggle the Mode button to switch to High Level
Language (HLL) view you will see that only the default
case in the switch statement has ever been executed.
Figure T14: Trace Chart
Figure T15: Function level code coverage
Figure T16: Low level code coverage
11 Embedded Artists LPC4357 Guide 16 October 2013
In the trace list window, click the Chart button to see
a view of functions against time, similar to that in
Figure T14. The example shown here has been
zoomed in to show individual functions against the
timeline on the horizontal axis.
The zoom can be controlled in a number of ways:
- Click the In and Out buttons
- Click on the chart and use the mouse scroll
wheel to zoom in and out
- Click and drag to select an area of the chart
and then left click within it to zoom it to the
full size of the window
- Double-click on the chart but do not release
the second mouse click. Move the mouse up
and down to zoom in and out around the point clicked on.
Code Coverage
With program flow trace available it is easy
to get code coverage information. Select
Add Tracebuffer from the Cov menu.
This will add the contents of the current
trace buffer to the existing code coverage
database. Like this multiple test runs can be
aggregated. Now select List functions
from the Cov menu. You should see a
window like that in Figure T15.
Any of the functions can be expanded by
clicking on the “+” icon to see individual sources lines. Expand func11, which has only partial coverage, to
see which lines haven’t been covered. Double-click on line 438—438 to see more detail about that line
which only has partial coverage. You should see a
modified source view window similar to Figure T16. If
you toggle the Mode button to switch to High Level
Language (HLL) view you will see that only the default
case in the switch statement has ever been executed.
Figure T14: Trace Chart
Figure T15: Function level code coverage
Figure T16: Low level code coverage

12 Embedded Artists LPC4357 Guide 16 October 2013
Performance Analysis
Collect some trace data and then from the
Perf menu select Function Runtime
and then Show Detailed Tree. You
will get something similar to Figure T17.
Figure T17 has had some of the irrelevant
columns removed from the display so that
it more easily fits this page.
For the sample period, this view shows the
minimum, maximum and mean time spent
in each function. It also shows time
consumed by any sub-functions and the number of times each function was called.
Each function has a right-click menu on it to provide more detailed analysis of call trees, runtimes and
distance between calls to a function. Try some of the options and see what you can learn about this code.
For example, right-click func1 and select Linkage or Parents from the menu.
Trace Based Debugging
Collect some trace and then select CTS Settings from the
Trace menu. You will see a window like that shown in Figure T18.
Change the state to ON. This will take anything from a few seconds
to several minutes to process, depending upon how much trace
data you have sampled and how fast your connection to the µTrace
unit is.
When it has finished processing, the buttons in any List windows
will become yellow and some new buttons will be added:
- Step back over
- Step back into
- Go back to Entry
-
See Figure T19 for this. This allows users to step and run
backwards and forwards through a reconstruction of
the system context at any point during the period that
was sampled into the trace buffer. You can inspect the
contents of memory, registers and variables as far as
they can be reconstructed. Where something cannot be
reconstructed it’s value will be replaced with ‘????’.
Additional entries in the List window’s right-click
menu will be added:
- Go Till
- Go Back Till
Figure T17: Detailed Performance Measurements
Figure T18: CTS Settings
Figure T19: New Run Control Buttons
12 Embedded Artists LPC4357 Guide 16 October 2013
Performance Analysis
Collect some trace data and then from the
Perf menu select Function Runtime
and then Show Detailed Tree. You
will get something similar to Figure T17.
Figure T17 has had some of the irrelevant
columns removed from the display so that
it more easily fits this page.
For the sample period, this view shows the
minimum, maximum and mean time spent
in each function. It also shows time
consumed by any sub-functions and the number of times each function was called.
Each function has a right-click menu on it to provide more detailed analysis of call trees, runtimes and
distance between calls to a function. Try some of the options and see what you can learn about this code.
For example, right-click func1 and select Linkage or Parents from the menu.
Trace Based Debugging
Collect some trace and then select CTS Settings from the
Trace menu. You will see a window like that shown in Figure T18.
Change the state to ON. This will take anything from a few seconds
to several minutes to process, depending upon how much trace
data you have sampled and how fast your connection to the µTrace
unit is.
When it has finished processing, the buttons in any List windows
will become yellow and some new buttons will be added:
- Step back over
- Step back into
- Go back to Entry
-
See Figure T19 for this. This allows users to step and run
backwards and forwards through a reconstruction of
the system context at any point during the period that
was sampled into the trace buffer. You can inspect the
contents of memory, registers and variables as far as
they can be reconstructed. Where something cannot be
reconstructed it’s value will be replaced with ‘????’.
Additional entries in the List window’s right-click
menu will be added:
- Go Till
- Go Back Till
Figure T17: Detailed Performance Measurements
Figure T18: CTS Settings
Figure T19: New Run Control Buttons
12 Embedded Artists LPC4357 Guide 16 October 2013
Performance Analysis
Collect some trace data and then from the
Perf menu select Function Runtime
and then Show Detailed Tree. You
will get something similar to Figure T17.
Figure T17 has had some of the irrelevant
columns removed from the display so that
it more easily fits this page.
For the sample period, this view shows the
minimum, maximum and mean time spent
in each function. It also shows time
consumed by any sub-functions and the number of times each function was called.
Each function has a right-click menu on it to provide more detailed analysis of call trees, runtimes and
distance between calls to a function. Try some of the options and see what you can learn about this code.
For example, right-click func1 and select Linkage or Parents from the menu.
Trace Based Debugging
Collect some trace and then select CTS Settings from the
Trace menu. You will see a window like that shown in Figure T18.
Change the state to ON. This will take anything from a few seconds
to several minutes to process, depending upon how much trace
data you have sampled and how fast your connection to the µTrace
unit is.
When it has finished processing, the buttons in any List windows
will become yellow and some new buttons will be added:
- Step back over
- Step back into
- Go back to Entry
-
See Figure T19 for this. This allows users to step and run
backwards and forwards through a reconstruction of
the system context at any point during the period that
was sampled into the trace buffer. You can inspect the
contents of memory, registers and variables as far as
they can be reconstructed. Where something cannot be
reconstructed it’s value will be replaced with ‘????’.
Additional entries in the List window’s right-click
menu will be added:
- Go Till
- Go Back Till
Figure T17: Detailed Performance Measurements
Figure T18: CTS Settings
Figure T19: New Run Control Buttons

13 Embedded Artists LPC4357 Guide 16 October 2013
Clicking the List button in the CTS window will
open a different view of the trace data, showing
function nesting and function and instruction
runtimes. Each of the functions can be expanded.
Where data values can be reconstructed the
change in variable will be shown at each step. An
example can be seen in Figure T20.
A chart view can be constructed from this window
by clicking the Chart button.
Right-clicking any line of code in the CTS.List
window or right-clicking anywhere in the CTS.Chart window will cause a menu to popup. Select Set CTS
and all windows will be updated to reflect the state of the target as reconstructed at that point in history.
Using this allows users to quickly zone in the actual cause of a bug rather than just trapping on the
subsequent error caused by the bug.
Before ‘normal’ debugging can be resumed the CTS mode must be exited. The can be done by setting the
state to OFF in the CTS window or by entering the command CTS.OFF.
Figure T20: CTS.List view
13 Embedded Artists LPC4357 Guide 16 October 2013
Clicking the List button in the CTS window will
open a different view of the trace data, showing
function nesting and function and instruction
runtimes. Each of the functions can be expanded.
Where data values can be reconstructed the
change in variable will be shown at each step. An
example can be seen in Figure T20.
A chart view can be constructed from this window
by clicking the Chart button.
Right-clicking any line of code in the CTS.List
window or right-clicking anywhere in the CTS.Chart window will cause a menu to popup. Select Set CTS
and all windows will be updated to reflect the state of the target as reconstructed at that point in history.
Using this allows users to quickly zone in the actual cause of a bug rather than just trapping on the
subsequent error caused by the bug.
Before ‘normal’ debugging can be resumed the CTS mode must be exited. The can be done by setting the
state to OFF in the CTS window or by entering the command CTS.OFF.
Figure T20: CTS.List view
13 Embedded Artists LPC4357 Guide 16 October 2013
Clicking the List button in the CTS window will
open a different view of the trace data, showing
function nesting and function and instruction
runtimes. Each of the functions can be expanded.
Where data values can be reconstructed the
change in variable will be shown at each step. An
example can be seen in Figure T20.
A chart view can be constructed from this window
by clicking the Chart button.
Right-clicking any line of code in the CTS.List
window or right-clicking anywhere in the CTS.Chart window will cause a menu to popup. Select Set CTS
and all windows will be updated to reflect the state of the target as reconstructed at that point in history.
Using this allows users to quickly zone in the actual cause of a bug rather than just trapping on the
subsequent error caused by the bug.
Before ‘normal’ debugging can be resumed the CTS mode must be exited. The can be done by setting the
state to OFF in the CTS window or by entering the command CTS.OFF.
Figure T20: CTS.List view
Table of contents
Other Lauterbach Control Unit manuals
Popular Control Unit manuals by other brands

mikroElektronika
mikroElektronika Click Boards IR distance click manual

AzureWave
AzureWave AW-CU277 user manual

Risco
Risco AGM Installation and programming instructions

UTC Fire and Security
UTC Fire and Security interlogix VT2010 Installation & operation instructions

Danfoss
Danfoss VFS 2 datasheet

Pima
Pima ZEX508 installation instructions