"PowerTRACE 활용한 SW 성능 분석"의 두 판 사이의 차이

TRACE32
이동: 둘러보기, 검색
(새 문서: <p>본 페이지에서는 측정된 TRACE 데이터를 활용하여 SW 성능을 분석하는 방법에 대해 설명합니다.</p> <p> </p> <p>1. TRACE configuration</p> <p>&nbs...)
 
 
7번째 줄: 7번째 줄:
 
<ul>
 
<ul>
 
<li>
 
<li>
<div style="margin: 0cm 0cm 0pt;"><span style="font-size: x-small;"><span lang="FI" style="font-family: &quot;맑은 고딕&quot;; mso-ansi-language: FI;">Method : Analyzer (PowerTRACE </span><span style="font-family: &quot;맑은 고딕&quot;; mso-ansi-language: FI;">장비 연결시 자동으로 설정됨<span lang="FI">)</span></span></span></div>
+
<div style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span lang="FI" style="font-family: &quot;맑은 고딕&quot;; mso-ansi-language: FI;">Method : Analyzer (PowerTRACE </span><span style="font-family: &quot;맑은 고딕&quot;; mso-ansi-language: FI;">장비 연결시 자동으로 설정됨<span lang="FI">)</span></span></span></div>
 
</li>
 
</li>
 
</ul>
 
</ul>
13번째 줄: 13번째 줄:
 
<ul>
 
<ul>
 
<li>
 
<li>
<div style="margin: 0cm 0cm 0pt;"><span lang="FI" style="font-family: &quot;맑은 고딕&quot;; mso-ansi-language: FI;"><span style="font-size: x-small;">State </span></span></div>
+
<div style="margin: 0cm 0cm 0pt;"><span lang="FI" style="font-family: &quot;맑은 고딕&quot;; font-size: small; mso-ansi-language: FI;">State </span></div>
 
</li>
 
</li>
 
</ul>
 
</ul>
 
<p><span style="font-family: 굴림; font-size: small;"> </span></p>
 
<p><span style="font-family: 굴림; font-size: small;"> </span></p>
<p style="margin: 0cm 0cm 0pt; padding-left: 60px;"><span style="font-size: x-small;"><span lang="FI" style="font-family: &quot;맑은 고딕&quot;; mso-ansi-language: FI;">DISable : </span><span style="font-family: &quot;맑은 고딕&quot;; mso-ansi-language: FI;">비활성화 상태</span></span></p>
+
<p style="margin: 0cm 0cm 0pt; padding-left: 60px;"><span style="font-size: small;"><span lang="FI" style="font-family: &quot;맑은 고딕&quot;; mso-ansi-language: FI;">DISable : </span><span style="font-family: &quot;맑은 고딕&quot;; mso-ansi-language: FI;">비활성화 상태</span></span></p>
 
<p style="padding-left: 60px;"><span style="font-family: 굴림; font-size: small;"> </span></p>
 
<p style="padding-left: 60px;"><span style="font-family: 굴림; font-size: small;"> </span></p>
<p style="margin: 0cm 0cm 0pt; padding-left: 60px;"><span lang="FI" style="font-family: &quot;맑은 고딕&quot;; mso-ansi-language: FI;"><span style="font-size: x-small;">OFF : NEXUS </span></span><span style="font-family: &quot;맑은 고딕&quot;; mso-ansi-language: FI;"><span style="font-size: x-small;">데이터를 샘플링 하지 않음<span lang="FI">. Trace data </span></span><span style="font-size: x-small;">확인 가능</span></span></p>
+
<p style="margin: 0cm 0cm 0pt; padding-left: 60px;"><span style="font-size: small;"><span lang="FI" style="font-family: &quot;맑은 고딕&quot;; mso-ansi-language: FI;">OFF : NEXUS </span><span style="font-family: &quot;맑은 고딕&quot;; mso-ansi-language: FI;">데이터를 샘플링 하지 않음<span lang="FI">. Trace data </span>확인 가능</span></span></p>
 
<p style="padding-left: 60px;"><span style="font-family: 굴림; font-size: small;"> </span></p>
 
