"TRACE32 iTSP for RH850 User Guide"의 두 판 사이의 차이

TRACE32
이동: 둘러보기, 검색
 
8번째 줄: 8번째 줄:
 
<h2>iTSP 지원 환경</h2>
 
<h2>iTSP 지원 환경</h2>
 
<p>&nbsp;&nbsp;iTSP는 반드시 License Maintenance(유지보수)를 보유한 상태에서 사용이 가능합니다. 단, 평가판(Demo Version)의 경우에는 별도의 제한이 없습니다.</p>
 
<p>&nbsp;&nbsp;iTSP는 반드시 License Maintenance(유지보수)를 보유한 상태에서 사용이 가능합니다. 단, 평가판(Demo Version)의 경우에는 별도의 제한이 없습니다.</p>
<p>&nbsp; T32 SW(PowerView)의 버전과 License Maintenance는&nbsp;<img alt="" src="/data/wiki/2018-10-15/1539588764.jpg" />&nbsp;명령어로 확인할 수 있습니다.</p>
+
<p>&nbsp; T32 SW(PowerView)의 버전과 License Maintenance는&nbsp;<img src="/data/wiki/2018-10-15/1539588764.jpg" alt="" />&nbsp;명령어로 확인할 수 있습니다.</p>
<p><img alt="" src="/data/wiki/2018-10-15/1539588845.jpg" /></p>
+
<p><img src="/data/wiki/2018-10-15/1539588845.jpg" alt="" /></p>
 
<p>&nbsp;</p>
 
<p>&nbsp;</p>
 
<p>&nbsp;</p>
 
<p>&nbsp;</p>
17번째 줄: 17번째 줄:
 
<h3>iTSP 설치</h3>
 
<h3>iTSP 설치</h3>
 
<p>1)&nbsp;&nbsp;&nbsp; TRACE32 홈페이지의 메인 화면에서 &rsquo;iTSP&rsquo; 아이콘을 클릭합니다.</p>
 
<p>1)&nbsp;&nbsp;&nbsp; TRACE32 홈페이지의 메인 화면에서 &rsquo;iTSP&rsquo; 아이콘을 클릭합니다.</p>
<p><img alt="" src="/data/wiki/2018-10-16/1539651481.jpg" /></p>
+
<p><img src="/data/wiki/2018-10-16/1539651481.jpg" alt="" /></p>
 
<p>&nbsp;</p>
 
<p>&nbsp;</p>
 
<p>2)&nbsp;&nbsp;&nbsp; 디버깅 하고자 하는 SoC 제조사를 선택합니다.</p>
 
<p>2)&nbsp;&nbsp;&nbsp; 디버깅 하고자 하는 SoC 제조사를 선택합니다.</p>
<p><img alt="" src="/data/wiki/2018-10-16/1539651548.jpg" /></p>
+
<p><img src="/data/wiki/2018-10-16/1539651548.jpg" alt="" /></p>
 +
<p><img src="/data/wiki/2018-10-16/1539651652.jpg" alt="" /></p>
 
<p>&nbsp;</p>
 
<p>&nbsp;</p>
 
<p>3)&nbsp;&nbsp;&nbsp; 선택한 iTSP를 다운로드 받고, 원하는 위치 경로에 &rsquo;iTSP_&lt;SoC명&gt;&rsquo; 형태로 압축해제 합니다.</p>
 
<p>3)&nbsp;&nbsp;&nbsp; 선택한 iTSP를 다운로드 받고, 원하는 위치 경로에 &rsquo;iTSP_&lt;SoC명&gt;&rsquo; 형태로 압축해제 합니다.</p>
 
<p>※ 만약, 개발 중인 프로젝트의 개수가 2개 이상이거나 프로젝트의 Workspace 경로가 자주 바뀌는 경우(예를들면, 날짜별로 프로젝트 폴더를 통채로 복사하여 개발하는 경우)에는 프로젝트의 Workspace 폴더 내에 &rsquo;iTSP_&lt;SoC명&gt;&rsquo; 형태로 압축해제하면, 관리에 용이합니다.</p>
 
<p>※ 만약, 개발 중인 프로젝트의 개수가 2개 이상이거나 프로젝트의 Workspace 경로가 자주 바뀌는 경우(예를들면, 날짜별로 프로젝트 폴더를 통채로 복사하여 개발하는 경우)에는 프로젝트의 Workspace 폴더 내에 &rsquo;iTSP_&lt;SoC명&gt;&rsquo; 형태로 압축해제하면, 관리에 용이합니다.</p>
<p>&nbsp;</p>
 
 
<p>&nbsp;</p>
 
<p>&nbsp;</p>
 
<p>4)&nbsp;&nbsp;&nbsp; 기존에 사용하던 iTSP 폴더가 존재하고 업데이트 버전을 위해 다운로드한 것이라면, 만약을 위해 iTSP폴더 Bakup 작업을 해놓는 것을 권장합니다. T32 설치 폴더에 다운로드를 했을 경우, 아래와 이미지와 같이 다운로드가 됩니다. (SoC 종류 추가 시 동일한 폴더에 덮어쓰기 합니다.)</p>
 
<p>4)&nbsp;&nbsp;&nbsp; 기존에 사용하던 iTSP 폴더가 존재하고 업데이트 버전을 위해 다운로드한 것이라면, 만약을 위해 iTSP폴더 Bakup 작업을 해놓는 것을 권장합니다. T32 설치 폴더에 다운로드를 했을 경우, 아래와 이미지와 같이 다운로드가 됩니다. (SoC 종류 추가 시 동일한 폴더에 덮어쓰기 합니다.)</p>
<p>&nbsp;</p>
+
<p><img src="/data/wiki/2018-10-16/1539651668.jpg" alt="" /></p>
 
