"GTL setup for Emulator debug"의 두 판 사이의 차이

TRACE32
이동: 둘러보기, 검색
(새 문서: <h2>GTL Configuration</h2> <p>Emulator Debug 환경에서는 기본적으로 개발환경에 따라 다음 3가지 환경을 구성할 수 있습니다.</p> <p><span style="font-size:...)
 
1번째 줄: 1번째 줄:
 
<h2>GTL Configuration</h2>
 
<h2>GTL Configuration</h2>
 
<p>Emulator Debug 환경에서는 기본적으로 개발환경에 따라 다음 3가지 환경을 구성할 수 있습니다.</p>
 
<p>Emulator Debug 환경에서는 기본적으로 개발환경에 따라 다음 3가지 환경을 구성할 수 있습니다.</p>
<p><span style="font-size: large;">1) SMP 또는 Single core debugging 환경 : 아래 Configuration 1 참조</span></p>
+
<p><span style="font-size: large;">&nbsp; 1) SMP 또는 Single core debugging 환경 : 아래 Configuration 1 참조</span></p>
<p>&nbsp;- 가장 간단하며 Emulation Host와 TRACE32 PowerView가 같은 Host상에 위치합니다.</p>
+
<p>&nbsp; &nbsp; &nbsp;- 가장 간단하며 Emulation Host와 TRACE32 PowerView가 같은 Host상에 위치합니다.</p>
<p><span style="font-size: large;">2) AMP &nbsp;debugging 환경 : 아래 Configuration 2 참조</span></p>
+
<p><span style="font-size: large;">&nbsp; 2) AMP &nbsp;debugging 환경 : 아래 Configuration 2 참조</span></p>
<p>&nbsp;- Emulation Host와 TRACE32 PowerView가 같은 Host상에 있으나 AMP 지원을 위해 여러개의 PowerView를 실행합니다.</p>
+
<p>&nbsp; &nbsp; &nbsp;- Emulation Host와 TRACE32 PowerView가 같은 Host상에 있으나 AMP 지원을 위해 여러개의 PowerView를 실행합니다.</p>
<p><span style="font-size: large;">3) AMP debug 환경 및 Network Access debugging : 아래 Configuration 3 참조</span></p>
+
<p><span style="font-size: large;">&nbsp; 3) AMP debug 환경 및 Network Access debugging : 아래 Configuration 3 참조</span></p>
<p>&nbsp;- Emulation Host와 TRACE32 PowerView가 각각 별도의 Host에서 동작하므로 Network을 통해 연결됩니다. 따라서 TRACE32</p>
+
<p>&nbsp; &nbsp; &nbsp;- Emulation Host와 TRACE32 PowerView가 각각 별도의 Host에서 동작하므로 Network을 통해 연결됩니다. 따라서</p>
<p>&nbsp; &nbsp;PowerView를 개발자 PC에서 실행하여 연결할 수 있으므로 매우 간편한 환경을 제공할 수 있습니다.&nbsp;</p>
+
<p>&nbsp; &nbsp; &nbsp; &nbsp;TRACE32 PowerView를 개발자 PC에서 실행하여 연결할 수 있으므로 매우 간편하게 사용할 수 있습니다.</p>
 
<p>&nbsp;</p>
 
<p>&nbsp;</p>
 
<ul>
 
<ul>
14번째 줄: 14번째 줄:
 
</li>
 
</li>
 
</ul>
 
</ul>
<p>&nbsp;</p>
+
<p><img src="/data/wiki/2016-06-28/1467077922.png" alt="" width="600" /></p>
 
<ul>
 
<ul>
 
<li>
 
<li>
20번째 줄: 20번째 줄:
 
</li>
 
</li>
 
</ul>
 
</ul>
<p>&nbsp;</p>
+
<p><img src="/data/wiki/2016-06-28/1467077944.png" alt="" width="600" /></p>
 
<ul>
 
<ul>
 
<li>
 
<li>
26번째 줄: 26번째 줄:
 
</li>
 
</li>
 
</ul>
 
</ul>
 +
<p><img src="/data/wiki/2016-06-28/1467077998.png" alt="" width="600" /></p>
 +
<p>&nbsp;</p>
 +
<h2>GTL debug environment 설정</h2>
 +
<p>상기 3가지 동작 Mode는 TRACE32 실행 시 기본적으로 참조하는 config.t32 파일의 <strong>PBI 설정</strong>에 따라 결정되며</p>
 +
<p>각 동작 Mode의 설정은 다음과 같습니다.</p>
 +
