Debugging an ARM core which is not 1st on JTAG chain

기술노트 17681

아키텍처:

ARM

컴포넌트:

debugger

업데이트:

2021-05-20 오후 2:49

소개

본 기술 노트에서 JTAG chain에 첫 번째에 있지 않은 ARM 장치에 연결할 수 있도록 JTAG 연결을 설정하는 방법에 대해 기술합니다. (J-Link 디버그 프로브를 사용)

배경지식

이러한 상황에 적용할 수 있는 두 개의 문서가 있습니다.:

  • arm\doc\JLink_J-TraceARM.pdf 의 'multicore debugging'와 'Multiple devices in the scan chain' 챕터에 셋팅에 대한 기본적인 내용이 기술되어 있습니다.
  • \arm\doc\infocenter\csarmjlink.ENU.htm ('Miscellaneous' 제목 아래) 장치가 디버깅하기 위해 JTAG체인을 빌드하는 방법에 대해 기술합니다.

문제 해결을 위한 고급 설정

올바른 TAP 번호와 앞선 비트의 올바른 번호가 사용되도록 설정해야 합니다.

단계별 설명

  • 보드(board) J-Link에 연결하고, J-Link를 컴퓨터와 연결합니다.
  • arm\bin\jlink.exe 를 실행한 뒤 JTAG 장치에 대한 정보를 읽을 수 있을 때까지 스크롤 합니다.
    예제(board는 2개의 STM32장치를 가집니다)는 다음과 같습니다:
  • 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.
  • 연결하려는 장치는 'Coresight JTAG-DP at #2'입니다. 앞선 비트를 찾으려면 앞에 나열된 비트를 세기만 하면 됩니다, 4 for #1 (CoreSight JTAG-DP for 1:st device) 그리고 5 for #2 (STM32 Boundary Scan for first device)
  • Project > Options > J-Link/J-Trace > Connection 에서 옵션을 설정합니다.
    • 'JTAG scan chain with multiple targets' 옵션을 활성화 합니다.
    • TAP number 옵션을 2로 지정합니다.
    • 'Scan chain contains non-ARM devices' 옵션을 활성화 합니다.
    • 선행 비트 텍스트 필드에 ARM 장비가 디버그 되기 전에 IR 비트에 대한 번호를 9로 지정합니다. (TAP 0에 대해 나열된 4비트와 TAP 1에 대해 나열된 5비트를 함께 추가합니다.)

JTAG 장치 번호, TAP 번호, 선행 비트에 대한 번호의 예시

다음은 단일 ARM 장치에서 수행된 JTAG 장치의 스캔(scan) 결과를 보여주는 4가지의 예로, ARM 장치에는 ARM-core와 JTAG 장치인 다른 부품(여기서 0 ~ 2)도 포함되어 있다.

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)

문제해결

모든 코어를 재설정하는 TRST를 통해 리셋을 수행하지 않도록 "리셋 전략"("reset strategy")를 선택하는 것이 중요합니다.

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

 

모든 제품 이름은 해당 소유자의 상표 또는 등록 상표입니다.

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