<p>&nbsp;</p>
 
<p>&nbsp;</p>
 
<h3>TRACE32 Update</h3>
 
<h3>TRACE32 Update</h3>
 
<p>1)&nbsp;&nbsp;&nbsp;&nbsp;<a href="/wiki/index.php/TRACE32_Update">http://trace32.com/wiki/index.php/TRACE32_Update</a>&nbsp;웹사이트를 열고, 원하는 SoC와 최신 Software Version을 찾아서 다운로드 받습니다.</p>
 
<p>1)&nbsp;&nbsp;&nbsp;&nbsp;<a href="/wiki/index.php/TRACE32_Update">http://trace32.com/wiki/index.php/TRACE32_Update</a>&nbsp;웹사이트를 열고, 원하는 SoC와 최신 Software Version을 찾아서 다운로드 받습니다.</p>
 
<p>※&nbsp;&nbsp;&nbsp;&nbsp; 최신 SW 이전의 Version(구버전 SW)은 배포하지 않으므로, 보유한 License Maintenance 기간을 반드시 체크한 다음 업데이트를 진행해야 합니다.</p>
 
<p>※&nbsp;&nbsp;&nbsp;&nbsp; 최신 SW 이전의 Version(구버전 SW)은 배포하지 않으므로, 보유한 License Maintenance 기간을 반드시 체크한 다음 업데이트를 진행해야 합니다.</p>
<p>&nbsp;</p>
+
<p><img src="/data/wiki/2018-10-16/1539651680.jpg" alt="" /></p>
 
<p>&nbsp;</p>
 
<p>&nbsp;</p>
 
<p>2)&nbsp;&nbsp;&nbsp; 압축해제 한 후, 압축해제 한 파일들을 TRACE32가 설치된 루트 폴더(C:\T32\)에 덮어쓰기 합니다.</p>
 
<p>2)&nbsp;&nbsp;&nbsp; 압축해제 한 후, 압축해제 한 파일들을 TRACE32가 설치된 루트 폴더(C:\T32\)에 덮어쓰기 합니다.</p>
<p>&nbsp;</p>
 
<p>&nbsp;</p>
 
 
<p>&nbsp;</p>
 
<p>&nbsp;</p>
 
<h2>iTSP 실행 방법</h2>
 
<h2>iTSP 실행 방법</h2>
 
<p>iTSP 설치가 완료되면 아래 그림과 같이 설치 폴더에 iTSP 실행 Link들과 각종 관련 폴더들이 만들어져 있습니다. iTSP는 Real Target(실타겟)과 연결하여 디버깅하는 방식입니다. Target과 TRACE32 HW를 연결한 다음 &rdquo;START_RH850&rdquo; 파일을 더블클릭하여 TRACE32 PowerView를 실행합니다.</p>
 
<p>iTSP 설치가 완료되면 아래 그림과 같이 설치 폴더에 iTSP 실행 Link들과 각종 관련 폴더들이 만들어져 있습니다. iTSP는 Real Target(실타겟)과 연결하여 디버깅하는 방식입니다. Target과 TRACE32 HW를 연결한 다음 &rdquo;START_RH850&rdquo; 파일을 더블클릭하여 TRACE32 PowerView를 실행합니다.</p>
 +
<p><img src="/data/wiki/2018-10-16/1539651755.jpg" alt="" /></p>
 
<p>&nbsp;</p>
 
<p>&nbsp;</p>
 
<p>※ TRACE32 SW 설치 폴더 경로가 C:\T32가 아니라면, iTSP 설치폴더의 &ldquo;T32_Path.ini&rdquo; 파일을 열고, 설치 경로를 수정해야 합니다.</p>
 
<p>※ TRACE32 SW 설치 폴더 경로가 C:\T32가 아니라면, iTSP 설치폴더의 &ldquo;T32_Path.ini&rdquo; 파일을 열고, 설치 경로를 수정해야 합니다.</p>
<p>&nbsp;</p>
+
<p><img src="/data/wiki/2018-10-16/1539651780.jpg" alt="" /></p>
<p>&nbsp;</p>
+
<p><img src="/data/wiki/2018-10-16/1539651798.jpg" alt="" /></p>
<p>&nbsp;</p>
+
<p>&nbsp;</p>
+
<p>&nbsp;</p>
+
<p>&nbsp;</p>
+
<p>&nbsp;</p>
+
<p>&nbsp;</p>
+
 
<p>&nbsp;</p>
 
<p>&nbsp;</p>
 
<h1>iTSP(for RH850) 기능 소개</h1>
 
<h1>iTSP(for RH850) 기능 소개</h1>
 
<p>&rdquo;START_RH850&rdquo; 파일을 더블클릭하여 실행하면 TRACE32 SW와 함께 &rsquo;RH850 Auto Setup&rsquo; GUI 환경이 열립니다. 해당 창에서는 다운로드 및 디버그 모드 설정, OptionByte 수정 등을 포함한 RH850 디버깅에 특화된 기능들을 사용할 수 있습니다.</p>
 
