Using Multiple LPC-Link2 debug probes

Introduction

New in LPCXpesso IDE version 8.1 is direct support for using multiple LPC-Link2 debug probes. Now when using the latest NXP CMSIS-DAP firmware the user can recognise and select individual LPC-Link2’s either within a single IDE or within separate IDE sessions (note that separate concurrent IDE sessions cannot share a single workspace).

Note: all references the LPC-Link2 debug probes equally describe the probes built into LPCXpresso V2 and V3 development boards: see LPCXpresso Boards

Making a debug connection

There are two primary changes:

the latest NXP CMSIS-DAP firmware for LPC-Link2 will now generate a unique identifier from the debug probe MCU’s unique ID. Each identifier is an 8 character alpha numeric string, for example:GQAUBQPQ

when a debug operation is performed, the IDE will display the available debug probes and allow a specific probe to be selected. Future debug connections for a particular project can be set to look for and select a specific debug probe using the Remember my selection tick box. A single LPC-Link2 will display like this:

These changes are specific to LPC-Link2. Other debug probes may be used in combination with LPC-Link2, such as the built in probes of the LPCXpresso CD boards but only the LPC-Link2 probes will be dynamically identified with a unique ID. Two LPC-Link2 probe and an LPCXpresso CD board will display like this:

Note: It may be helpful to label debug probes or boards with their unique ID.

Debugging

The ability to debug multiple MCUs using a single installation of LPCXpresso IDE can be use in two ways:

Single IDE Instance

From within a single IDE window, you can now debug cores in parallel, selecting which core to step, resume, suspend, etc. by switching between them in the Debug View.

The currently selected core will be the one used for displaying many of the debug related views, such as Registers and Locals. It is also possible to create copies of many of the debug related views, and lock each copy to a particular core.

Note: Although there is no debug logic synchronising debug operations on the two cores, you can select both applications at the same time in the Debug View (typically by using CTRL-Click) and operations like step, resume, suspend, etc will then be carried out on both cores by the debugger in parallel.

This scheme may be most suited to related projects or debug tasks.

Multiple IDE Instances

From within multiple IDE windows you can debug multiple MCUs, this option may be preferable if plenty of screen space is available. Note that separate concurrent IDE sessions cannot share a single workspace.

Useful information

Drivers

One consequence of LPC-Link2 probes now being unique is that each new probe will need to install the necessary drivers before the first connection can be made. This process will usually be automatic, however refer to the following FAQ LPC-Link2 fails to enumerate with CMSIS-DAP if problems are experienced.

Bandwidth

Due to the USB bandwidth required to provide responsive performance, the number of LPC-Link2 that may be connected to a single PC is limited. To reduce the bandwidth required, the Non Bridged Debug probe firmware can be used. This can either be programmed into the debug probe automatically by the IDE (DFU boot) or programmed into flash by LPCScrypt

To make LPCScrypt flash the LPC-Link2 with Non Bridged firmware, launch the programCMSIS script with the NB argument:

\scripts\programCMSIS NB

Booting LPC-Link 2 Probes

When a debug connection is attempted, the IDE will look for any debug probe that requires booting with firmware (is in DFU boot configuration), however if more than one bootable probe is connected the IDE will generate an error. To fix this ensure that only one bootable probe is connected at a time.

Legacy Probes

LPCXpresso IDE only supports the use of one legacy debug probe, such as Red Probe+ and LPC-Link connected to a single PC at any one time.

Limitations

Certain features of LPCXpresso IDE such as SWO trace can only be used via a single debug connection.