JTAG 체인에서 첫 번째가 아닌 ARM 코어 디버깅

기술노트 17681

아키텍처:

ARM

컴포넌트:

debugger

업데이트:

2018-02-28 오전 1:56

Introduction

This Technical Note shows how to configure a JTAG connection so that ARM devices which are not first in the JTAG chain can be reached (using a J-Link debug probe).

Background

There are two documents which applies in this situation:

  • The arm\doc\JLink_J-TraceARM.pdf in chapter 'multicore debugging' and 'Multiple devices in the scan chain' documents the basic details for settings.
  • The \arm\doc\infocenter\csarmjlink.ENU.htm shows a figure (under the heading 'Miscellaneous' how the JTAG chain must be built in order for the devices to be able to debug:

Advanced settings to solve the problem

The settings must be set so that correct TAP number and correct number of preceding bits will be used.

Step by step description

  • Connect your board to the J-Link, and connect the J-Link to your computer.
  • Start the utility arm\bin\jlink.exe and scroll until you can read information about JTAG devices. .
    An example (the board has 2 STM32 devices) is:
  • Found 4 JTAG devices, Total IRLen = 18:
    #0 Id: 0x3BA00477, IRLen: 4, IRPrint: 0x1 Cortex-M3 Core
    #1 Id: 0x06412041, IRLen: 5, IRPrint: 0x1 STM32 Boundary Scan
    #2 Id: 0x3BA00477, IRLen: 4, IRPrint: 0x1 Cortex-M3 Core
    #3 Id: 0x06412041, IRLen: 5, IRPrint: 0x1 STM32 Boundary Scan
    Cortex-M3 identified.
  • The unit you wish to connect to is the 'Coresight JTAG-DP at #2'. To find the preceding bits just count the bits that is listed before it, 4 for #1 (CoreSight JTAG-DP for 1:st device) and 5 for #2 (STM32 Boundary Scan for first device)
  • The options are set at Project > Options > J-Link/J-Trace > Connection
    • Enable the 'JTAG scan chain with multiple targets' option.
    • Specify the TAP number option as 2
    • Enable the 'Scan chain contains non-ARM devices' option.
    • Specify the number of IR bits before the ARM device to be debugged in the Preceding bits text field to 9. (Add together the 4 bits listed for TAP 0 and the 5 bits listed for TAP 1.)

Examples of number of JTAG devices, TAP numbers and number of preceding bits

Here follows 4 examples each showing the scan for JTAG-devices performed on a single ARM-device, that is the ARM-device contains an ARM-core and also contains other parts (here 0 to 2) that also are JTAG-devices.

Found 3 JTAG devices, Total IRLen = 17:
#0 Id: 0x04570041, IRLen: 08, IRPrint: 0x29, STR9 Flash
#1 Id: 0x25966041, IRLen: 04, IRPrint: 0x1, ARM966E-S Core
#2 Id: 0x1457F041, IRLen: 05, IRPrint: 0x1, STR9 Boundary Scan
Found ARM with core Id 0x25966041 (ARM9)
Found 1 JTAG device, Total IRLen = 4:
#0 Id: 0x4BA00477, IRLen: 04, IRPrint: 0x1, CoreSight JTAG-DP (ARM)
Cortex-M3 identified.
Found 2 JTAG devices, Total IRLen = 9:
#0 Id: 0x3BA00477, IRLen: 04, IRPrint: 0x1, CoreSight JTAG-DP (ARM)
#1 Id: 0x06418041, IRLen: 05, IRPrint: 0x1, STM32 Boundary Scan
Cortex-M3 identified.
Found 1 JTAG device, Total IRLen = 4:
#0 Id: 0x3F0F0F0F, IRLen: 04, IRPrint: 0x1, ARM7TDMI Core
Found ARM with core Id 0x3F0F0F0F (ARM7)

Troubleshooting

It is important to choose a "reset strategy" that do not perform the reset through the TRST, as that will reset all cores.

Core suggested reset do not reset with
Cortex Core reset Normal reset
ARM 7/9 Software all where TRST is involved                                                                                     

 

All product names are trademarks or registered trademarks of their respective owners.

죄송하지만, 당사 사이트에서는 Internet Explorer를 지원하지 않습니다.보다 편안한 사이트를 위해 Chrome, Edge, Firefox 등과 같은 최신 브라우저를 사용해 주시길 부탁드립니다.