Test access port (TAP)

JTAG defines a TAP (Test access port).

The TAP is a general-purpose port that can provide access to many test support functions built into a component.

It is composed as a minimum of the three input connections (TDI, TCK, TMS) and one output connection (TDO).

An optional fourth input connection (nTRST) provides for asynchronous initialization of the test logic.

JTAG的接口是一种特殊的4/5个接脚接口连到芯片上 ,所以在电路版上的很多芯片可以将他们的JTAG接脚

通过Daisy Chain的方式连在一起,并且Probe只需连接到一个“JTAG端口”就可以访问一块印刷电路板上的所有IC。

这些连接引脚是:

  1. TDI(测试数据输入)
  2. TDO(测试数据输出)
  3. TCK(测试时钟)
  4. TMS(测试模式选择)
  5. TRST(测试复位)可选。

Test Clock Input (TCK)

TCK为TAP的操作提供了一个独立的、基本的时钟信号,TAP的所有操作都是通过这个时钟信号来驱动的。

Test Mode Selection Input(TMS)

TMS信号用来控制TAP状态机的转换。通过TMS信号,可以控制TAP在不同的状态间相互转换。TMS信号在TCK的上升沿有效。

Test Data Input(TDI)

TDI是数据输入的接口。所有要输入到特定寄存器的数据都是通过TDI输入端口串行输入的(由TCK驱动)。

Test Data Output(TDO)

TDO是数据输出的接口。所有要从特定的寄存器中输出的数据都是通过TDO输出端口串行输出的(由TCK驱动)。

Test Reset Input(TRST)

TRST可以用来对TAP Controller进行复位(初始化)。

不过这个信号接口在IEEE 1149.1标准里是可选的,因为通过TMS也可以对TAP Controller进行复位(初始化)操作。

Data registers

JTAG requires at least two data registers to be present:

the bypass and the boundary-scan register.

Other registers are allowed but are not obligatory.

Bypass data register :

A single-bit register that passes information from TDI to TDO.

Boundary-scan data register :

A test data register which allows the testing of board interconnections, access to input and output of components when testing their system logic and so on.

Instruction register

The instruction register holds the current instruction and its content is used by the TAP controller to decide which test to perform or which data register to access.

It consist of at least two shift-register cells.

Determining values for scan chain configuration

When do I need to configure the scan chain?

If only one device is connected to the scan chain, the default configuration can be used.

In other cases, J-Link / J-Trace may succeed in automatically recognizing the devices on the scan chain,

but whether this is possible depends on the devices present on the scan chain.

How do I configure the scan chain?

2 values need to be known:

  1. • The position of the target device in the scan chain.
  2. • The total number of bits in the instruction registers of the devices before the target device (IR len).

The position can usually be seen in the schematic; the IR len can be found in the manual supplied by the manufacturers of the others devices.
ARM7/ARM9 have an IR len of four.

Sample configurations

The diagram below shows a scan chain configuration sample with 2 devices connected to the JTAG port.

Examples

The following table shows a few sample configurations with 1,2 and 3 devices in different configurations.

The target device is marked in blue.

Multi-core debugging

J-Link / J-Trace is able to debug multiple cores on one target system connected to the same scan chain.

Configuring and using this feature is described in this section.

How multi-core debugging works

Multi-core debugging requires multiple debuggers or multiple instances of the same debugger.

Two or more debuggers can use the same J-Link / J-Trace simultaneously.

Configuring a debugger to work with a core in a multi-core environment does not require special settings.

All that is required is proper setup of the scan chain for each debugger.

This enables J-Link / J-Trace to debug more than one core on a target at the same time.

The following figure shows a host, debugging two CPU cores with two instances of the same debugger.

Both debuggers share the same physical connection.

The core to debug is selected through the JTAG-settings as described below.

The picture below shows the configuration for the first CPU core on your target.

The following dialog box shows the configuration for the second ARM core on your target.

Example:

LPC43xx JTAG Debug Notes

The LPC43xx is a multi-core microcontroller implementing an ARM Cortex-M4 and one or two ARM Cortex-M0 cores.

All cores have access to the complete memory map.

The ARM Cortex-M4 is used as them main processor.

One ARM Cortex-M0core (M0APP) can be used as co-processor to off-load the ARM Cortex-M4 and to perform serial I/O tasks.

The other ARM Cortex-M0 core (M0SUB) - if available - is typically used to control the SGPIO and SPI peripherals.

This core (M0SUB) is connected through a bridge to the main Cortex-M4 processor.

1.7.1 ARM Cortex-M4 processor

The ARM Cortex-M4 CPU incorporates a 3-stage pipeline, uses a Harvard architecture with separate local instruction and data buses
as well as a third bus for peripherals, and includes an internal prefetch unit that supports speculative branching.