<p style="padding-left: 60px;"><span style="font-family: 굴림; font-size: small;"> </span></p>
<p style="margin: 0cm 0cm 0pt; padding-left: 60px;"><span style="font-size: x-small;"><span lang="FI" style="font-family: &quot;맑은 고딕&quot;; mso-ansi-language: FI;">Arm : NEXUS </span><span style="font-family: &quot;맑은 고딕&quot;; mso-ansi-language: FI;">데이터 샘플링</span></span></p>
+
<p style="margin: 0cm 0cm 0pt; padding-left: 60px;"><span style="font-size: small;"><span lang="FI" style="font-family: &quot;맑은 고딕&quot;; mso-ansi-language: FI;">Arm : NEXUS </span><span style="font-family: &quot;맑은 고딕&quot;; mso-ansi-language: FI;">데이터 샘플링</span></span></p>
 
<p style="padding-left: 60px;"><span style="font-family: 굴림; font-size: small;"> </span></p>
 
<p style="padding-left: 60px;"><span style="font-family: 굴림; font-size: small;"> </span></p>
 
<ul>
 
<ul>
 
<li>
 
<li>
<div style="margin: 0cm 0cm 0pt;"><span lang="FI" style="font-family: &quot;맑은 고딕&quot;; mso-ansi-language: FI;"><span style="font-size: x-small;">Commands</span></span></div>
+
<div style="margin: 0cm 0cm 0pt;"><span lang="FI" style="font-family: &quot;맑은 고딕&quot;; font-size: small; mso-ansi-language: FI;">Commands</span></div>
 
</li>
 
</li>
 
</ul>
 
</ul>
 
<p><span style="font-family: 굴림; font-size: small;"> </span></p>
 
<p><span style="font-family: 굴림; font-size: small;"> </span></p>
<p style="margin: 0cm 0cm 0pt; padding-left: 60px;"><span style="font-size: x-small;"><span lang="FI" style="font-family: &quot;맑은 고딕&quot;; mso-ansi-language: FI;">RESET : TRACE </span><span style="font-family: &quot;맑은 고딕&quot;; mso-ansi-language: FI;">설정 사항 초기화</span></span></p>
+
<p style="margin: 0cm 0cm 0pt; padding-left: 60px;"><span style="font-size: small;"><span lang="FI" style="font-family: &quot;맑은 고딕&quot;; mso-ansi-language: FI;">RESET : TRACE </span><span style="font-family: &quot;맑은 고딕&quot;; mso-ansi-language: FI;">설정 사항 초기화</span></span></p>
 
<p style="padding-left: 60px;"><span style="font-family: 굴림; font-size: small;"> </span></p>
 
<p style="padding-left: 60px;"><span style="font-family: 굴림; font-size: small;"> </span></p>
<p style="margin: 0cm 0cm 0pt; padding-left: 60px;"><span style="font-size: x-small;"><span lang="FI" style="font-family: &quot;맑은 고딕&quot;; mso-ansi-language: FI;">Init : TRACE </span><span style="font-family: &quot;맑은 고딕&quot;; mso-ansi-language: FI;">메모리 초기화</span></span></p>
+
<p style="margin: 0cm 0cm 0pt; padding-left: 60px;"><span style="font-size: small;"><span lang="FI" style="font-family: &quot;맑은 고딕&quot;; mso-ansi-language: FI;">Init : TRACE </span><span style="font-family: &quot;맑은 고딕&quot;; mso-ansi-language: FI;">메모리 초기화</span></span></p>
 
<p style="padding-left: 60px;"><span style="font-family: 굴림; font-size: small;"> </span></p>
 
<p style="padding-left: 60px;"><span style="font-family: 굴림; font-size: small;"> </span></p>
<p style="margin: 0cm 0cm 0pt; padding-left: 60px;"><span lang="FI" style="font-family: &quot;맑은 고딕&quot;; mso-ansi-language: FI;"><span style="font-size: x-small;">List : Trace.list </span></span><span style="font-family: &quot;맑은 고딕&quot;; mso-ansi-language: FI;"><span style="font-size: x-small;">창을 열어 측정된 <span lang="FI">TRACE </span></span><span style="font-size: x-small;">데이터 확인 가능</span></span></p>
+
<p style="margin: 0cm 0cm 0pt; padding-left: 60px;"><span style="font-size: small;"><span lang="FI" style="font-family: &quot;맑은 고딕&quot;; mso-ansi-language: FI;">List : Trace.list </span><span style="font-family: &quot;맑은 고딕&quot;; mso-ansi-language: FI;">창을 열어 측정된 <span lang="FI">TRACE </span>데이터 확인 가능</span></span></p>
 
<p style="padding-left: 60px;"><span style="font-family: 굴림; font-size: small;"> </span></p>
 