<p>&rdquo;START_RH850&rdquo; 파일을 더블클릭하여 실행하면 TRACE32 SW와 함께 &rsquo;RH850 Auto Setup&rsquo; GUI 환경이 열립니다. 해당 창에서는 다운로드 및 디버그 모드 설정, OptionByte 수정 등을 포함한 RH850 디버깅에 특화된 기능들을 사용할 수 있습니다.</p>
<p>&nbsp;</p>
+
<p><img src="/data/wiki/2018-10-16/1539651854.jpg" alt="" /></p>
 
<p><strong>[iTSP for RH850]</strong></p>
 
<p><strong>[iTSP for RH850]</strong></p>
 
<p><strong>&nbsp;</strong></p>
 
<p><strong>&nbsp;</strong></p>
 
<p><strong>&nbsp;</strong>디버깅 중에 iTSP를 다시 실행할 때는 칩 모양 아이콘을 클릭합니다.</p>
 
<p><strong>&nbsp;</strong>디버깅 중에 iTSP를 다시 실행할 때는 칩 모양 아이콘을 클릭합니다.</p>
 +
<p><img src="/data/wiki/2018-10-16/1539651863.jpg" alt="" /></p>
 
<p>&nbsp;</p>
 
<p>&nbsp;</p>
 
<p>&nbsp;</p>
 
<p>&nbsp;</p>
63번째 줄: 57번째 줄:
 
<p>플래시 다운로드 할 이미지 파일(ELF)을 지정합니다. 이미지 파일은 총 두 개까지 지정할 수 있습니다.</p>
 
<p>플래시 다운로드 할 이미지 파일(ELF)을 지정합니다. 이미지 파일은 총 두 개까지 지정할 수 있습니다.</p>
 
<p>예를 들어, Boot/Application SW 두 개의 이미지를 다운로드 할 경우, Image File [1]/[2] 순서대로 파일을 선택합니다.</p>
 
<p>예를 들어, Boot/Application SW 두 개의 이미지를 다운로드 할 경우, Image File [1]/[2] 순서대로 파일을 선택합니다.</p>
<p>&nbsp;</p>
+
<p><img src="/data/wiki/2018-10-16/1539651871.jpg" alt="" /></p>
 
<p>&nbsp;</p>
 
<p>&nbsp;</p>
 
<h2>다운로드</h2>
 
<h2>다운로드</h2>
69번째 줄: 63번째 줄:
 
<h3>플래시 다운 모드</h3>
 
<h3>플래시 다운 모드</h3>
 
<p>&nbsp;&nbsp;&rsquo;플래시 다운 모드&rsquo;는 플래시 다운로드를 위한 메모리 퓨징 작업을 진행하고, Target 메모리에 Code와 Data를 실제 메모리에 다운로드 합니다. 더불어 디버깅을 위한 디버그 심볼을 T32 SW에 로드합니다.</p>
 
<p>&nbsp;&nbsp;&rsquo;플래시 다운 모드&rsquo;는 플래시 다운로드를 위한 메모리 퓨징 작업을 진행하고, Target 메모리에 Code와 Data를 실제 메모리에 다운로드 합니다. 더불어 디버깅을 위한 디버그 심볼을 T32 SW에 로드합니다.</p>
 +
<p><img src="/data/wiki/2018-10-16/1539651885.jpg" alt="" /></p>
 
<p>&nbsp;</p>
 
<p>&nbsp;</p>
 
<h3>디버그 모드</h3>
 
<h3>디버그 모드</h3>
 
<p>Target 메모리에 들어있는 정보가 기존과 동일하다면 즉, 재 다운로드 할 필요가 없다면 플래시 메모리의 수명을 고려해 &rsquo;디버그 모드&rsquo;로 진입하는 것이 효율적입니다. Target 메모리에는 영향을 주지 않고, 디버깅을 위한 디버그 심볼만을 T32에 로드하게 됩니다.</p>
 
<p>Target 메모리에 들어있는 정보가 기존과 동일하다면 즉, 재 다운로드 할 필요가 없다면 플래시 메모리의 수명을 고려해 &rsquo;디버그 모드&rsquo;로 진입하는 것이 효율적입니다. Target 메모리에는 영향을 주지 않고, 디버깅을 위한 디버그 심볼만을 T32에 로드하게 됩니다.</p>
<p>&nbsp;</p>
+
<p><img src="/data/wiki/2018-10-16/1539651890.jpg" alt="" /></p>
<p>&nbsp;</p>
+
<p>&nbsp;</p>
+
 
<p>&nbsp;</p>
 
<p>&nbsp;</p>
 
<h3>디버깅 시작 주소(Start Point) 설정</h3>
 
<h3>디버깅 시작 주소(Start Point) 설정</h3>
 
<p>디버깅 시작 주소(Start Point)를 설정합니다. &rsquo;Reset Vector&rsquo; 또는 특정 심볼 &rsquo;Func&rsquo; 위치로 지정할 수 있습니다. 예를들어, Target Initializing이 포함된 Startup Code에 대한 디버깅을 제외하고, main 함수 이후부터 디버깅을 하고자 하는 경우, 아래의 이미지처럼 Func 위치를 &rsquo;main&rsquo; 함수로 지정합니다.</p>
 
<p>디버깅 시작 주소(Start Point)를 설정합니다. &rsquo;Reset Vector&rsquo; 또는 특정 심볼 &rsquo;Func&rsquo; 위치로 지정할 수 있습니다. 예를들어, Target Initializing이 포함된 Startup Code에 대한 디버깅을 제외하고, main 함수 이후부터 디버깅을 하고자 하는 경우, 아래의 이미지처럼 Func 위치를 &rsquo;main&rsquo; 함수로 지정합니다.</p>
 