The ARM Cortex-M4 supports single-cycle digital signal processing and SIMD instructions.
A hardware floating-point processor is integrated in the core.

The processor includes an NVIC with up to 53 interrupts.

The ARM Cortex-M4 is implemented with a Memory Protection Unit supporting eight regions,
a hardware Floating Point Unit (FPU), debugging features, and a system tick timer.

1.7.2 ARM Cortex-M0 co-processors

The ARM Cortex-M0 is a general purpose, 32-bit microprocessor, which offers high performance and very low-power consumption.

The ARM Cortex-M0 co-processor uses a 3-stage pipeline von-Neumann architecture
and a small but powerful instruction set providing high-end processing hardware.

The co-processor incorporates an NVIC with up to 32 interrupts.

Both ARM Cortex-M0 <M0APP and M0SUB> cores are implemented in the same way supporting a 32-cycle multiplier and debug features.

A system tick timer is not included.

The ARM Cortex-M0APP processor is available on all LPC43xx parts.

The ARM Cortex-M0SUB subsystem core is only available on parts LPC4370.

The ARM Cortex-M4 processor is used after reset as the top-level system controller.

After power-up or wake-up from Deep power-down mode, the M0 core or cores remain in reset until the reset is released by software running on the M4 core.

Then, the M4 can communicate with one or both M0 cores through shared memory space and interrupts.

JTAG TAP Identification

Debug and trace functions are integrated into the ARM Cortex-M4.

Serial wire debug and trace functions are supported in addition to a standard JTAG debug and parallel trace functions.

The ARM Cortex-M4 is configured to support up to 8 breakpoints and 4 watch points.

The ARM Cortex-M0 coprocessor supports JTAG debug.

A standard ARM Cortex-compliant debugger can debug the ARM Cortex-M4 and the ARM Cortex-M0 cores separately or both cores simultaneously.

Remark: In order to debug the ARM Cortex-M0, release the M0 reset by software in the RGU block.

LPC4350_DebugCortexM4.JLinkScript

