"TRACE32 DXCPL"의 두 판 사이의 차이
1번째 줄: | 1번째 줄: | ||
− | <h2 | + | <h2>Overview</h2> |
− | <p | + | <p>DXCPL은 JTAG/DAP 인터페이스를 활용하지 못하는 실차 환경에서 TRACE32를 하여 디버깅 할 수 있는 솔루션입니다. 인피니언 AURIX MCU에서 지원하는 DXCPL(Dap Over Can Physical Layer)을 통해 TRACE32의 모든 기능을 활용할 수 있습니다.</p> |
− | + | <p>본 자료는 JTAG/DAP port를 연결 하기 어려운 실차환경에서 DXCPL(DAP over CAN Physical Layer)을 사용하기 위한 환경 구성 방법에 대해 소개 합니다.</p> | |
− | <h3 | + | <h3>사용환경</h3> |
− | < | + | <h3>DXCPL 사용위해 필요한 환경은 다음과 같습니다..</h3> |
− | + | ||
<div> | <div> | ||
<table border="1" cellspacing="0" cellpadding="0"> | <table border="1" cellspacing="0" cellpadding="0"> | ||
10번째 줄: | 9번째 줄: | ||
<tr> | <tr> | ||
<td width="235" valign="top"> | <td width="235" valign="top"> | ||
− | <p | + | <p>CPU</p> |
</td> | </td> | ||
<td width="304" valign="top"> | <td width="304" valign="top"> | ||
− | <p | + | <p>Infineon사의 AUTO MAX, AURIX families</p> |
</td> | </td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td width="235" valign="top"> | <td width="235" valign="top"> | ||
− | <p | + | <p>TRACE32 <strong>PowerView</strong> version</p> |
</td> | </td> | ||
<td width="304" valign="top"> | <td width="304" valign="top"> | ||
− | <p | + | <p>Tricore 2015.03 이상 버전</p> |
</td> | </td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td width="235" valign="top"> | <td width="235" valign="top"> | ||
− | <p | + | <p>TRACE32 <strong>ICD</strong>(In Circuit Debugger)</p> |
− | <p | + | <p>= PDMU(Power Debug Modue)</p> |
</td> | </td> | ||
<td width="304" valign="top"> | <td width="304" valign="top"> | ||
− | <p | + | <p>PowerDebug USB2</p> |
− | <p | + | <p>PowerDebug USB3</p> |
− | <p | + | <p>PowerDebug II</p> |
</td> | </td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td width="235" valign="top"> | <td width="235" valign="top"> | ||
− | <p | + | <p>TRACE32 License Module</p> |
</td> | </td> | ||
<td width="304" valign="top"> | <td width="304" valign="top"> | ||
− | <p | + | <p>Tricore JTAG cable</p> |
</td> | </td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td width="235" valign="top"> | <td width="235" valign="top"> | ||
− | <p | + | <p>Extended Adapter</p> |
</td> | </td> | ||
<td width="304" valign="top"> | <td width="304" valign="top"> | ||
− | <p | + | <p><strong>DXCPL Box </strong></p> |
</td> | </td> | ||
</tr> | </tr> | ||
54번째 줄: | 53번째 줄: | ||
</table> | </table> | ||
</div> | </div> | ||
− | <p> | + | <p>l PowerView : PC에서 동작하는 Trace32 Software GUI 개발환경의 이름입니다.</p> |
− | <p> | + | <p>l PowerDebug Module : PC와 통신 및 디버그 인터페이스 신호을 만들어 내는 본체를 통틀어 지칭하는 이름입니다.</p> |
− | <p> | + | <p>l License Module : JTAG License Cable이라고도 하며 License 정보를 가지고 있으며 Target과 연결하기 위해 Cable을 포함하고 있는 삼각형 형태의 모듈</p> |
− | <p> | + | <p>l DXCPL Box : TRACE32 Podbus Out port에 연결하여 CAN Interface를 이용한 디버깅이 가능하도록 합니다.</p> |
<p> </p> | <p> </p> | ||
− | + | <p><strong>< DXCPL BOX ></strong></p> | |
− | <p | + | <h3>DXCPL 작동원리</h3> |
− | + | ||
− | < | + | |
− | + | ||
<p> </p> | <p> </p> | ||
− | < | + | <p><strong>< DXCPL Block Diagram from CAN Pins to DAP Module ></strong></p> |
− | <p>< | + | <p>DXCPL은 CAN 버스를 이용하여 동작합니다. 디버깅을 위해 사용하던 DAP(DAP0, DAP1) signal 대신 CAN(TX, RX) Signal을 이용할 수 있도록 전환시켜줍니다. 이는 CPU의 TRST pin의 상태에 따라 컨트롤 가능합니다. TRST pin의 상태에 대해서는 1.3절의 <strong><표 1></strong>를 참고하시기 바랍니다.</p> |
+ | <p><strong>DXCPL</strong><strong>을 사용하게 되면 DAP Interface를 이용한 디버깅은 불가능 하며, 해당 CAN bus는 DXCPL mode로만 동작 하여 동시에 다른 용도로는 이용할 수 없습니다.</strong></p> | ||
+ | <p>DXCPL을 사용하기 위한 별도의 target SW instumentation은 필요 없습니다.</p> | ||
+ | <p> </p> | ||
+ | <h3>DXCPL 사용위한 HW 설정</h3> | ||
+ | <p>DXCPL 인터페이스는 CPU의 TRST pin에 의해 컨트롤 됩니다. 만약 pull-up 저항이 연결되어 있을 경우 DAP Interface를 이용한 디버깅이 가능하고, pull-down 저항이 연결되어 있을 경우 DXCPL을 이용한 디버깅이 가능합니다.</p> | ||
<div> | <div> | ||
<table border="1" cellspacing="0" cellpadding="0"> | <table border="1" cellspacing="0" cellpadding="0"> | ||
72번째 줄: | 73번째 줄: | ||
<tr> | <tr> | ||
<td width="166" valign="top"> | <td width="166" valign="top"> | ||
− | <p | + | <p>TRST pin state</p> |
</td> | </td> | ||
<td width="166" valign="top"> | <td width="166" valign="top"> | ||
− | <p | + | <p>Floating</p> |
</td> | </td> | ||
<td width="166" valign="top"> | <td width="166" valign="top"> | ||
− | <p | + | <p>Pull-Up</p> |
</td> | </td> | ||
<td width="166" valign="top"> | <td width="166" valign="top"> | ||
− | <p | + | <p><strong>Pull-Down</strong></p> |
</td> | </td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td width="166" valign="top"> | <td width="166" valign="top"> | ||
− | <p | + | <p>DAP Interface</p> |
</td> | </td> | ||
<td width="166" valign="top"> | <td width="166" valign="top"> | ||
− | <p | + | <p>X</p> |
</td> | </td> | ||
<td width="166" valign="top"> | <td width="166" valign="top"> | ||
− | <p | + | <p>O</p> |
</td> | </td> | ||
<td width="166" valign="top"> | <td width="166" valign="top"> | ||
− | <p | + | <p>X</p> |
</td> | </td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td width="166" valign="top"> | <td width="166" valign="top"> | ||
− | <p | + | <p>DXCPL Interface</p> |
</td> | </td> | ||
<td width="166" valign="top"> | <td width="166" valign="top"> | ||
− | <p | + | <p>X</p> |
</td> | </td> | ||
<td width="166" valign="top"> | <td width="166" valign="top"> | ||
− | <p | + | <p>X</p> |
</td> | </td> | ||
<td width="166" valign="top"> | <td width="166" valign="top"> | ||
− | <p>< | + | <p><strong>O</strong></p> |
+ | </td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td width="166" valign="top"> | ||
+ | <p>JTAG Interface</p> | ||
+ | </td> | ||
+ | <td width="166" valign="top"> | ||
+ | <p>O</p> | ||
+ | </td> | ||
+ | <td width="166" valign="top"> | ||
+ | <p>O</p> | ||
+ | </td> | ||
+ | <td width="166" valign="top"> | ||
+ | <p>O</p> | ||
</td> | </td> | ||
</tr> | </tr> | ||
115번째 줄: | 130번째 줄: | ||
</table> | </table> | ||
</div> | </div> | ||
− | <p | + | <p><strong>< </strong><strong>표 1. TRST pin 상태에 따른 DXCPL 사용 유무 ></strong></p> |
− | <p>< | + | <h2> </h2> |
+ | <p><strong><br /> </strong></p> | ||
+ | <h3>DXCPL 연결</h3> | ||
+ | <p>DXCPL Interface 사용 준비가 완료되었으면 CAN pin에 DXCPL Box를 연결하여 사용 가능합니다. CPU마다 사용 위한 CAN port는 다르기에 아래 표를 참고 바랍니다.</p> | ||
<div> | <div> | ||
<table border="1" cellspacing="0" cellpadding="0"> | <table border="1" cellspacing="0" cellpadding="0"> | ||
125번째 줄: | 143번째 줄: | ||
</td> | </td> | ||
<td width="166" valign="top"> | <td width="166" valign="top"> | ||
− | <p | + | <p>CAN 채널</p> |
</td> | </td> | ||
<td width="166" valign="top"> | <td width="166" valign="top"> | ||
− | <p | + | <p>Pin number</p> |
</td> | </td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td width="166"> | <td width="166"> | ||
− | <p | + | <p>AUDO MAX</p> |
</td> | </td> | ||
<td width="166"> | <td width="166"> | ||
− | <p | + | <p>RXDCAN0</p> |
− | <p | + | <p>TXDCAN0</p> |
</td> | </td> | ||
<td width="166"> | <td width="166"> | ||
− | <p | + | <p>TC172x: P3.12, P3.13</p> |
− | <p | + | <p>TC179x: P6.8, P6.9</p> |
</td> | </td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td width="166"> | <td width="166"> | ||
− | <p | + | <p>AURIX</p> |
</td> | </td> | ||
<td width="166"> | <td width="166"> | ||
− | <p | + | <p>RXDCAN1B</p> |
− | <p | + | <p>TXDCAN1</p> |
</td> | </td> | ||
<td width="166"> | <td width="166"> | ||
− | <p | + | <p>P14.1, P14.0</p> |
</td> | </td> | ||
</tr> | </tr> | ||
159번째 줄: | 177번째 줄: | ||
</table> | </table> | ||
</div> | </div> | ||
− | <p | + | <p><strong>< </strong><strong>표 2. DXCPL 사용위한 CAN port ></strong></p> |
− | < | + | <p><strong>< TRACE32 DXCPL</strong><strong>과 Can port 연결 ></strong></p> |
− | <p> | + | <p>DXCPL과 타겟 연결은 타겟의 Can Tranceiver 이후 bus에 연결되며, 타겟 환경에 따라 Termination 처리가 필요한 경우 탈 부착 가능한 SUB-D9 컨넥터(with CAN Termination)를 제공합니다.</p> |
<p> </p> | <p> </p> | ||
− | < | + | <p><strong>< SUB-D9 Connector with CAN Termination ></strong></p> |
− | <p>< | + | <p><strong><br /> </strong></p> |
− | <p> | + | <h2>How to setup & use</h2> |
− | <p | + | <p>여기서는 Trace32를 이용하여 DXCPL 사용위한 환경 셋업에 대해 알아 봅니다.</p> |
+ | <p> </p> | ||
+ | <h3>DXCPL 환경설정 on TRACE32</h3> | ||
+ | <p>1) TRACE32 PowerView SW를 2015년 3월 이후 버전으로 패치 합니다.</p> | ||
+ | <p> </p> | ||
+ | <p>2) 기존 사용중인 Flash Programming 용 cmm 파일(ex, C:\T32\demo\tricore\flash\tc27x.cmm)의 CPU 환경설정 부분에 아래와 같은 내용으로 대체 합니다.</p> | ||
<table border="1" cellspacing="0" cellpadding="0"> | <table border="1" cellspacing="0" cellpadding="0"> | ||
<tbody> | <tbody> | ||
<tr> | <tr> | ||
<td width="657" valign="top"> | <td width="657" valign="top"> | ||
− | <p | + | <p>RESet</p> |
− | <p | + | <p> SYStem.CPU TC275TF</p> |
− | <p | + | <p> SYStem.CONFIG.DEBUGPORTTYPE DXCPL</p> |
− | <p | + | <p> SYStem.CONFIG.DAP DXCPLTiming 750.ns</p> |
− | <p | + | <p> SYStem.Mode Attach</p> |
− | <p | + | <p> Break</p> |
− | <p | + | <p> Break.Set 0xA0000020 /Program /Onchip // set breakpoint at reset vector</p> |
− | <p | + | <p> Go</p> |
− | <p | + | <p> SYStem.Mode Down</p> |
<p> </p> | <p> </p> | ||
− | <p | + | <p> DIALOG.OK "Please switch OFF the target"</p> |
<p> </p> | <p> </p> | ||
− | <p | + | <p> SYStem.Mode StandBy</p> |
<p> </p> | <p> </p> | ||
− | <p | + | <p> DIALOG.OK "Please switch ON the target"</p> |
<p> </p> | <p> </p> | ||
− | <p | + | <p> if state.run()</p> |
− | <p | + | <p> (</p> |
− | <p | + | <p> print %error "Application not stoped at reset vector"</p> |
− | <p | + | <p> break</p> |
− | <p | + | <p> )</p> |
</td> | </td> | ||
</tr> | </tr> | ||
</tbody> | </tbody> | ||
</table> | </table> | ||
− | <h3 | + | <h3>DXCPL을 이용한 디버깅</h3> |
− | <p | + | <p>1) 위의 cmm파일의 수정한 내용을 이용하면 CAN bus를 이용하여 디버그 모드에 정상적으로 진입이 됩니다.</p> |
− | <p> | + | <p> </p> |
− | <p | + | <p>2) 디버그 모드에 진입이 되면 Flash Programming을 포함한 기존에 사용하시던 TRACE32의 모든 기능을 동일하게 사용 가능합니다.</p> |
− | < | + | <p><strong><br /> </strong></p> |
+ | <h2>Deactivation DXCPL</h2> | ||
+ | <h3>Hardware를 이용한 locking</h3> | ||
+ | <p>Hardware적으로 DXCPL을 disable 하려면 TRST pin을 pull-up처리 하면 됩니다.</p> | ||
+ | <h3>Software를 이용한 locking</h3> | ||
+ | <p>Program Memory Unit중 Flash OTP-section의 PROCONWOPp.DATM field를 1로 write하면 영구적으로 DXCPL을 disable 처리 할 수 있습니다.</p> | ||
+ | <p> </p> | ||
+ | <p> </p> | ||
+ | <p> </p> | ||
+ | <p>타겟 SW에서 동적으로 SYSCON.DATM레지스터를 1로 write하여 임시적으로 DXCPL을 disable 처리 할 수 있습니다. 리셋 이후에는 초기값으로 설정 됩니다.</p> | ||
+ | <p> </p> | ||
+ | <p> </p> |
2015년 12월 30일 (수) 09:57 판
목차
Overview
DXCPL은 JTAG/DAP 인터페이스를 활용하지 못하는 실차 환경에서 TRACE32를 하여 디버깅 할 수 있는 솔루션입니다. 인피니언 AURIX MCU에서 지원하는 DXCPL(Dap Over Can Physical Layer)을 통해 TRACE32의 모든 기능을 활용할 수 있습니다.
본 자료는 JTAG/DAP port를 연결 하기 어려운 실차환경에서 DXCPL(DAP over CAN Physical Layer)을 사용하기 위한 환경 구성 방법에 대해 소개 합니다.
사용환경
DXCPL 사용위해 필요한 환경은 다음과 같습니다..
CPU |
Infineon사의 AUTO MAX, AURIX families |
TRACE32 PowerView version |
Tricore 2015.03 이상 버전 |
TRACE32 ICD(In Circuit Debugger) = PDMU(Power Debug Modue) |
PowerDebug USB2 PowerDebug USB3 PowerDebug II |
TRACE32 License Module |
Tricore JTAG cable |
Extended Adapter |
DXCPL Box |
l PowerView : PC에서 동작하는 Trace32 Software GUI 개발환경의 이름입니다.
l PowerDebug Module : PC와 통신 및 디버그 인터페이스 신호을 만들어 내는 본체를 통틀어 지칭하는 이름입니다.
l License Module : JTAG License Cable이라고도 하며 License 정보를 가지고 있으며 Target과 연결하기 위해 Cable을 포함하고 있는 삼각형 형태의 모듈
l DXCPL Box : TRACE32 Podbus Out port에 연결하여 CAN Interface를 이용한 디버깅이 가능하도록 합니다.
< DXCPL BOX >
DXCPL 작동원리
< DXCPL Block Diagram from CAN Pins to DAP Module >
DXCPL은 CAN 버스를 이용하여 동작합니다. 디버깅을 위해 사용하던 DAP(DAP0, DAP1) signal 대신 CAN(TX, RX) Signal을 이용할 수 있도록 전환시켜줍니다. 이는 CPU의 TRST pin의 상태에 따라 컨트롤 가능합니다. TRST pin의 상태에 대해서는 1.3절의 <표 1>를 참고하시기 바랍니다.
DXCPL을 사용하게 되면 DAP Interface를 이용한 디버깅은 불가능 하며, 해당 CAN bus는 DXCPL mode로만 동작 하여 동시에 다른 용도로는 이용할 수 없습니다.
DXCPL을 사용하기 위한 별도의 target SW instumentation은 필요 없습니다.
DXCPL 사용위한 HW 설정
DXCPL 인터페이스는 CPU의 TRST pin에 의해 컨트롤 됩니다. 만약 pull-up 저항이 연결되어 있을 경우 DAP Interface를 이용한 디버깅이 가능하고, pull-down 저항이 연결되어 있을 경우 DXCPL을 이용한 디버깅이 가능합니다.
TRST pin state |
Floating |
Pull-Up |
Pull-Down |
DAP Interface |
X |
O |
X |
DXCPL Interface |
X |
X |
O |
JTAG Interface |
O |
O |
O |
< 표 1. TRST pin 상태에 따른 DXCPL 사용 유무 >
DXCPL 연결
DXCPL Interface 사용 준비가 완료되었으면 CAN pin에 DXCPL Box를 연결하여 사용 가능합니다. CPU마다 사용 위한 CAN port는 다르기에 아래 표를 참고 바랍니다.
|
CAN 채널 |
Pin number |
AUDO MAX |
RXDCAN0 TXDCAN0 |
TC172x: P3.12, P3.13 TC179x: P6.8, P6.9 |
AURIX |
RXDCAN1B TXDCAN1 |
P14.1, P14.0 |
< 표 2. DXCPL 사용위한 CAN port >
< TRACE32 DXCPL과 Can port 연결 >
DXCPL과 타겟 연결은 타겟의 Can Tranceiver 이후 bus에 연결되며, 타겟 환경에 따라 Termination 처리가 필요한 경우 탈 부착 가능한 SUB-D9 컨넥터(with CAN Termination)를 제공합니다.
< SUB-D9 Connector with CAN Termination >
How to setup & use
여기서는 Trace32를 이용하여 DXCPL 사용위한 환경 셋업에 대해 알아 봅니다.
DXCPL 환경설정 on TRACE32
1) TRACE32 PowerView SW를 2015년 3월 이후 버전으로 패치 합니다.
2) 기존 사용중인 Flash Programming 용 cmm 파일(ex, C:\T32\demo\tricore\flash\tc27x.cmm)의 CPU 환경설정 부분에 아래와 같은 내용으로 대체 합니다.
RESet SYStem.CPU TC275TF SYStem.CONFIG.DEBUGPORTTYPE DXCPL SYStem.CONFIG.DAP DXCPLTiming 750.ns SYStem.Mode Attach Break Break.Set 0xA0000020 /Program /Onchip // set breakpoint at reset vector Go SYStem.Mode Down
DIALOG.OK "Please switch OFF the target"
SYStem.Mode StandBy
DIALOG.OK "Please switch ON the target"
if state.run() ( print %error "Application not stoped at reset vector" break ) |
DXCPL을 이용한 디버깅
1) 위의 cmm파일의 수정한 내용을 이용하면 CAN bus를 이용하여 디버그 모드에 정상적으로 진입이 됩니다.
2) 디버그 모드에 진입이 되면 Flash Programming을 포함한 기존에 사용하시던 TRACE32의 모든 기능을 동일하게 사용 가능합니다.
Deactivation DXCPL
Hardware를 이용한 locking
Hardware적으로 DXCPL을 disable 하려면 TRST pin을 pull-up처리 하면 됩니다.
Software를 이용한 locking
Program Memory Unit중 Flash OTP-section의 PROCONWOPp.DATM field를 1로 write하면 영구적으로 DXCPL을 disable 처리 할 수 있습니다.
타겟 SW에서 동적으로 SYSCON.DATM레지스터를 1로 write하여 임시적으로 DXCPL을 disable 처리 할 수 있습니다. 리셋 이후에는 초기값으로 설정 됩니다.