<p>심볼명(함수명)을 기억하기 어렵다면, &rsquo;Sel&rsquo; 버튼을 눌러서 선택합니다. (단, 디버그 심볼이 T32 SW에 로드된 상태에서 선택이 가능합니다. 우선 Reser Vector로 지정한 뒤, 심볼 로드 이후에 선택하십시오.)</p>
 
<p>심볼명(함수명)을 기억하기 어렵다면, &rsquo;Sel&rsquo; 버튼을 눌러서 선택합니다. (단, 디버그 심볼이 T32 SW에 로드된 상태에서 선택이 가능합니다. 우선 Reser Vector로 지정한 뒤, 심볼 로드 이후에 선택하십시오.)</p>
<p>&nbsp;</p>
+
<p><img src="/data/wiki/2018-10-16/1539651943.jpg" alt="" /></p>
<p>&nbsp;</p>
+
<p><img src="/data/wiki/2018-10-16/1539651951.jpg" alt="" /></p>
 
<p>&nbsp;</p>
 
<p>&nbsp;</p>
 
<h2>타겟 리셋 없이 디버깅(Attach 모드)</h2>
 
<h2>타겟 리셋 없이 디버깅(Attach 모드)</h2>
 
<p>&nbsp;&nbsp; Attach 기능을 사용하여 러닝중인 Target 보드에 JTAG을 연결할 수 있습니다. Lockup이 발생한 Target에 TRACE32를 뒤늦게 연결하여 디버깅을 시도할 때 유용합니다. 알맞은 Debug Type을 선택하고, &rdquo;Attach&rdquo;를 클릭하면 타겟 리셋 없이 디버깅 모드에 진입합니다.</p>
 
<p>&nbsp;&nbsp; Attach 기능을 사용하여 러닝중인 Target 보드에 JTAG을 연결할 수 있습니다. Lockup이 발생한 Target에 TRACE32를 뒤늦게 연결하여 디버깅을 시도할 때 유용합니다. 알맞은 Debug Type을 선택하고, &rdquo;Attach&rdquo;를 클릭하면 타겟 리셋 없이 디버깅 모드에 진입합니다.</p>
<p>&nbsp;</p>
+
<p><img src="/data/wiki/2018-10-16/1539651959.jpg" alt="" /></p>
 
<h2>UART 연결</h2>
 
<h2>UART 연결</h2>
 
<p>&nbsp; RH850 Target의 Serial flash와 OptionByte 프로그래밍을 위한 UART 연결을 지원합니다.</p>
 
<p>&nbsp; RH850 Target의 Serial flash와 OptionByte 프로그래밍을 위한 UART 연결을 지원합니다.</p>
90번째 줄: 83번째 줄:
 
<p>UART 연결을 위해서는 &rsquo;OSC Frequency&rsquo;와 &rsquo;CPU Frequency&rsquo; 설정이 필요합니다. Target의 스펙을 확인하고 알맞은 값으로 셋팅합니다. &rsquo;Baudrate&rsquo;는 UART 전송 속도를 의미하며, Target 연결에는 큰 영향을 미치지 않습니다.</p>
 
<p>UART 연결을 위해서는 &rsquo;OSC Frequency&rsquo;와 &rsquo;CPU Frequency&rsquo; 설정이 필요합니다. Target의 스펙을 확인하고 알맞은 값으로 셋팅합니다. &rsquo;Baudrate&rsquo;는 UART 전송 속도를 의미하며, Target 연결에는 큰 영향을 미치지 않습니다.</p>
 
<p>EVL Tartget 기준으로 OSC Frequency는 8/10/16/20 MHz, CPU Frequency는 40/80/160/320 Mhz를 따릅니다.</p>
 
<p>EVL Tartget 기준으로 OSC Frequency는 8/10/16/20 MHz, CPU Frequency는 40/80/160/320 Mhz를 따릅니다.</p>
 +
<p><img src="/data/wiki/2018-10-16/1539652053.jpg" alt="" /></p>
 
<p>&nbsp;</p>
 
<p>&nbsp;</p>
 
<p>OSC/CPU Frequency를 설정한 다음 &lsquo;UART Connection&rsquo;을 클릭하여 UART 모드로 진입합니다. UART 모드로 정상 진입 했을 경우 &lsquo;UART Connection : OK&rsquo; 메시지를 확인과 함께 Serial flash 및 OptionByte 셋팅을 할 수 있습니다.</p>
 
<p>OSC/CPU Frequency를 설정한 다음 &lsquo;UART Connection&rsquo;을 클릭하여 UART 모드로 진입합니다. UART 모드로 정상 진입 했을 경우 &lsquo;UART Connection : OK&rsquo; 메시지를 확인과 함께 Serial flash 및 OptionByte 셋팅을 할 수 있습니다.</p>
 +
<p><img src="/data/wiki/2018-10-16/1539652062.jpg" alt="" /></p>
 
<p>&nbsp;</p>
 
<p>&nbsp;</p>
 
<h3>OptionByte 확인</h3>
 
<h3>OptionByte 확인</h3>
 
<p>&nbsp; UART 모드로 진입한 이후부터 OptionByte 확인이 가능합니다. 셋팅 값을 변경하고 &rsquo;Adjust&rsquo;를 클릭하면 변경된 OptionByte의 값을 바로 확인할 수 있습니다. 셋팅과 관련된 사항은 아래의 내용을 참고해 주십시오.</p>
 