<p style="padding-left: 60px;"><span style="font-family: 굴림; font-size: small;"> </span></p>
<p style="margin: 0cm 0cm 0pt; padding-left: 60px;"><span lang="FI" style="font-family: &quot;맑은 고딕&quot;; mso-ansi-language: FI;"><span style="font-size: x-small;">AutoArm : </span></span><span style="font-family: &quot;맑은 고딕&quot;; mso-ansi-language: FI;"><span style="font-size: x-small;">타겟 러닝시 자동으로 <span lang="FI">state</span></span><span style="font-size: x-small;">를 </span><span lang="FI"><span style="font-size: x-small;">Arm </span></span><span style="font-size: x-small;">으로 변경 </span></span></p>
+
<p style="margin: 0cm 0cm 0pt; padding-left: 60px;"><span style="font-size: small;"><span lang="FI" style="font-family: &quot;맑은 고딕&quot;; mso-ansi-language: FI;">AutoArm : </span><span style="font-family: &quot;맑은 고딕&quot;; mso-ansi-language: FI;">타겟 러닝시 자동으로 <span lang="FI">state</span>를 <span lang="FI">Arm </span>으로 변경 </span></span></p>
 
<p style="padding-left: 60px;"><span style="font-family: 굴림; font-size: small;"> </span></p>
 
<p style="padding-left: 60px;"><span style="font-family: 굴림; font-size: small;"> </span></p>
<p style="margin: 0cm 0cm 0pt; padding-left: 60px;"><span lang="FI" style="font-family: &quot;맑은 고딕&quot;; mso-ansi-language: FI;"><span style="font-size: x-small;">AutoInit : </span></span><span style="font-family: &quot;맑은 고딕&quot;; mso-ansi-language: FI;"><span style="font-size: x-small;">타겟 재시작시 자동으로 <span lang="FI">Trace </span></span><span style="font-size: x-small;">메모리 초기화</span></span></p>
+
<p style="margin: 0cm 0cm 0pt; padding-left: 60px;"><span style="font-size: small;"><span lang="FI" style="font-family: &quot;맑은 고딕&quot;; mso-ansi-language: FI;">AutoInit : </span><span style="font-family: &quot;맑은 고딕&quot;; mso-ansi-language: FI;">타겟 재시작시 자동으로 <span lang="FI">Trace </span>메모리 초기화</span></span></p>
 
<p>&nbsp;</p>
 
<p>&nbsp;</p>
 
<p>2. SW 성능 분석</p>
 
<p>2. SW 성능 분석</p>
 
<ul>
 
<ul>
<li>함수 수행 시간에 대한 statistic 정보와 추가 메뉴를 사용하여 프로그램 성능 정보를 쉽게 확인할 수 있습니다.</li>
+
</ul>
 +
<p>1) 함수 수행 시간에 대한 statistic 정보와 추가 메뉴를 사용하여 프로그램 성능 정보를 쉽게 확인할 수 있습니다.</p>
 +
<ul>
 
</ul>
 
</ul>
 
<p style="padding-left: 30px;">전체 프로그램 성능에 대한 통계치를 한눈에 파악<br />특정 함수에서 추가 메뉴를 활용하여 성능 정보에 대한 추적이 용이</p>
 
<p style="padding-left: 30px;">전체 프로그램 성능에 대한 통계치를 한눈에 파악<br />특정 함수에서 추가 메뉴를 활용하여 성능 정보에 대한 추적이 용이</p>
47번째 줄: 49번째 줄:
 
<p style="padding-left: 30px;">&nbsp;</p>
 
<p style="padding-left: 30px;">&nbsp;</p>
 
<ul>
 
<ul>
<li>최초, 마지막 SW 수행 정보 <br />함수 수행된 결과 중 제일 처음 / 마지막 수행 위치 확인</li>
+
</ul>
 +
<p>2) 최초, 마지막 SW 수행 정보 <br />함수 수행된 결과 중 제일 처음 / 마지막 수행 위치 확인</p>
 +
<ul>
 
</ul>
 
</ul>
 
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <img src="/data/wiki/2016-06-29/1467188146.png" alt="" /></p>
 
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <img src="/data/wiki/2016-06-29/1467188146.png" alt="" /></p>
53번째 줄: 57번째 줄:
 
<p>&nbsp;</p>
 
<p>&nbsp;</p>
 
<ul>
 