<ul>
 +
<li>
 +
<h3>Setup for Configuration 1</h3>
 +
</li>
 +
</ul>
 +
<p><span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;PBI=MCILIB ; configure system to use hostmci.so</span></p>
 +
<p>&nbsp;</p>
 +
<ul>
 +
<li>
 +
<h3>Setup for Configuration 2</h3>
 +
</li>
 +
</ul>
 +
<p><span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;PBI=MCISERVER&nbsp; </span><span>; set up the usage of hostmci.so and </span><span>open</span></p>
 +
<p><span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;PORT=30000&nbsp; </span><span>; server at 30000 for the first instance</span><span>.</span></p>
 +
<p><span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;INSTANCE=AUTO&nbsp; </span><span>; consecutive number of </span><span>instance for AMP setup</span></p>
 +
<p>&nbsp;</p>
 +
<ul>
 +
<li>
 +
<h3>Setup for Configuration 3</h3>
 +
</li>
 +
</ul>
 +
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 본 설정은 두가지 고려사항이 필요합니다. 상기 그림에서와 같이 Emulation Host side에서는 TRACE32 PowerView의</div>
 +
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 디버그 명령을 받아 Emulator에 전달하는 MCI server라고 하는 Module을 먼저 실행해 주어야 하며 다음으로</div>
 +
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; PowerView를 다음 설정으로 설정한 후 실행하게 됩니다.&nbsp;</div>
 +
<div></div>
 +
<div><strong>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; *&nbsp;Invoke MCI-server first in Emulation Host side</strong></div>
 +
<p><span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt;&gt; </span><span>./</span><span>t32mciserver port=30000 ; start t32mciserver at port 30000</span></p>
 +
<div><strong>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; * CONFIG.T32 for Trace32 debugger side</strong></div>
 +
<p><span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; PBI=MCISERVER&nbsp; </span><span>; set up connection to </span><span>t32mciserver</span></p>
 +
<p><span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; NODE=192.168.0.1&nbsp; </span><span>; connect to IP 192.168.0.1 </span></p>
 +
<p><span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; PORT=30000&nbsp; </span><span>; at port 30000</span></p>
 +
<p><span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; INSTANCE=AUTO&nbsp; </span><span>; consecutive number of </span><span>Trace32 instance for AMP setup</span></p>
 +
<p><span><br /></span></p>
 +
<h2>TRACE32 PowerView 실행 후 Emulator 연결</h2>
 +
<p>TRACE32 사용 시 Physical JTAG 디버그 환경과 다른 점은 오직 Emulator 연결을 위한 설정만 다릅니다. 즉 기존에 사용하던</p>
 +
<p>.cmm Script들을 그대로 사용할 수 있으며 GTL관련 내용만 추가하면 되겠습니다.</p>
 +
<p>&nbsp;</p>
 +
<ul>
 +
<li>
 +
<h3><span style="font-size: 1.17em;">Physical JTAG 디버그 환경에 GTL을 사용하기 위해 추가할 설정</span></h3>
 +
</li>
 +
</ul>
 +
<p><span style="white-space: pre;"> </span>아래 기술된 내용 중 밤색 구문들은 GTL환경에서 emulator와 연결하기 위한 설정입니다.</p>
 +
<p><span style="color: #993300;"><span style="white-space: pre;"> </span>SYStem.CONFIG.DEBUGPORT GTL0</span></p>
 +
<p><span style="color: #993300;"><span style="white-space: pre;"> </span>;SYStem.GTL.DISCONNECT &nbsp; <span style="color: #000000;">; disconnect if still connected</span></span></p>
 +
<p>&nbsp;</p>
 +
<p><span style="color: #993300;"><span style="white-space: pre;"> </span>;SYStem.GTL.MODELCONFIG "TIMEOUT=10|PORT=20000|NODE=127.0.0.1|PACKLEN=1024&ldquo;&nbsp; <span style="color: #000000;">; optional</span></span></p>
 +
<p><span style="color: #993300;"><span style="white-space: pre;"> </span>;SYStem.GTL.MODELNAME "jtag_gtl_bfm&ldquo;&nbsp; <span style="color: #000000;">; optional</span></span></p>
 +
<p>&nbsp;</p>
 +
<p><span style="color: #993300;"><span style="white-space: pre;"> </span>SYStem.GTL.LIBname "lib_gtl1.so&ldquo;</span></p>
 +