/*********************************************************************
* SEGGER MICROCONTROLLER GmbH & Co KG *
* Solutions for real time microcontroller applications *
**********************************************************************
* *
* (c) 2011 SEGGER Microcontroller GmbH & Co KG *
* *
* www.segger.com Support: support@segger.com *
* *
**********************************************************************
----------------------------------------------------------------------
Purpose : J-Link script file for NXP LPC4350 device.
The NXP LPC4350 is a Cortex-M4 based device which has an
additional Cortex-M0 core inside which can be enabled.
This script puts the M0 in the JTAG chain if necessary.
Releasing the M0 from reset etc. needs to be done on the debugger side.
---------------------------END-OF-HEADER------------------------------
*/ /*********************************************************************
*
* _StoreSelDP
*/
void _StoreSelDP(void) {
JTAG_StoreIR(0xA); // DPACC command
JTAG_StoreClocks();
} /*********************************************************************
*
* _StoreSelAP
*/
void _StoreSelAP(void) {
JTAG_StoreIR(0xB); // APACC command
JTAG_StoreClocks();
} /*********************************************************************
*
* _StoreTriggerReadAPDPReg
*
* Function description
* Triggers a read of an AP or DP register. Depends on the previous command (DPACC / APACC)
*/
int _StoreTriggerReadAPDPReg(unsigned int RegIndex) {
__int64 v; // We need 35 bits: 32 data, 2 bit addr, 1 bit RnW
int BitPosData;
//
// Write 35 bits (32 bits data, 2 bits addr, 1 bit RnW)
//
v = ;
v |= ; // 1 indicates read access
v |= (RegIndex << );
BitPosData = JTAG_StoreDR(v, );
JTAG_StoreClocks();
return BitPosData;
} /*********************************************************************
*
* _StoreWriteAPDPReg
*
* Function description
* Writes an AP or DP register. Depends on the previous command (DPACC / APACC)
*/
int _StoreWriteAPDPReg(unsigned int RegIndex, __int64 Data) {
__int64 v; // We need 35 bits: 32 data, 2 bit addr, 1 bit RnW
int BitPosData;
//
// Write 35 bits (32 bits data, 2 bits addr, 1 bit RnW)
//
v = ; // 0 indicates write access
v |= (RegIndex << );
v |= (Data << );
BitPosData = JTAG_StoreDR(v, );
JTAG_StoreClocks();
return BitPosData;
} /*********************************************************************
*
* InitTarget
*
* Function description
* Prepare LPC4350 for multi-core debugging
* On the LPC4350 after reset there is only a Cortex-M4 present,
* but it is possible to configure the device to also have a Cortex-M0 in the JTAG chain.
* This is what this script does.
*/
void InitTarget(void) {
int v;
int BitPos;
int Speed;
int ResetStatRegAddr;
int ResetCtrlregAddr;
int ResetBitPosition; Report("NXP LPC4350 (Cortex-M4+M0 core) J-Link script");
Speed = JTAG_Speed;
JTAG_Speed = ;
JTAG_Reset(); // Perform TAP reset and J-Link JTAG auto-detection
//
// This script is able to handle all three versions of the LPC4350 silicon
// 1st silicon: After power-up only the Cortex-M4 is in the JTAG chain, the Cortex-M0 needs to be added
// 2nd silicon: After power-up the Cortex-M4 and the Cortex-M0 are in the JTAG chain. The Cortex-M4 is shown twice (bug, will be fixed in 3rd silicon)
// 3rd silicon: After power-up the Cortex-M4 and the Cortex-M0 are in the JTAG chain.
//
if ((JTAG_TotalIRLen != ) && (JTAG_TotalIRLen != ) && (JTAG_TotalIRLen != )) {
MessageBox("This script is designed for working with only a LPC4350 in the JTAG chain.");
return ;
}
//
// If only the Cortex-M4 is in the chain, make sure that the Cortex-M0 is added
//
if (JTAG_TotalIRLen == ) {
JTAG_DRPre = ;
JTAG_DRPost = ;
JTAG_IRPre = ;
JTAG_IRPost = ;
JTAG_IRLen = ;
Report("J-Link script: Enabling Cortex-M0.");
_StoreSelDP();
_StoreWriteAPDPReg(, 0x50000020); // Power up debug port and system port
do {
BitPos = _StoreTriggerReadAPDPReg();
v = JTAG_GetU32(BitPos + );
} while((v & 0xF0000000) != 0xF0000000); // Wait until debug port and system port have been powered-up
_StoreWriteAPDPReg(, 0x00000000); // Select AHB-AP
_StoreSelAP();
_StoreWriteAPDPReg(, 0x23000012); // AHB-AP CSW: 32-bit accesses, Address increment enabled
//
// Enable the Cortex-M4 and Cortex-M0 in the JTAG chain
//
_StoreWriteAPDPReg(, 0x40043118); // AHB-AP TAR
_StoreWriteAPDPReg(, 0x00000060); // AHB-AP DRW
JTAG_WriteClocks();
_StoreSelDP();
JTAG_WriteClocks(); // Make sure all JTAG buffers are empty
JTAG_Reset();
if (JTAG_TotalIRLen != ) {
MessageBox("Error: Could not enable Cortex-M0.");
JTAG_Speed = Speed;
return ;
}
}
//
// Handle cases:
// 1st silicon: Cortex-M0 has been enabled
// 3rd silicon: Cortex-M0 is already enabled after power-up
//
if (JTAG_TotalIRLen == ) {
//
// Re-configure JTAG settings since we have 2 devices (Cortex-M4 and Cortex-M0 in the JTAG chain now)
// #0: Cortex-M4
// #1: Cortex-M0
// We want to talk to the Cortex-M4
//
Report("J-Link script: Cortex-M0 already enabled.");
JTAG_DRPre = ;
JTAG_DRPost = ;
JTAG_IRPre = ;
JTAG_IRPost = ;
JTAG_IRLen = ;
CPU=CORTEX_M4;
JTAG_SetDeviceId(, 0x4BA00477); // Device #0 is the Cortex-M4
JTAG_SetDeviceId(, 0x0BA01477); // Device #1 is the Cortex-M0
}
//
// Handle 2nd (buggy) silicon, which shows 3 devices in the JTAG chain
// #0: Cortex-M4
// #1: Cortex-M4 (not really present, bug in silicon)
// #2: Cortex-M0
// We want to talk to the Cortex-M4
//
if (JTAG_TotalIRLen == ) {
Report("J-Link script: Cortex-M0 already enabled.");
JTAG_DRPre = ;
JTAG_DRPost = ;
JTAG_IRPre = ;
JTAG_IRPost = ;
JTAG_IRLen = ;
CPU=CORTEX_M4;
JTAG_SetDeviceId(, 0x4BA00477); // Device #0 is the Cortex-M4
JTAG_SetDeviceId(, 0x0BA01477); // Device #1 is the Cortex-M4 with wrong ID. Only present on buggy silicon
JTAG_SetDeviceId(, 0x0BA01477); // Device #1 is the Cortex-M0
}
JTAG_WriteClocks();
JTAG_Speed = Speed;
}

LPC4350_DebugCortexM0.JLinkScript