<ul>
<li>최대 수행 시간의 SW 정보<br />특정함수가 수행된 중 제일 오랜 시간이 소요된 경우의 코드정보 확인<br />해당 함수를 호출한 함수(caller), 호출된 회수에 대한 분석 정보 확인</li>
+
</ul>
 +
<p>3) 최대 수행 시간의 SW 정보<br />특정함수가 수행된 중 제일 오랜 시간이 소요된 경우의 코드정보 확인<br />해당 함수를 호출한 함수(caller), 호출된 회수에 대한 분석 정보 확인</p>
 +
<ul>
 
</ul>
 
</ul>
 
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <img src="/data/wiki/2016-06-29/1467188167.png" alt="" /></p>
 
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <img src="/data/wiki/2016-06-29/1467188167.png" alt="" /></p>
 
<p>&nbsp;</p>
 
<p>&nbsp;</p>
 
<ul>
 
<ul>
<li>특정 함수가 호출되는 interval&nbsp;시간과 측정된 시간의 비율 확인</li>
+
</ul>
 +
<p>4) 특정 함수가 호출되는 interval&nbsp;시간과 측정된 시간의 비율 확인</p>
 +
<ul>
 
</ul>
 
</ul>
 
<p>&nbsp;&nbsp;&nbsp;&nbsp; <img src="/data/wiki/2016-06-29/1467188184.png" alt="" /></p>
 
<p>&nbsp;&nbsp;&nbsp;&nbsp; <img src="/data/wiki/2016-06-29/1467188184.png" alt="" /></p>
64번째 줄: 72번째 줄:
 
<p>&nbsp;</p>
 
<p>&nbsp;</p>
 
<ul>
 
<ul>
<li>하나의 함수 또는 ISR 이 수행된 시간을 측정 &amp; 측정된 시간의 비율 확인</li>
+
</ul>
 +
<p>5) 하나의 함수 또는 ISR 이 수행된 시간을 측정 &amp; 측정된 시간의 비율 확인</p>
 +
<ul>
 
</ul>
 
</ul>
 
<p>&nbsp;&nbsp;&nbsp;&nbsp; <img src="/data/wiki/2016-06-29/1467188230.png" alt="" /></p>
 
<p>&nbsp;&nbsp;&nbsp;&nbsp; <img src="/data/wiki/2016-06-29/1467188230.png" alt="" /></p>
<p>&nbsp;</p>
 
 
<p>&nbsp;</p>
 
<p>&nbsp;</p>
 
<p>&nbsp;</p>
 
<p>&nbsp;</p>

2016년 6월 29일 (수) 17:22 기준 최신판

본 페이지에서는 측정된 TRACE 데이터를 활용하여 SW 성능을 분석하는 방법에 대해 설명합니다.

 

1. TRACE configuration

 기본적인 TRACE 설정 창 입니다. 

  • Method : Analyzer (PowerTRACE 장비 연결시 자동으로 설정됨)

  • State

DISable : 비활성화 상태

OFF : NEXUS 데이터를 샘플링 하지 않음. Trace data 확인 가능

Arm : NEXUS 데이터 샘플링

  • Commands

RESET : TRACE 설정 사항 초기화

Init : TRACE 메모리 초기화

List : Trace.list 창을 열어 측정된 TRACE 데이터 확인 가능

AutoArm : 타겟 러닝시 자동으로 stateArm 으로 변경

AutoInit : 타겟 재시작시 자동으로 Trace 메모리 초기화

 

2. SW 성능 분석

1) 함수 수행 시간에 대한 statistic 정보와 추가 메뉴를 사용하여 프로그램 성능 정보를 쉽게 확인할 수 있습니다.

전체 프로그램 성능에 대한 통계치를 한눈에 파악
특정 함수에서 추가 메뉴를 활용하여 성능 정보에 대한 추적이 용이

 

2) 최초, 마지막 SW 수행 정보
함수 수행된 결과 중 제일 처음 / 마지막 수행 위치 확인

      

 

 

3) 최대 수행 시간의 SW 정보
특정함수가 수행된 중 제일 오랜 시간이 소요된 경우의 코드정보 확인
해당 함수를 호출한 함수(caller), 호출된 회수에 대한 분석 정보 확인

     

 

4) 특정 함수가 호출되는 interval 시간과 측정된 시간의 비율 확인

    

 

 

5) 하나의 함수 또는 ISR 이 수행된 시간을 측정 & 측정된 시간의 비율 확인