<p><span style="color: #993300;"><span style="white-space: pre;"> </span>SYStem.GTL.JTAGPROBENAME &ldquo;JTAGProbe0&rdquo;&nbsp; <span style="color: #000000;">; for JTAG transactor</span></span></p>
 +
<p><span style="white-space: pre; color: #993300;">&nbsp; </span></p>
 +
<p><span style="color: #993300;"><span style="white-space: pre;"> </span>; SYStem.CONFIG.* </span><span style="color: #000000;">;&nbsp;ARM specific command</span></p>
 +
<p><span style="color: #993300;"><span style="white-space: pre;"> </span>;SYStem.CONFIG.DAPNAME &ldquo;SWD_DAP0&ldquo;&nbsp; <span style="white-space: pre;"> </span><span style="color: #000000;">; for DAP transactor &nbsp; </span></span></p>
 +
<p><span style="color: #993300;"><span style="white-space: pre;"> </span>;SYStem.CONFIG.DEBUGBUSNAME "APB_DAP0&ldquo;&nbsp; <span style="white-space: pre;"> </span><span style="color: #000000;">; for APB transactor to debug, DAP: class</span></span></p>
 +
<p><span style="color: #993300;"><span style="white-space: pre;"> </span>;SYStem.CONFIG.MEMORYBUSNAME "AHB_DAP0&ldquo;&nbsp;<span style="color: #000000;">; for AHB transactor for real time access(E:)</span></span></p>
 +
<p><span style="color: #993300;"><span style="white-space: pre;"> </span>;SYStem.CONFIG.APBNAME &ldquo;APB_DAP0&rdquo; &nbsp; <span style="white-space: pre;"> </span><span style="color: #000000;">; define APB transactor for APB: class</span></span></p>
 +
<p><span style="color: #993300;"><span style="white-space: pre;"> </span>;SYStem.CONFIG.AXINAME &ldquo;AXI_DAP0&rdquo; &nbsp; <span style="white-space: pre;"> </span><span style="color: #000000;">; define AXI transactor for Z(N)AXI: class</span></span></p>
 +
<p><span style="color: #993300;"><span style="white-space: pre;"> </span>;SYStem.CONFIG.AHBNAME &ldquo;AHB_DAP0&rdquo; &nbsp;<span style="color: #000000;"> <span style="white-space: pre;"> </span>; define AHB transactor for Z(N)AHB: class</span></span></p>
 +
<p><span style="color: #993300;"><span style="white-space: pre;"> </span>;&nbsp;optional for below</span></p>
 +
<p><span style="color: #993300;"><span style="white-space: pre;"> </span>;SYStem.GTL.DMANAME &ldquo;DMA_transactor&rdquo; &nbsp; ; define DMA transactor for Data.LOAD * /GTLDMALOAD</span></p>
 +
<p><span style="color: #993300;"><span style="white-space: pre;"> </span>;SYStem.GTL.TransactorConfig &ldquo;user defined string for transactor configuration&rdquo; &ldquo;User String&rdquo;</span></p>
 +
<p>&nbsp;</p>
 +
<p><span style="color: #993300;"><span style="white-space: pre;"> </span>SYStem.VT.TimeinTargetTime ON&nbsp; ; Select the time ref. between Host and Target(Emulator) for Timeout</span></p>
 +
<p><span style="color: #993300;"><span style="white-space: pre;"> </span>SYStem.VT.PauseinTargetTime ON&nbsp; ; Select the time ref. between Host and Target for Wait()</span></p>
 +
<p><span style="color: #993300;"><span style="white-space: pre;"> </span>;SYStem.VT.HardwareTimeout ON&nbsp; ; ON(Enable), En/disable Transactor operation timeout</span></p>
 +
<p><span style="white-space: pre; color: #993300;">&nbsp; </span></p>
 +
<p><span style="color: #993300;"><span style="white-space: pre;"> </span>;SYStem.VT.TimeScale 1.0&nbsp; ; Time scale for Timeout and Wait(), wait time=TS*PS*timevalue</span></p>
 +
<p><span style="color: #993300;"><span style="white-space: pre;"> </span>;SYStem.VT.PauseScale 1.0&nbsp; ; Time scale for Wait(), wait time=TS*PS*timevalue</span></p>
 +
<p><span style="color: #993300;"><span style="white-space: pre;"> </span>;SYStem.VT.HardwareTimeoutScale 1.0&nbsp; ; prolong/shirink Transactor opearation timeout</span></p>
 +
<p><span style="white-space: pre; color: #993300;">&nbsp; </span></p>
 +