/*********************************************************************
* SEGGER MICROCONTROLLER GmbH & Co KG *
* Solutions for real time microcontroller applications *
**********************************************************************
* *
* (c) 2011 SEGGER Microcontroller GmbH & Co KG *
* *
* www.segger.com Support: support@segger.com *
* *
**********************************************************************
----------------------------------------------------------------------
Purpose : J-Link script file for NXP LPC4350 device.
The NXP LPC4350 is a Cortex-M4 based device which has an
additional Cortex-M0 core inside which can be enabled.
This script is used to configure the J-Link to talk to the Cortex-M0 core.
This script assumes that LPC4350_DebugCortexM4.JLinkScript has already been executed before using this script file.
---------------------------END-OF-HEADER------------------------------
*/ /*********************************************************************
*
* ResetTarget
*
* Function description
* Do nothing. We can not reset the Cortex-M0 while debugging on it since
* It does not come out of reset automatically. So once if has been reset
* Only the M4 is able to get it out of the reset state.
*/
void ResetTarget(void) {
int Speed; Report("J-Link script: Performing reset sequence");
Speed = JTAG_Speed;
JTAG_Speed = ;
JTAG_WriteClocks();
JTAG_Speed = Speed;
} /*********************************************************************
*
* InitTarget
*
* Function description
* Select the Cortex-M0 as the device we want to debug
* If it is not already enabled we are done here, because configuration
* has to be done when setting up the Cortex-M4 debug session
*/
void InitTarget(void) {
int v;
int BitPos;
int Speed;
//
// This script is able to handle all three versions of the LPC4350 silicon
// 1st silicon: After power-up only the Cortex-M4 is in the JTAG chain, the Cortex-M0 needs to be added
// 2nd silicon: After power-up the Cortex-M4 and the Cortex-M0 are in the JTAG chain. The Cortex-M4 is shown twice (bug, will be fixed in 3rd silicon)
// 3rd silicon: After power-up the Cortex-M4 and the Cortex-M0 are in the JTAG chain.
//
Report("NXP LPC4350 (Cortex-M4+M0 core) J-Link script");
Speed = JTAG_Speed;
JTAG_Speed = ;
JTAG_Reset(); // Perform TAP reset and J-Link JTAG auto-detection
//
// Check if the Cortex-M0 is already enabled
// If not, we are done here
//
if ((JTAG_TotalIRLen != ) && (JTAG_TotalIRLen != )) {
MessageBox("LPC4350_DebugCortexM4.JLinkScript has to be executed prior to this script.");
JTAG_Speed = Speed;
return ;
}
//
// Configure the JTAG chain to talk to the LPC4350 Cortex-M0 core
//
if (JTAG_TotalIRLen == ) {
JTAG_DRPre = ;
JTAG_DRPost = ;
JTAG_IRPre = ;
JTAG_IRPost = ;
JTAG_IRLen = ;
JTAG_SetDeviceId(, 0x4BA00477); // Device #0 is the Cortex-M4
JTAG_SetDeviceId(, 0x0BA01477); // Device #1 is the Cortex-M0
} else {
JTAG_DRPre = ;
JTAG_DRPost = ;
JTAG_IRPre = ;
JTAG_IRPost = ;
JTAG_IRLen = ;
JTAG_SetDeviceId(, 0x4BA00477); // Device #0 is the Cortex-M4
JTAG_SetDeviceId(, 0x0BA01477); // Device #1 is the Cortex-M4 (only visible on buggy silicon)
JTAG_SetDeviceId(, 0x0BA01477); // Device #1 is the Cortex-M0
}
CPU=CORTEX_M0;
JTAG_Speed = Speed;
}

CREG5 control register

Use this register to disable the JTAG for the M4 main core and the M0 co-processors.

By default the JTAG access is enabled unless an AES key is programmed and the device is a secure device.

Remark: Disabling the JTAG can only be reversed by resetting the part through any available reset.

Table 99. CREG5 control register (CREG5, address 0x4004 3118) bit description

10 M0SUBTAPSEL JTAG debug disable for M0SUB co-processor. If this bit is set to 1, it can be changed to 0 only through a chip reset.

11 M4TAPSEL JTAG debug disable for M4 main processor. If this bit is set to 1, it can be changed to 0 only through a chip reset.

12 M0APPTAPSEL JTAG debug disable for M0APP co-processor. If this bit is set to 1, it can be changed to 0 only through a chip reset.