<p>&nbsp; UART 모드로 진입한 이후부터 OptionByte 확인이 가능합니다. 셋팅 값을 변경하고 &rsquo;Adjust&rsquo;를 클릭하면 변경된 OptionByte의 값을 바로 확인할 수 있습니다. 셋팅과 관련된 사항은 아래의 내용을 참고해 주십시오.</p>
 +
<p><img src="/data/wiki/2018-10-16/1539652069.jpg" alt="" /></p>
 
<p>&nbsp;</p>
 
<p>&nbsp;</p>
 
<h3>디버그 포트 타입 변경</h3>
 
<h3>디버그 포트 타입 변경</h3>
100번째 줄: 96번째 줄:
 
<p>&nbsp;</p>
 
<p>&nbsp;</p>
 
<p>※ 디버그 포트 타입 변경은 UART 연결이 되었을 때만 가능합니다.</p>
 
<p>※ 디버그 포트 타입 변경은 UART 연결이 되었을 때만 가능합니다.</p>
 +
<p><img src="/data/wiki/2018-10-16/1539652247.jpg" alt="" /></p>
 
<p>&nbsp;</p>
 
<p>&nbsp;</p>
 
<p>&nbsp;디버그 포트 타입을 선택하고, &rsquo;Adjust&rsquo;를 클릭하면 OptionByte가 변경되어 선택한 모드로 셋팅됩니다.</p>
 
<p>&nbsp;디버그 포트 타입을 선택하고, &rsquo;Adjust&rsquo;를 클릭하면 OptionByte가 변경되어 선택한 모드로 셋팅됩니다.</p>
 +
<p><img src="/data/wiki/2018-10-16/1539652255.jpg" alt="" /></p>
 
<p>&nbsp;</p>
 
<p>&nbsp;</p>
 
<h3>와치독(watchdog) 설정</h3>
 
<h3>와치독(watchdog) 설정</h3>
 
<p>&nbsp;&nbsp;와치독(watchdog) 활성화는 &rsquo;ON&rsquo;, 비활성화는 &rsquo;OFF&rsquo;를 선택하고, &rsquo;Adjust&rsquo;를 클릭하면 OptionByte가 변경됩니다. Window Watchdog Timer(WDTA)를 제어하는 셋팅이며, 일반적으로 디버깅을 위해서는 &rsquo;OFF&rsquo; 셋팅하는 것을 권장합니다.</p>
 
<p>&nbsp;&nbsp;와치독(watchdog) 활성화는 &rsquo;ON&rsquo;, 비활성화는 &rsquo;OFF&rsquo;를 선택하고, &rsquo;Adjust&rsquo;를 클릭하면 OptionByte가 변경됩니다. Window Watchdog Timer(WDTA)를 제어하는 셋팅이며, 일반적으로 디버깅을 위해서는 &rsquo;OFF&rsquo; 셋팅하는 것을 권장합니다.</p>
 +
<p><img src="/data/wiki/2018-10-16/1539652263.jpg" alt="" /></p>
 
<p>&nbsp;</p>
 
<p>&nbsp;</p>
 
<h3>ICUS(ICU-Security) 옵션</h3>
 
<h3>ICUS(ICU-Security) 옵션</h3>
 
<p>ICU-S unit을 사용하는 경우 ICU-S의 활성화를 위한 셋팅을 합니다. &rsquo;Enable&rsquo;을 선택하고 &rsquo;Adjust&rsquo;를 클릭하면 ECC 오류를 방지하기 위해 ICU-S 데이터 플래시를 진행합니다. ICUS 옵션에 대해 별도의 고려사항이 없을 경우에는 &rsquo;Disable&rsquo;로 선택해 주십시오.</p>
 
<p>ICU-S unit을 사용하는 경우 ICU-S의 활성화를 위한 셋팅을 합니다. &rsquo;Enable&rsquo;을 선택하고 &rsquo;Adjust&rsquo;를 클릭하면 ECC 오류를 방지하기 위해 ICU-S 데이터 플래시를 진행합니다. ICUS 옵션에 대해 별도의 고려사항이 없을 경우에는 &rsquo;Disable&rsquo;로 선택해 주십시오.</p>
 +
<p><img src="/data/wiki/2018-10-16/1539652370.jpg" alt="" /></p>
 
<p>&nbsp;</p>
 
<p>&nbsp;</p>
 
<h1>RH850 디버깅 가이드 FAQ</h1>
 
<h1>RH850 디버깅 가이드 FAQ</h1>
 
<h2>PER(Peripheral) browser 활용</h2>
 
<h2>PER(Peripheral) browser 활용</h2>
 
<p>TRACE32는 RH850 Target을 디버깅 하는데 유용한 PER(Peripheral) browser를 제공하고 있으며, 각종 외부레지스터 제어를 쉽게 하도록 지원합니다.</p>
 
<p>TRACE32는 RH850 Target을 디버깅 하는데 유용한 PER(Peripheral) browser를 제공하고 있으며, 각종 외부레지스터 제어를 쉽게 하도록 지원합니다.</p>
<p>T32 SW에서 &nbsp;명령어를 입력해 PER(Peripheral) browser를 볼 수 있습니다.</p>
+
<p>T32 SW에서 <img src="/data/wiki/2018-10-16/1539652406.jpg" alt="" />&nbsp;명령어를 입력해 PER(Peripheral) browser를 볼 수 있습니다.</p>
 +
<p><img src="/data/wiki/2018-10-16/1539652415.jpg" alt="" /></p>
 
<p>&nbsp;</p>
 
<p>&nbsp;</p>
 
<h2>OS 기반의 디버깅</h2>
 
