"TRACE32 DXCPL"의 두 판 사이의 차이

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