--------------------------------------------------------------------------------
// Power Up First J-Link Commander
--------------------------------------------------------------------------------
Info: TotalIRLen = , IRPrint = 0x0111
Info: Found Cortex-M4 r0p1, Little endian.
Info: FPUnit: code (BP) slots and literal slots
Info: CoreSight components:
Info: ROMTbl @ E00FF000
Info: ROMTbl []: FFF0F000, CID: B105E00D, PID: 000BB00C SCS
Info: ROMTbl []: FFF02000, CID: B105E00D, PID: 003BB002 DWT
Info: ROMTbl []: FFF03000, CID: B105E00D, PID: 002BB003 FPB
Info: ROMTbl []: FFF01000, CID: B105E00D, PID: 003BB001 ITM
Info: ROMTbl []: FFF41000, CID: B105900D, PID: 000BB9A1 TPIU
Info: ROMTbl []: FFF42000, CID: B105900D, PID: 000BB925 ETM
Found JTAG devices, Total IRLen = :
# Id: 0x4BA00477, IRLen: , IRPrint: 0x1, CoreSight JTAG-DP (ARM)
# Id: 0x0BA01477, IRLen: , IRPrint: 0x1, CoreSight JTAG-DP (ARM)
# Id: 0x0BA01477, IRLen: , IRPrint: 0x1, CoreSight JTAG-DP (ARM)
Cortex-M4 identified.
Target interface speed: kHz
J-Link>mem
=
J-Link>w4
Writing ->
J-Link>mem
=
J-Link>
--------------------------------------------------------------------------------
// Second J-Link Commander after w4 40043118 40000670
--------------------------------------------------------------------------------
Info: TotalIRLen = , IRPrint = 0x0011
Info: Found Cortex-M4 r0p1, Little endian.
Info: FPUnit: code (BP) slots and literal slots
Info: CoreSight components:
Info: ROMTbl @ E00FF000
Info: ROMTbl []: FFF0F000, CID: B105E00D, PID: 000BB00C SCS
Info: ROMTbl []: FFF02000, CID: B105E00D, PID: 003BB002 DWT
Info: ROMTbl []: FFF03000, CID: B105E00D, PID: 002BB003 FPB
Info: ROMTbl []: FFF01000, CID: B105E00D, PID: 003BB001 ITM
Info: ROMTbl []: FFF41000, CID: B105900D, PID: 000BB9A1 TPIU
Info: ROMTbl []: FFF42000, CID: B105900D, PID: 000BB925 ETM
Found JTAG devices, Total IRLen = :
# Id: 0x4BA00477, IRLen: , IRPrint: 0x1, CoreSight JTAG-DP (ARM)
# Id: 0x0BA01477, IRLen: , IRPrint: 0x1, CoreSight JTAG-DP (ARM)
Cortex-M4 identified.
Target interface speed: kHz
J-Link>mem
=
J-Link>w4
Writing ->
J-Link>mem
=
J-Link>
--------------------------------------------------------------------------------
// Third J-Link Commander after w4 40043118 40001670
--------------------------------------------------------------------------------
Info: TotalIRLen = , IRPrint = 0x01
Info: Found Cortex-M4 r0p1, Little endian.
Info: FPUnit: code (BP) slots and literal slots
Info: CoreSight components:
Info: ROMTbl @ E00FF000
Info: ROMTbl []: FFF0F000, CID: B105E00D, PID: 000BB00C SCS
Info: ROMTbl []: FFF02000, CID: B105E00D, PID: 003BB002 DWT
Info: ROMTbl []: FFF03000, CID: B105E00D, PID: 002BB003 FPB
Info: ROMTbl []: FFF01000, CID: B105E00D, PID: 003BB001 ITM
Info: ROMTbl []: FFF41000, CID: B105900D, PID: 000BB9A1 TPIU
Info: ROMTbl []: FFF42000, CID: B105900D, PID: 000BB925 ETM
Found JTAG device, Total IRLen = :
# Id: 0x4BA00477, IRLen: , IRPrint: 0x1, CoreSight JTAG-DP (ARM)
Cortex-M4 identified.
Target interface speed: kHz
J-Link>mem
=
J-Link>w4 40001E70
Writing 40001E70 ->
J-Link>
--------------------------------------------------------------------------------
// Fourth J-Link Commander after w4 40043118 40001E70
--------------------------------------------------------------------------------
No device found at all. Selecting JTAG as default target interface.
J-Link>r0
J-Link>r1
J-Link>
--------------------------------------------------------------------------------
// All JTAG TAPs are endabled again
--------------------------------------------------------------------------------
Info: TotalIRLen = , IRPrint = 0x0111
Info: Found Cortex-M4 r0p1, Little endian.
Info: FPUnit: code (BP) slots and literal slots
Info: CoreSight components:
Info: ROMTbl @ E00FF000
Info: ROMTbl []: FFF0F000, CID: B105E00D, PID: 000BB00C SCS
Info: ROMTbl []: FFF02000, CID: B105E00D, PID: 003BB002 DWT
Info: ROMTbl []: FFF03000, CID: B105E00D, PID: 002BB003 FPB
Info: ROMTbl []: FFF01000, CID: B105E00D, PID: 003BB001 ITM
Info: ROMTbl []: FFF41000, CID: B105900D, PID: 000BB9A1 TPIU
Info: ROMTbl []: FFF42000, CID: B105900D, PID: 000BB925 ETM
Found JTAG devices, Total IRLen = :
# Id: 0x4BA00477, IRLen: , IRPrint: 0x1, CoreSight JTAG-DP (ARM)
# Id: 0x0BA01477, IRLen: , IRPrint: 0x1, CoreSight JTAG-DP (ARM)
# Id: 0x0BA01477, IRLen: , IRPrint: 0x1, CoreSight JTAG-DP (ARM)
Cortex-M4 identified.
Target interface speed: kHz
//------------------------------------------------------------------------------
// Power Up First J-Link Commander
//------------------------------------------------------------------------------
Info: TotalIRLen = , IRPrint = 0x0111 <--- Device # : Device # : Device #
Info: Found Cortex-M4 r0p1, Little endian.
Info: FPUnit: code (BP) slots and literal slots
Info: CoreSight components:
Info: ROMTbl @ E00FF000
Info: ROMTbl []: FFF0F000, CID: B105E00D, PID: 000BB00C SCS
Info: ROMTbl []: FFF02000, CID: B105E00D, PID: 003BB002 DWT
Info: ROMTbl []: FFF03000, CID: B105E00D, PID: 002BB003 FPB
Info: ROMTbl []: FFF01000, CID: B105E00D, PID: 003BB001 ITM
Info: ROMTbl []: FFF41000, CID: B105900D, PID: 000BB9A1 TPIU
Info: ROMTbl []: FFF42000, CID: B105900D, PID: 000BB925 ETM
Found JTAG devices, Total IRLen = :
# Id: 0x4BA00477, IRLen: , IRPrint: 0x1, CoreSight JTAG-DP (ARM)
# Id: 0x0BA01477, IRLen: , IRPrint: 0x1, CoreSight JTAG-DP (ARM)
# Id: 0x0BA01477, IRLen: , IRPrint: 0x1, CoreSight JTAG-DP (ARM)
Cortex-M4 identified.
Target interface speed: kHz
J-Link>mem
=
J-Link>w4
Writing ->
J-Link>mem
=
J-Link>
//------------------------------------------------------------------------------
// Second J-Link Commander after w4 40043118 40000670
//------------------------------------------------------------------------------
Info: TotalIRLen = , IRPrint = 0x0011 <--- Device # : Device #
Info: Found Cortex-M4 r0p1, Little endian.
Info: FPUnit: code (BP) slots and literal slots
Info: CoreSight components:
Info: ROMTbl @ E00FF000
Info: ROMTbl []: FFF0F000, CID: B105E00D, PID: 000BB00C SCS
Info: ROMTbl []: FFF02000, CID: B105E00D, PID: 003BB002 DWT
Info: ROMTbl []: FFF03000, CID: B105E00D, PID: 002BB003 FPB
Info: ROMTbl []: FFF01000, CID: B105E00D, PID: 003BB001 ITM
Info: ROMTbl []: FFF41000, CID: B105900D, PID: 000BB9A1 TPIU
Info: ROMTbl []: FFF42000, CID: B105900D, PID: 000BB925 ETM
Found JTAG devices, Total IRLen = :
# Id: 0x4BA00477, IRLen: , IRPrint: 0x1, CoreSight JTAG-DP (ARM)
# Id: 0x0BA01477, IRLen: , IRPrint: 0x1, CoreSight JTAG-DP (ARM)
Cortex-M4 identified.
Target interface speed: kHz
J-Link>mem
=
J-Link>w4
Writing ->
J-Link>mem
=
J-Link>
//------------------------------------------------------------------------------
// Third J-Link Commander after w4 40043118 40001670
//------------------------------------------------------------------------------
Info: TotalIRLen = , IRPrint = 0x01 <--- Device #
Info: Found Cortex-M4 r0p1, Little endian.
Info: FPUnit: code (BP) slots and literal slots
Info: CoreSight components:
Info: ROMTbl @ E00FF000
Info: ROMTbl []: FFF0F000, CID: B105E00D, PID: 000BB00C SCS
Info: ROMTbl []: FFF02000, CID: B105E00D, PID: 003BB002 DWT
Info: ROMTbl []: FFF03000, CID: B105E00D, PID: 002BB003 FPB
Info: ROMTbl []: FFF01000, CID: B105E00D, PID: 003BB001 ITM
Info: ROMTbl []: FFF41000, CID: B105900D, PID: 000BB9A1 TPIU
Info: ROMTbl []: FFF42000, CID: B105900D, PID: 000BB925 ETM
Found JTAG device, Total IRLen = :
# Id: 0x4BA00477, IRLen: , IRPrint: 0x1, CoreSight JTAG-DP (ARM)
Cortex-M4 identified.
Target interface speed: kHz
J-Link>mem
=
J-Link>w4 40001E70
Writing 40001E70 ->
J-Link>
//------------------------------------------------------------------------------
// Fourth J-Link Commander after w4 40043118 40001E70
//------------------------------------------------------------------------------
Info: TotalIRLen = ?, IRPrint = 0x..
Info: TotalIRLen = ?, IRPrint = 0x..
No devices found on JTAG chain. Trying to find device on SWD.
Info: TotalIRLen = ?, IRPrint = 0x..
Info: TotalIRLen = ?, IRPrint = 0x..
No device found on SWD.
Trying to find device on FINE interface.
Info: TotalIRLen = ?, IRPrint = 0x..
Info: TotalIRLen = ?, IRPrint = 0x..
No device found on FINE interface.
Did not find any core.
Failed to identify target. Trying again with slow ( kHz) speed.
Info: TotalIRLen = ?, IRPrint = 0x..
Info: TotalIRLen = ?, IRPrint = 0x..
No devices found on JTAG chain. Trying to find device on SWD.
Info: TotalIRLen = ?, IRPrint = 0x..
Info: TotalIRLen = ?, IRPrint = 0x..
No device found on SWD.
Trying to find device on FINE interface.
Info: TotalIRLen = ?, IRPrint = 0x..
Info: TotalIRLen = ?, IRPrint = 0x..
No device found on FINE interface.
Did not find any core.
No device found at all. Selecting JTAG as default target interface.
J-Link>
J-Link>r0
J-Link>r1
J-Link>
//------------------------------------------------------------------------------
// All JTAG TAPs are endabled again
//------------------------------------------------------------------------------
Info: TotalIRLen = , IRPrint = 0x0111 <--- Device # : Device # : Device #
Info: Found Cortex-M4 r0p1, Little endian.
Info: FPUnit: code (BP) slots and literal slots
Info: CoreSight components:
Info: ROMTbl @ E00FF000
Info: ROMTbl []: FFF0F000, CID: B105E00D, PID: 000BB00C SCS
Info: ROMTbl []: FFF02000, CID: B105E00D, PID: 003BB002 DWT
Info: ROMTbl []: FFF03000, CID: B105E00D, PID: 002BB003 FPB
Info: ROMTbl []: FFF01000, CID: B105E00D, PID: 003BB001 ITM
Info: ROMTbl []: FFF41000, CID: B105900D, PID: 000BB9A1 TPIU
Info: ROMTbl []: FFF42000, CID: B105900D, PID: 000BB925 ETM
Found JTAG devices, Total IRLen = :
# Id: 0x4BA00477, IRLen: , IRPrint: 0x1, CoreSight JTAG-DP (ARM)
# Id: 0x0BA01477, IRLen: , IRPrint: 0x1, CoreSight JTAG-DP (ARM)
# Id: 0x0BA01477, IRLen: , IRPrint: 0x1, CoreSight JTAG-DP (ARM)
Cortex-M4 identified.
Target interface speed: kHz
//------------------------------------------------------------------------------
// Try to enable again but failed : 40001270 can not be changed to 40000270
//------------------------------------------------------------------------------
J-Link>w4
Writing ->
J-Link>mem
=
J-Link>
//------------------------------------------------------------------------------
Info: TotalIRLen = , IRPrint = 0x0011 <--- Device # : Device #
Info: Found Cortex-M4 r0p1, Little endian.
Info: FPUnit: code (BP) slots and literal slots
Info: CoreSight components:
Info: ROMTbl @ E00FF000
Info: ROMTbl []: FFF0F000, CID: B105E00D, PID: 000BB00C SCS
Info: ROMTbl []: FFF02000, CID: B105E00D, PID: 003BB002 DWT
Info: ROMTbl []: FFF03000, CID: B105E00D, PID: 002BB003 FPB
Info: ROMTbl []: FFF01000, CID: B105E00D, PID: 003BB001 ITM
Info: ROMTbl []: FFF41000, CID: B105900D, PID: 000BB9A1 TPIU
Info: ROMTbl []: FFF42000, CID: B105900D, PID: 000BB925 ETM
Found JTAG devices, Total IRLen = :
# Id: 0x4BA00477, IRLen: , IRPrint: 0x1, CoreSight JTAG-DP (ARM)
# Id: 0x0BA01477, IRLen: , IRPrint: 0x1, CoreSight JTAG-DP (ARM)
Cortex-M4 identified.
Target interface speed: kHz
J-Link>mem
=
//------------------------------------------------------------------------------