<h2>OS 기반의 디버깅</h2>
 
<p>차량용 OS로 주로 사용되는 OSEK/AUTOSAR의 경우 ORTI 파일을 이용해 TRACE32에서 커널의 정보를 쉽게 파악 할 수 있습니다.</p>
 
<p>차량용 OS로 주로 사용되는 OSEK/AUTOSAR의 경우 ORTI 파일을 이용해 TRACE32에서 커널의 정보를 쉽게 파악 할 수 있습니다.</p>
<p>T32 SW에서 &nbsp;명령어를 실행하여 ORTI 파일을 적용하면, 아래 이미지와 같이 TASK Switching 정보와 TASK 실행 통계 정보 등을 알 수 있습니다.</p>
+
<p>T32 SW에서 <img src="/data/wiki/2018-10-16/1539652429.jpg" alt="" />&nbsp;명령어를 실행하여 ORTI 파일을 적용하면, 아래 이미지와 같이 TASK Switching 정보와 TASK 실행 통계 정보 등을 알 수 있습니다.</p>
<p>&nbsp;</p>
+
<p><img src="/data/wiki/2018-10-16/1539652438.jpg" alt="" /></p>
<p>&nbsp;</p>
+
<p><img src="/data/wiki/2018-10-16/1539652442.jpg" alt="" /></p>
 
<p>&nbsp;</p>
 
<p>&nbsp;</p>
 
<h2>BMC(Bench Mark Counter)를 이용한 SW 성능(런타임) 측정</h2>
 
<h2>BMC(Bench Mark Counter)를 이용한 SW 성능(런타임) 측정</h2>
124번째 줄: 125번째 줄:
 
<p>&nbsp;</p>
 
<p>&nbsp;</p>
 
<p>1)&nbsp;&nbsp;&nbsp; 단일 함수의 수행시간(런타임)을 측정하기 위해 아래의 메뉴를 선택합니다.</p>
 
<p>1)&nbsp;&nbsp;&nbsp; 단일 함수의 수행시간(런타임)을 측정하기 위해 아래의 메뉴를 선택합니다.</p>
<p>&nbsp;</p>
+
<p><img src="/data/wiki/2018-10-16/1539652452.jpg" alt="" /></p>
<p>&nbsp;</p>
+
<p>&nbsp;</p>
+
<p>&nbsp;</p>
+
 
<p>&nbsp;</p>
 
<p>&nbsp;</p>
 
<p>2)&nbsp;&nbsp;&nbsp; 함수 형태의 sYmbol 리스트와 BMC state를 확인하는 창이 나옵니다.</p>
 
<p>2)&nbsp;&nbsp;&nbsp; 함수 형태의 sYmbol 리스트와 BMC state를 확인하는 창이 나옵니다.</p>
<p>&nbsp;</p>
+
<p><img src="/data/wiki/2018-10-16/1539652460.jpg" alt="" /></p>
 
<p>&nbsp;</p>
 
<p>&nbsp;</p>
 
<p>3)&nbsp;&nbsp;&nbsp; 측정하고 싶은 함수를 sYmbol 창에서 더블클릭 하면, 자동 breakpoint가 설정됩니다.</p>
 
<p>3)&nbsp;&nbsp;&nbsp; 측정하고 싶은 함수를 sYmbol 창에서 더블클릭 하면, 자동 breakpoint가 설정됩니다.</p>
 +
<p><img src="/data/wiki/2018-10-16/1539652469.jpg" alt="" /></p>
 
<p>&nbsp;</p>
 
<p>&nbsp;</p>
 +
<p>4)&nbsp;&nbsp;&nbsp; Tartget을 러닝(GO)하면 수행시간(런타임) 측정 결과를 2초마다 Update하여 표시합니다.</p>
 +
<p><img src="/data/wiki/2018-10-16/1539652478.jpg" alt="" /></p>
 
<p>&nbsp;</p>
 
<p>&nbsp;</p>
<p>4)&nbsp;&nbsp;&nbsp; Tartget을 러닝(GO)하면 수행시간(런타임) 측정 결과를 2초마다 Update하여 표시합니다.</p>
 

2018년 10월 16일 (화) 10:15 기준 최신판

iTSP Overview

iTSP란?

iTSP(integrated TRACE32 Support Package)는 자동차 SW 디버깅 환경을 간단하게 설정해주는 스크립트(CMM) 패키지입니다. 한컴MDS와 Silicon Vendor가 협력해 제작한 환경이며 프로세서를 고려한 타겟 셋팅 기능들과 자동차 SW 디버깅에 특화된 기능들을 제공하고 있습니다. Silicon Vendor와 프로세서의 선택만으로 디버깅에 사용되는 환경 설정을 쉽게 도와주는 기능으로 해당 프로세서의 내부 구성과 로직에 따라 Multi-Core 설정, 플래시 메모리 다운로드, Option Byte 설정 등을 쉽게 할 수 있도록 합니다.

자동차 ECU 개발에 사용되는 모든 프로세서에 대해 지원을 하고 있으며 Infineon, NXP, ST, Renesas, TI, NVIDIA 등과 같은 다양한 칩셋에 대한 정보가 들어 있습니다.

 

※ 원하시는 프로세서에 대한 항목이 없는 경우에는 www.trace32.com 홈페이지의 Q&A 게시판 또는 trace32@hancommds.com 메일을 이용해주십시오.

 