<p><span style="color: #993300;"><span style="white-space: pre;"> </span>;SYStem.VT.MaxTimeout 10us&nbsp; ; absolute maximum time for Timeout</span></p>
 +
<p><span style="color: #993300;"><span style="white-space: pre;"> </span>;SYStem.VT.MaxPause 10us&nbsp; ; absolute maximum time for Wait() time</span></p>
 +
<p><span style="white-space: pre; color: #993300;"> &nbsp;</span></p>
 +
<p><span style="color: #993300;"><span style="white-space: pre;"> </span>SYStem.GTL.CONNECT&nbsp; &nbsp; ; connecting GTL-plug-in</span></p>
 +
<p>&nbsp;</p>
 +
<p><span style="white-space: pre;"> </span>SYStem.CPU CortexA7MPcore</p>
 +
<p><span style="white-space: pre;"> </span>SYStem.CONFIG COREBASE 0x80090000</p>
 +
<p>&nbsp;<span style="white-space: pre;"> </span></p>
 +
<p><span style="white-space: pre;"> </span>SYStem.CONFIG.DEBUGACCESSPORT 1.</p>
 +
<p>&nbsp;<span style="white-space: pre;"> </span></p>
 +
<p><span style="white-space: pre;"> </span>SYStem.JtagClock 300KHz</p>
 +
<p><span style="white-space: pre;"> </span>SYStem.Option.ResBreak OFF</p>
 +
<p><span style="white-space: pre;"> </span>SYStem.Option.EnReset ON</p>
 +
<p><span style="white-space: pre;"> </span>SYStem.Option.WaitReset 100.ms</p>
 +
<p>&nbsp;</p>
 +
<p><span style="white-space: pre;"> </span>SETUP.UpdateRATE 3s</p>
 +
<p><span style="white-space: pre;"> </span>MAP.UpdateOnce &nbsp; ; TRACE32 updates the data of the opened window only one time</p>
 +
<p><span style="white-space: pre;"> </span>MAP.NoUpdateOnce 0x10008000++0xFFF&nbsp; ;&nbsp; define normal update area</p>
 +
<p>&nbsp;</p>
 +
<p><span style="color: #993300;"><span style="white-space: pre;"> </span>SYStem.DETECT.DaisyChain&nbsp; ; connecting GTL-plug-in, if GTL is not connected</span></p>
 +
<p><span style="white-space: pre;"> </span>ENDDO&nbsp;</p>
 +
<p>&nbsp;</p>
 +
<p>&nbsp;</p>
 +
<p>&nbsp;</p>
 +
<p>&nbsp;</p>
 +
<p>&nbsp;</p>
 +
<p>&nbsp;</p>

2016년 6월 28일 (화) 11:05 판

GTL Configuration

Emulator Debug 환경에서는 기본적으로 개발환경에 따라 다음 3가지 환경을 구성할 수 있습니다.

  1) SMP 또는 Single core debugging 환경 : 아래 Configuration 1 참조

     - 가장 간단하며 Emulation Host와 TRACE32 PowerView가 같은 Host상에 위치합니다.

  2) AMP  debugging 환경 : 아래 Configuration 2 참조

     - Emulation Host와 TRACE32 PowerView가 같은 Host상에 있으나 AMP 지원을 위해 여러개의 PowerView를 실행합니다.

  3) AMP debug 환경 및 Network Access debugging : 아래 Configuration 3 참조

     - Emulation Host와 TRACE32 PowerView가 각각 별도의 Host에서 동작하므로 Network을 통해 연결됩니다. 따라서

       TRACE32 PowerView를 개발자 PC에서 실행하여 연결할 수 있으므로 매우 간편하게 사용할 수 있습니다.

 

  • Configuration 1

  • Configuration 2

  • Configuration 3

 

GTL debug environment 설정

상기 3가지 동작 Mode는 TRACE32 실행 시 기본적으로 참조하는 config.t32 파일의 PBI 설정에 따라 결정되며