LPC43xx Dual-core or Multi-core configuration and JLink Debug的更多相关文章

  1. NET Core开发-读取配置文件Configuration

    ASP.NET Core开发-读取配置文件Configuration   ASP.NET Core 是如何读取配置文件,今天我们来学习. ASP.NET Core的配置系统已经和之前版本的ASP.NE ...

  2. Aso.Net Core 的配置系统Configuration

    目录 Aso.Net Core 的配置系统Configuration 01.Json文件的弱类型方式读取 02.Json文件的强类型获取方式 Aso.Net Core 的配置系统Configurati ...

  3. ABP 教程文档 1-1 手把手引进门之 ASP.NET Core & Entity Framework Core(官方教程翻译版 版本3.2.5)

    本文是ABP官方文档翻译版,翻译基于 3.2.5 版本 官方文档分四部分 一. 教程文档 二.ABP 框架 三.zero 模块 四.其他(中文翻译资源) 本篇是第一部分的第一篇. 第一部分分三篇 1- ...

  4. ASP.NET Core 入门教程 8、ASP.NET Core + Entity Framework Core 数据访问入门

    一.前言 1.本教程主要内容 ASP.NET Core MVC 集成 EF Core 介绍&操作步骤 ASP.NET Core MVC 使用 EF Core + Linq to Entity ...

  5. .net core webapi+EF Core

    .net core webapi+EF Core 一.描述: EF Core必须下载.net core2.0版本 Micorsoft.EntityFrameworkCore:EF框架的核心包Micor ...

  6. NET Core & Entity Framework Core

    ABP 教程文档 1-1 手把手引进门之 ASP.NET Core & Entity Framework Core(官方教程翻译版 版本3.2.5)   本文是ABP官方文档翻译版,翻译基于 ...

  7. ASP.NET CORE 使用 EF CORE访问数据库

    asp.net core通过ef core来访问数据库,这里用的是代码优先,通过迁移来同步数据库与模型. 环境:vs2017,win10,asp.net core 2.1 一.从建立asp.net c ...

  8. ASP.NET Core 入门笔记9,ASP.NET Core + Entity Framework Core 数据访问入门

    一.前言 1.本教程主要内容 ASP.NET Core MVC 集成 EF Core 介绍&操作步骤 ASP.NET Core MVC 使用 EF Core + Linq to Entity ...

  9. .NET 5/.NET Core使用EF Core 5连接MySQL数据库写入/读取数据示例教程

    本文首发于<.NET 5/.NET Core使用EF Core 5(Entity Framework Core)连接MySQL数据库写入/读取数据示例教程> 前言 在.NET Core/. ...