iTSP 지원 환경

  iTSP는 반드시 License Maintenance(유지보수)를 보유한 상태에서 사용이 가능합니다. 단, 평가판(Demo Version)의 경우에는 별도의 제한이 없습니다.

  T32 SW(PowerView)의 버전과 License Maintenance는  명령어로 확인할 수 있습니다.

 

 

iTSP(for RH850) 사용법

iTSP 설치와 TRACE32 Update

  iTSP 설치와 TRACE32 SW Update는 TRACE32 홈페이지(www.trace32.com)에서 가능합니다.

iTSP 설치

1)    TRACE32 홈페이지의 메인 화면에서 ’iTSP’ 아이콘을 클릭합니다.

 

2)    디버깅 하고자 하는 SoC 제조사를 선택합니다.

 

3)    선택한 iTSP를 다운로드 받고, 원하는 위치 경로에 ’iTSP_<SoC명>’ 형태로 압축해제 합니다.

※ 만약, 개발 중인 프로젝트의 개수가 2개 이상이거나 프로젝트의 Workspace 경로가 자주 바뀌는 경우(예를들면, 날짜별로 프로젝트 폴더를 통채로 복사하여 개발하는 경우)에는 프로젝트의 Workspace 폴더 내에 ’iTSP_<SoC명>’ 형태로 압축해제하면, 관리에 용이합니다.

 

4)    기존에 사용하던 iTSP 폴더가 존재하고 업데이트 버전을 위해 다운로드한 것이라면, 만약을 위해 iTSP폴더 Bakup 작업을 해놓는 것을 권장합니다. T32 설치 폴더에 다운로드를 했을 경우, 아래와 이미지와 같이 다운로드가 됩니다. (SoC 종류 추가 시 동일한 폴더에 덮어쓰기 합니다.)

 

TRACE32 Update

1)    http://trace32.com/wiki/index.php/TRACE32_Update 웹사이트를 열고, 원하는 SoC와 최신 Software Version을 찾아서 다운로드 받습니다.

※     최신 SW 이전의 Version(구버전 SW)은 배포하지 않으므로, 보유한 License Maintenance 기간을 반드시 체크한 다음 업데이트를 진행해야 합니다.

 

2)    압축해제 한 후, 압축해제 한 파일들을 TRACE32가 설치된 루트 폴더(C:\T32\)에 덮어쓰기 합니다.

 

iTSP 실행 방법

iTSP 설치가 완료되면 아래 그림과 같이 설치 폴더에 iTSP 실행 Link들과 각종 관련 폴더들이 만들어져 있습니다. iTSP는 Real Target(실타겟)과 연결하여 디버깅하는 방식입니다. Target과 TRACE32 HW를 연결한 다음 ”START_RH850” 파일을 더블클릭하여 TRACE32 PowerView를 실행합니다.

 

※ TRACE32 SW 설치 폴더 경로가 C:\T32가 아니라면, iTSP 설치폴더의 “T32_Path.ini” 파일을 열고, 설치 경로를 수정해야 합니다.

 

iTSP(for RH850) 기능 소개

”START_RH850” 파일을 더블클릭하여 실행하면 TRACE32 SW와 함께 ’RH850 Auto Setup’ GUI 환경이 열립니다. 해당 창에서는 다운로드 및 디버그 모드 설정, OptionByte 수정 등을 포함한 RH850 디버깅에 특화된 기능들을 사용할 수 있습니다.

[iTSP for RH850]

 

 디버깅 중에 iTSP를 다시 실행할 때는 칩 모양 아이콘을 클릭합니다.

 

 

 iTSP를 최초 실행하는 경우 이미지 파일(ELF) 지정과 디버깅 시작 지점(Start Point) 선택이 필요하며, 최초 선택 이후에는 자동 저장되는 구조입니다. 자세한 사항은 아래의 내용을 따라 주십시오.

이미지 파일(ELF) 선택

플래시 다운로드 할 이미지 파일(ELF)을 지정합니다. 이미지 파일은 총 두 개까지 지정할 수 있습니다.

예를 들어, Boot/Application SW 두 개의 이미지를 다운로드 할 경우, Image File [1]/[2] 순서대로 파일을 선택합니다.

 

다운로드

  다운로드는 두 가지 방식입니다. 1)Target 메모리에 플래시 프로그래밍을 하는 ’플래시 다운 모드(목차 3.2.1)’와 2)플래시 프로그래밍 없이 T32 SW에 디버그 심볼 정보만 로드하는 ’디버그 모드(목차 3.2.2)’가 있습니다.

플래시 다운 모드

  ’플래시 다운 모드’는 플래시 다운로드를 위한 메모리 퓨징 작업을 진행하고, Target 메모리에 Code와 Data를 실제 메모리에 다운로드 합니다. 더불어 디버깅을 위한 디버그 심볼을 T32 SW에 로드합니다.

 

디버그 모드

Target 메모리에 들어있는 정보가 기존과 동일하다면 즉, 재 다운로드 할 필요가 없다면 플래시 메모리의 수명을 고려해 ’디버그 모드’로 진입하는 것이 효율적입니다. Target 메모리에는 영향을 주지 않고, 디버깅을 위한 디버그 심볼만을 T32에 로드하게 됩니다.

 

디버깅 시작 주소(Start Point) 설정

디버깅 시작 주소(Start Point)를 설정합니다. ’Reset Vector’ 또는 특정 심볼 ’Func’ 위치로 지정할 수 있습니다. 예를들어, Target Initializing이 포함된 Startup Code에 대한 디버깅을 제외하고, main 함수 이후부터 디버깅을 하고자 하는 경우, 아래의 이미지처럼 Func 위치를 ’main’ 함수로 지정합니다.