각 동작 Mode의 설정은 다음과 같습니다.

  • Setup for Configuration 1

           PBI=MCILIB ; configure system to use hostmci.so

 

  • Setup for Configuration 2

           PBI=MCISERVER  ; set up the usage of hostmci.so and open

           PORT=30000  ; server at 30000 for the first instance.

           INSTANCE=AUTO  ; consecutive number of instance for AMP setup

 

  • Setup for Configuration 3

          본 설정은 두가지 고려사항이 필요합니다. 상기 그림에서와 같이 Emulation Host side에서는 TRACE32 PowerView의
          디버그 명령을 받아 Emulator에 전달하는 MCI server라고 하는 Module을 먼저 실행해 주어야 하며 다음으로
          PowerView를 다음 설정으로 설정한 후 실행하게 됩니다. 
          * Invoke MCI-server first in Emulation Host side

             >> ./t32mciserver port=30000 ; start t32mciserver at port 30000

          * CONFIG.T32 for Trace32 debugger side

            PBI=MCISERVER  ; set up connection to t32mciserver

            NODE=192.168.0.1  ; connect to IP 192.168.0.1

            PORT=30000  ; at port 30000

            INSTANCE=AUTO  ; consecutive number of Trace32 instance for AMP setup


TRACE32 PowerView 실행 후 Emulator 연결

TRACE32 사용 시 Physical JTAG 디버그 환경과 다른 점은 오직 Emulator 연결을 위한 설정만 다릅니다. 즉 기존에 사용하던

.cmm Script들을 그대로 사용할 수 있으며 GTL관련 내용만 추가하면 되겠습니다.

 

  • Physical JTAG 디버그 환경에 GTL을 사용하기 위해 추가할 설정

아래 기술된 내용 중 밤색 구문들은 GTL환경에서 emulator와 연결하기 위한 설정입니다.

SYStem.CONFIG.DEBUGPORT GTL0

;SYStem.GTL.DISCONNECT   ; disconnect if still connected

 

;SYStem.GTL.MODELCONFIG "TIMEOUT=10|PORT=20000|NODE=127.0.0.1|PACKLEN=1024“  ; optional

;SYStem.GTL.MODELNAME "jtag_gtl_bfm“  ; optional

 

SYStem.GTL.LIBname "lib_gtl1.so“

SYStem.GTL.JTAGPROBENAME “JTAGProbe0”  ; for JTAG transactor

 

; SYStem.CONFIG.* ; ARM specific command

;SYStem.CONFIG.DAPNAME “SWD_DAP0“  ; for DAP transactor  

;SYStem.CONFIG.DEBUGBUSNAME "APB_DAP0“  ; for APB transactor to debug, DAP: class

;SYStem.CONFIG.MEMORYBUSNAME "AHB_DAP0“ ; for AHB transactor for real time access(E:)

;SYStem.CONFIG.APBNAME “APB_DAP0”   ; define APB transactor for APB: class

;SYStem.CONFIG.AXINAME “AXI_DAP0”   ; define AXI transactor for Z(N)AXI: class

;SYStem.CONFIG.AHBNAME “AHB_DAP0”   ; define AHB transactor for Z(N)AHB: class

; optional for below

;SYStem.GTL.DMANAME “DMA_transactor”   ; define DMA transactor for Data.LOAD * /GTLDMALOAD

;SYStem.GTL.TransactorConfig “user defined string for transactor configuration” “User String”

 

SYStem.VT.TimeinTargetTime ON  ; Select the time ref. between Host and Target(Emulator) for Timeout

SYStem.VT.PauseinTargetTime ON  ; Select the time ref. between Host and Target for Wait()

;SYStem.VT.HardwareTimeout ON  ; ON(Enable), En/disable Transactor operation timeout

 

;SYStem.VT.TimeScale 1.0  ; Time scale for Timeout and Wait(), wait time=TS*PS*timevalue

;SYStem.VT.PauseScale 1.0  ; Time scale for Wait(), wait time=TS*PS*timevalue

;SYStem.VT.HardwareTimeoutScale 1.0  ; prolong/shirink Transactor opearation timeout

 

;SYStem.VT.MaxTimeout 10us  ; absolute maximum time for Timeout

;SYStem.VT.MaxPause 10us  ; absolute maximum time for Wait() time

 

SYStem.GTL.CONNECT    ; connecting GTL-plug-in

 

SYStem.CPU CortexA7MPcore

SYStem.CONFIG COREBASE 0x80090000

 

SYStem.CONFIG.DEBUGACCESSPORT 1.

 

SYStem.JtagClock 300KHz

SYStem.Option.ResBreak OFF

SYStem.Option.EnReset ON

SYStem.Option.WaitReset 100.ms

 

SETUP.UpdateRATE 3s

MAP.UpdateOnce   ; TRACE32 updates the data of the opened window only one time

MAP.NoUpdateOnce 0x10008000++0xFFF  ;  define normal update area

 

SYStem.DETECT.DaisyChain  ; connecting GTL-plug-in, if GTL is not connected

ENDDO