随机推荐

  1. PHP-redis中文文档-命令

    关于redis of php的安装,详见自己的为知笔记,其中包含: 1.php版本的redis的安装 2.redis的使用方法 3.redis带conf文件的启动 这里介绍redis的命令,php版本 ...

  2. 关于Plupload结合上传插件jquery.plupload.queue的使用

    之前使用过很多的上传组件,但对各种浏览器的兼容性太差,不得不放弃!! plupload 是款很强大的上传组件,不得不推荐.plupload 前端根据浏览器不同选择使用Html5. Gears, Sil ...

  3. vim不用鼠标复制粘贴

    第一种方法(只能复制行): 在当前行3yy(表示复制3行,多行同理),然后鼠标移到需要粘贴的位置,按p,即可粘贴 第二种方法(无限制): 按v进入visual模式,移动光标(推荐使用hjkl,用熟后比 ...

  4. android4.3 Bluetooth(le)分析之startLeScan分析

    BluetoothAdapter.java中有low enery(le)的一些方法,android提供了这些方法,但源码中并未找到这些方法的调用之处.本文档主要分析这类方法的执行流程,来了解下le到底 ...

  5. ViewPager 仿 Gallery效果

    xml: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android ...

  6. 文件过滤器 filter

    OpenFileDialog对话框的Filter属性说明: 首先说明一个示例,分析一下Filter属性的构成:“ Excel文件|*.xls ”,前面的“Excel文件”成为标签,是一个可读的字符串, ...

  7. XML文件与实体类的互相转换

    XML文件与实体类的互相转换 一.将XML文件反序列化为实体类对象 1. 通常程序的配置信息都保存在程序或者网站的专门的配置文件中(App.config/web.config).但是现在为了演示XML ...

  8. React Native填坑之旅--LayoutAnimation篇

    比较精细的动画可以用Animated来控制.但是,在一些简单的界面切换.更新的时候所做的动画里再去计算开始值.结束值和插值器如何运作绝对是浪费时间. RN正好给我们提供了LayoutAnimation ...

  9. 解决hibernate中的懒加载(延迟加载)问题

    解决hibernate中的懒加载(延迟加载)问题   我们在开发的时候经常会遇到延迟加载问题,在实体映射时,多对一和多对多中,多的一样的属性默认是lazy="true"(即,默认是 ...

  10. 4.2.1 网络请求之HTTP

    HTTP请求&响应:(常用的只有Post与Get,还有Head/put/delete/connect/options/trace) Get&Post(建议用post规范参数传递方式,并 ...