심볼명(함수명)을 기억하기 어렵다면, ’Sel’ 버튼을 눌러서 선택합니다. (단, 디버그 심볼이 T32 SW에 로드된 상태에서 선택이 가능합니다. 우선 Reser Vector로 지정한 뒤, 심볼 로드 이후에 선택하십시오.)

 

타겟 리셋 없이 디버깅(Attach 모드)

   Attach 기능을 사용하여 러닝중인 Target 보드에 JTAG을 연결할 수 있습니다. Lockup이 발생한 Target에 TRACE32를 뒤늦게 연결하여 디버깅을 시도할 때 유용합니다. 알맞은 Debug Type을 선택하고, ”Attach”를 클릭하면 타겟 리셋 없이 디버깅 모드에 진입합니다.

UART 연결

  RH850 Target의 Serial flash와 OptionByte 프로그래밍을 위한 UART 연결을 지원합니다.

OSC/CPU Frequency 설정과 UART 연결

UART 연결을 위해서는 ’OSC Frequency’와 ’CPU Frequency’ 설정이 필요합니다. Target의 스펙을 확인하고 알맞은 값으로 셋팅합니다. ’Baudrate’는 UART 전송 속도를 의미하며, Target 연결에는 큰 영향을 미치지 않습니다.

EVL Tartget 기준으로 OSC Frequency는 8/10/16/20 MHz, CPU Frequency는 40/80/160/320 Mhz를 따릅니다.

 

OSC/CPU Frequency를 설정한 다음 ‘UART Connection’을 클릭하여 UART 모드로 진입합니다. UART 모드로 정상 진입 했을 경우 ‘UART Connection : OK’ 메시지를 확인과 함께 Serial flash 및 OptionByte 셋팅을 할 수 있습니다.

 

OptionByte 확인

  UART 모드로 진입한 이후부터 OptionByte 확인이 가능합니다. 셋팅 값을 변경하고 ’Adjust’를 클릭하면 변경된 OptionByte의 값을 바로 확인할 수 있습니다. 셋팅과 관련된 사항은 아래의 내용을 참고해 주십시오.

 

디버그 포트 타입 변경

RH850 Target은 다운로드 및 SW 디버깅을 위한 JTAG, LPD4, LPD1 모드와 Serial Flash 프로그래밍을 위한 UART(No Debugging) 모드가 있습니다. iTSP 환경을 이용하면 원하는 모드로 쉽게 변경할 수 있습니다.

 

※ 디버그 포트 타입 변경은 UART 연결이 되었을 때만 가능합니다.

 

 디버그 포트 타입을 선택하고, ’Adjust’를 클릭하면 OptionByte가 변경되어 선택한 모드로 셋팅됩니다.

 

와치독(watchdog) 설정

  와치독(watchdog) 활성화는 ’ON’, 비활성화는 ’OFF’를 선택하고, ’Adjust’를 클릭하면 OptionByte가 변경됩니다. Window Watchdog Timer(WDTA)를 제어하는 셋팅이며, 일반적으로 디버깅을 위해서는 ’OFF’ 셋팅하는 것을 권장합니다.

 

ICUS(ICU-Security) 옵션

ICU-S unit을 사용하는 경우 ICU-S의 활성화를 위한 셋팅을 합니다. ’Enable’을 선택하고 ’Adjust’를 클릭하면 ECC 오류를 방지하기 위해 ICU-S 데이터 플래시를 진행합니다. ICUS 옵션에 대해 별도의 고려사항이 없을 경우에는 ’Disable’로 선택해 주십시오.

 

RH850 디버깅 가이드 FAQ

PER(Peripheral) browser 활용

TRACE32는 RH850 Target을 디버깅 하는데 유용한 PER(Peripheral) browser를 제공하고 있으며, 각종 외부레지스터 제어를 쉽게 하도록 지원합니다.

T32 SW에서  명령어를 입력해 PER(Peripheral) browser를 볼 수 있습니다.

 

OS 기반의 디버깅

차량용 OS로 주로 사용되는 OSEK/AUTOSAR의 경우 ORTI 파일을 이용해 TRACE32에서 커널의 정보를 쉽게 파악 할 수 있습니다.

T32 SW에서  명령어를 실행하여 ORTI 파일을 적용하면, 아래 이미지와 같이 TASK Switching 정보와 TASK 실행 통계 정보 등을 알 수 있습니다.

 

BMC(Bench Mark Counter)를 이용한 SW 성능(런타임) 측정

BMC(Bench Mark Counter)는 모든 RH850 Target에 존재하는 온칩 레지스터입니다. CPU의 성능 측정을 위한 기준 카운터로 사용되며, BMC의 Event Counter를 이용하여 Target Hardware의 동작 정보를 확인할 수 있습니다. 특히, 탐침 코드의 삽입이 없이 코드의 실행시간(runtime)을 정확하게 측정할 수 있어서 자동차 SW를 디버깅하는데 유용한 기능으로 사용됩니다.

 

1)    단일 함수의 수행시간(런타임)을 측정하기 위해 아래의 메뉴를 선택합니다.

 

2)    함수 형태의 sYmbol 리스트와 BMC state를 확인하는 창이 나옵니다.

 

3)    측정하고 싶은 함수를 sYmbol 창에서 더블클릭 하면, 자동 breakpoint가 설정됩니다.

 

4)    Tartget을 러닝(GO)하면 수행시간(런타임) 측정 결과를 2초마다 Update하여 표시합니다.