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

TRACE32
이동: 둘러보기, 검색
(새 문서: <h2>GTL Configuration</h2> <p>Emulator Debug 환경에서는 기본적으로 개발환경에 따라 다음 3가지 환경을 구성할 수 있습니다.</p> <p><span style="font-size:...)
 
 
(같은 사용자에 의한 2개의 중간 편집이 숨겨짐)
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><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; <span style="color: #000000;">; define DMA transactor for Data.LOAD * /GTLDMALOAD</span></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;<span style="color: #000000;"> ; Select the time ref. between Host and Target(Emulator) for Timeout</span></span></p>
 +
<p><span style="color: #993300;"><span style="white-space: pre;"> </span>SYStem.VT.PauseinTargetTime ON<span style="color: #000000;">&nbsp; ; Select the time ref. between Host and Target for Wait()</span></span></p>
 +
<p><span style="color: #993300;"><span style="white-space: pre;"> </span>;SYStem.VT.HardwareTimeout ON&nbsp; <span style="color: #000000;">; ON(Enable), En/disable Transactor operation timeout</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.VT.TimeScale 1.0&nbsp; <span style="color: #000000;">; Time scale for Timeout and Wait(), wait time=TS*PS*timevalue</span></span></p>
 +
<p><span style="color: #993300;"><span style="white-space: pre;"> </span>;SYStem.VT.PauseScale 1.0&nbsp; <span style="color: #000000;">; Time scale for Wait(), wait time=TS*PS*timevalue</span></span></p>
 +
<p><span style="color: #993300;"><span style="white-space: pre;"> </span>;SYStem.VT.HardwareTimeoutScale 1.0&nbsp;<span style="color: #000000;"> ; prolong/shirink Transactor opearation timeout</span></span></p>
 +
<p><span style="white-space: pre; color: #000000;">&nbsp; </span></p>
 +
<p><span style="color: #993300;"><span style="white-space: pre;"> </span>;SYStem.VT.MaxTimeout 10us&nbsp; <span style="color: #000000;">; absolute maximum time for Timeout</span></span></p>
 +
<p><span style="color: #993300;"><span style="white-space: pre;"> </span>;SYStem.VT.MaxPause 10us&nbsp;<span style="color: #000000;"> ; absolute maximum time for Wait() time</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.GTL.CONNECT&nbsp;<span style="color: #000000;"> &nbsp; ; connecting GTL-plug-in</span></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<span style="color: #000000;">&nbsp; ; connecting GTL-plug-in, if GTL is not connected</span></span></p>
 +
<p>&nbsp;SYStem.Mode.Up<span style="white-space: pre;"> </span>;or &nbsp;SYStem.Mode.Attach &nbsp;; connect the emualtor targe(DUT)</p>
 +
<p><span style="white-space: pre;"> </span>ENDDO&nbsp;</p>
 +
<p>위 Script를 실행하게 되면 Emulator내에서 Emulation되고 있는 Core가 연결되게 됩니다.</p>
 +
<p>&nbsp;</p>
 +
<ul>
 +
<li>
 +
<h3><span style="font-size: 1.17em;">느린 Emulator 환경에서 유용하게 사용할 수 있는 Optimization Command</span></h3>
 +
</li>
 +
</ul>
 +
<p>TRACE32 PowerView는 개발자로 하여금 타깃의 현재 상태를 명확히 볼수 있도록 내부적으로 초당 수십회의 타깃 상태정보를 읽어</p>
 +
<p>윈도우 창을 Update하게 됩니다. 이러한 Emulator와 같은 특수한(느린) 환경에서 원활한 디버그 환경으 최적화 할 수 있도록 다음과</p>
 +
<p>같은 명령들을 제공하고 있습니다.</p>
 +
<p>&nbsp;</p>
 +
<p><strong>SETUP.UpateRATE [time|value]</strong></p>
 +
<p>-SETUP.URATE 250ms&nbsp; ; Screen will be updated every 250ms</p>
 +
<p>-SETUP.URATE 4&nbsp; ; 4 times per second</p>
 +
<p>&nbsp;</p>
 +
<p><strong>SYStem.POLLING SLOW</strong></p>
 +
<p>-System state is polled slowly, SYStem.POLLING DEFault in default</p>
 +
&nbsp;
 +
<p><strong>MAP.UpdateOnce [address range]</strong></p>
 +
<p>-Only one time update for specified address after Break and Step/Over/Go till</p>
 +
<p>-Used for memory area</p>
 +
<p>-</p>
 +
<p><strong>MAP.NoUpdateOnce [address range]</strong></p>
 +
<p>-Depend on SETUP.URATE command for the address range</p>
 +
<p>-Used for SFR area</p>
 +
<p>&nbsp;</p>
 +
<p><strong>Data.LOAD.ELF *.ELF /VM</strong></p>
 +
<p>-Load executable file to VM: area only</p>
 +
<p>-</p>
 +
<p><strong>Data.LOAD.ELF *.ELF /PlusVM</strong></p>
 +
<p>-Load executable file to both target and VM: memory</p>
 +
<p>&nbsp;</p>
 +
<p><strong>Data.LOAD.ELF *.ELF /GTLDMALOAD</strong></p>
 +
<p>-Load executable file to the address via DMA transactor(Backdoor)</p>
 +
<p>&nbsp;</p>
 +
<p><strong>Data.List VM:</strong></p>
 +
<p>-Data.List window accesses only VM: memory</p>
 +
&nbsp;
 +
<p><strong>Onchip.Access VM</strong></p>
 +
<p>-Use the code in VM: memory for trace analysis</p>
 +
<p>&nbsp;</p>
 +
<p>&nbsp;</p>
 +
<p>&nbsp;</p>
 +
<p>&nbsp;</p>
 +
<p>&nbsp;</p>
 +
<p>&nbsp;</p>
 +
<p>&nbsp;</p>

2016년 6월 28일 (화) 12:22 기준 최신판

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

 SYStem.Mode.Up ;or  SYStem.Mode.Attach  ; connect the emualtor targe(DUT)

ENDDO 

위 Script를 실행하게 되면 Emulator내에서 Emulation되고 있는 Core가 연결되게 됩니다.

 

  • 느린 Emulator 환경에서 유용하게 사용할 수 있는 Optimization Command

TRACE32 PowerView는 개발자로 하여금 타깃의 현재 상태를 명확히 볼수 있도록 내부적으로 초당 수십회의 타깃 상태정보를 읽어

윈도우 창을 Update하게 됩니다. 이러한 Emulator와 같은 특수한(느린) 환경에서 원활한 디버그 환경으 최적화 할 수 있도록 다음과

같은 명령들을 제공하고 있습니다.

 

SETUP.UpateRATE [time|value]

-SETUP.URATE 250ms  ; Screen will be updated every 250ms

-SETUP.URATE 4  ; 4 times per second

 

SYStem.POLLING SLOW

-System state is polled slowly, SYStem.POLLING DEFault in default

 

MAP.UpdateOnce [address range]

-Only one time update for specified address after Break and Step/Over/Go till

-Used for memory area

-

MAP.NoUpdateOnce [address range]

-Depend on SETUP.URATE command for the address range

-Used for SFR area

 

Data.LOAD.ELF *.ELF /VM

-Load executable file to VM: area only

-

Data.LOAD.ELF *.ELF /PlusVM

-Load executable file to both target and VM: memory

 

Data.LOAD.ELF *.ELF /GTLDMALOAD

-Load executable file to the address via DMA transactor(Backdoor)

 

Data.List VM:

-Data.List window accesses only VM: memory

 

Onchip.Access VM

-Use the code in VM: memory for trace analysis