"MATLAB Simulink 와 TRACE32 연동 & PIL TEST 가이드"의 두 판 사이의 차이
1번째 줄: | 1번째 줄: | ||
− | < | + | <h1>1. Overview</h1> |
<p>본 문서는 MBD(Model-based development) SW개발시 모델-타겟 코드간의 Back-to-back 테스트에 TRACE32를 적용하는 방법을 설명한다. 자료 설명에 사용된 개발 환경은 아래와 같다.</p> | <p>본 문서는 MBD(Model-based development) SW개발시 모델-타겟 코드간의 Back-to-back 테스트에 TRACE32를 적용하는 방법을 설명한다. 자료 설명에 사용된 개발 환경은 아래와 같다.</p> | ||
− | < | + | <p> |
<ul> | <ul> | ||
− | <li> Matlab R2015a</li> | + | <li>ü Matlab R2015a</li> |
− | <li> Simulink</li> | + | <li>ü Simulink</li> |
− | <li> Embedded-coder</li> | + | <li>ü Embedded-coder</li> |
− | <li> Tasking VX-toolset 6.0r1</li> | + | <li>ü Tasking VX-toolset 6.0r1</li> |
− | <li> 타겟 CPU : TC277TF | + | <li>ü 타겟 CPU : TC277TF</li> |
</ul> | </ul> | ||
− | + | </p> | |
− | < | + | <h1>2. Simulink-TRACE32 연동 준비사항</h1> |
− | + | <h2>2.1. TRACE32 Integration for Simulink 설치</h2> | |
<p>Simulink 와 TRACE32 의 연동을 위한 프로그램을 설치한다.</p> | <p>Simulink 와 TRACE32 의 연동을 위한 프로그램을 설치한다.</p> | ||
− | <p>1) ~~\demo\env\matlabsimulink 폴더 내 t32intsimulink_setup.exe 프로그램을 실행 | + | <p>1) ~~\demo\env\matlabsimulink 폴더 내 t32intsimulink_setup.exe 프로그램을 실행</p> |
− | <p> <img src="/data/wiki/2017-07-27/ | + | <p> <img src="/data/wiki/2017-07-27/1501130445.png" alt="" /></p> |
− | <p>2) 프로그램 동의</p> | + | <p> 2) 프로그램 동의</p> |
− | <p> <img src="/data/wiki/2017-07-27/ | + | <p> <img src="/data/wiki/2017-07-27/1501130452.png" alt="" /></p> |
+ | <p> </p> | ||
<p>3) Integration 설치 경로 설정</p> | <p>3) Integration 설치 경로 설정</p> | ||
− | <p> <img src="/data/wiki/2017-07-27/ | + | <p> <img src="/data/wiki/2017-07-27/1501130461.png" alt="" /></p> |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
<p> </p> | <p> </p> | ||
+ | <p>4) <span style="text-decoration: underline;">사용할 버전 체크 </span></p> | ||
+ | <p> <img src="/data/wiki/2017-07-27/1501130466.png" alt="" /></p> | ||
<p> </p> | <p> </p> | ||
+ | <p>5) 설치 완료</p> | ||
+ | <p> <img src="/data/wiki/2017-07-27/1501130474.png" alt="" /></p> | ||
+ | <p> 설치가 완료되면, 해당 경로에 아래와 같이 폴더 및 파일이 생성됨</p> | ||
+ | <p> <img src="/data/wiki/2017-07-27/1501130496.png" alt="" /></p> | ||
<p> </p> | <p> </p> | ||
+ | <h2>2.2. MATLAB 설치 및 확인</h2> | ||
+ | <p>1) TRACE32 Integration 확인</p> | ||
+ | <p><strong>>>ver</strong> 명령을 입력하여, 아래와 같이 TRACE32 Integration 설치 여부 확인</p> | ||
+ | <p> <img src="/data/wiki/2017-07-27/1501130507.png" alt="" /></p> | ||
<p> </p> | <p> </p> | ||
+ | <p>2) mex 컴파일러 설치 및 확인 >>mex -setup</p> | ||
+ | <p> <img src="/data/wiki/2017-07-27/1501130514.png" alt="" /></p> | ||
+ | <p> </p> | ||
+ | <p>3) Cross-Compiler 설치</p> | ||
+ | <p>모델로부터 소스코드 생성 후, 타겟 바이너리 이미지 생성을 위해 사용할 Cross-Compiler설치 확인</p> | ||
+ | <p>본 문서에서는 <strong>TASKING VX-toolset 6.1r1</strong> 사용</p> | ||
+ | <p> <img src="/data/wiki/2017-07-27/1501130526.png" alt="" /></p> | ||
+ | <p> </p> | ||
+ | <h1>3. PIL Demo model 구축</h1> | ||
+ | <p>MBD로 작성한 모델의 SIL - PIL 테스트를 진행하고 결과를 비교하기(back to back) 위한 데모 구축 방법을 소개한다.</p> | ||
+ | <p>1) <strong>open('rtwdemo_sil_modelblock')</strong> 명령을 입력하여 테스트 모델을 연다</p> | ||
+ | <p> <img src="/data/wiki/2017-07-27/1501130537.png" alt="" /></p> | ||
+ | <p> </p> | ||
+ | <p>2) 생성된 예제 모델은 <strong>Top 모델과</strong> <strong>referenced 모델</strong>로 구성된다.</p> | ||
+ | <p>Top 모델: rtwdemo_sil_modelblock / Referenced 모델: rtwdemo_sil_counter</p> | ||
+ | <p> <img src="/data/wiki/2017-07-27/1501130551.png" alt="" /></p> | ||
+ | <p> </p> | ||
+ | <p>3) <strong>Top </strong><strong>모델과</strong> <strong>referenced 모델</strong>을 <strong>Save As – 새로운 경로</strong>에 저장</p> | ||
+ | <p>** Referenced 모델도 동일하게 저장</p> | ||
+ | <p> <img src="/data/wiki/2017-07-27/1501130561.png" alt="" /></p> | ||
+ | <p> </p> | ||
+ | <p> 4) Working 디렉토리를 모델이 저장된 경로로 변경</p> | ||
+ | <p> <img src="/data/wiki/2017-07-27/1501130568.png" alt="" /></p> | ||
+ | <p> </p> | ||
+ | <p>5) Top 모델 - <strong>메뉴 - File – Model Properties – Model Properties – Callback function 수정</strong></p> | ||
+ | <p>** Referenced 모델도 동일하게 설정 </p> | ||
+ | <p> <img src="/data/wiki/2017-07-27/1501130618.png" alt="" /></p> | ||
+ | <p><strong> </strong> </p> | ||
+ | <ul> | ||
+ | <li> <strong>Callback function </strong><strong>항목 삭제</strong></li> | ||
+ | </ul> | ||
+ | <p> Callbacks – PostLoadFcn* - <strong>rtsconfiguredemo(gcs,’ERT’,rtwdemo_overrides{:}); </strong><strong>삭제</strong></p> | ||
+ | <p><strong> </strong><img src="/data/wiki/2017-07-27/1501130588.png" alt="" /></p> | ||
+ | <p> </p> | ||
+ | <p>6) 모델 – <strong>Model Configuration Parameters</strong> 설정</p> | ||
+ | <p>** Referenced 모델도 동일하게 설정</p> | ||
+ | <p> <img src="/data/wiki/2017-07-27/1501130637.png" alt="" /></p> | ||
+ | <p> </p> | ||
+ | <ul> | ||
+ | <li> <strong> Hardware implementation</strong></li> | ||
+ | </ul> | ||
+ | <p> 타겟 CPU에 맞는 정보 선택 (Ex : Infineon TC277TF 타겟)</p> | ||
+ | <p> - Device vendor : Infineon</p> | ||
+ | <p> - Devide type : TriCore</p> | ||
+ | <p> <img src="/data/wiki/2017-07-27/1501130669.png" alt="" /></p> | ||
+ | <p> </p> | ||
+ | <ul> | ||
+ | <li> <strong> Code Generation</strong></li> | ||
+ | </ul> | ||
+ | <p> - Target selection – System target file : <strong>trace32_target_ert.tlc</strong></p> | ||
+ | <p> - Build process - Make command : <strong>trace32_target_make</strong></p> | ||
+ | <p> Template makefile : <strong>trace32_tc_tmf.tmf</strong></p> | ||
+ | <p> <img src="/data/wiki/2017-07-27/1501130679.png" alt="" /></p> | ||
+ | <p>7) MATLAB 경로 설정 확인, 아래 경로가 없는 경우 추가</p> | ||
+ | <p> <img src="/data/wiki/2017-07-27/1501130688.png" alt="" /></p> | ||
+ | <p>8) 기본 설정 파일 3개 복사</p> | ||
+ | <p>Trace32_settings.m : simulink – trace32 연동 설정 파일</p> | ||
+ | <p>Trace32_tc_tmf.tmf : 타겟 코드 생성 makefile</p> | ||
+ | <p>Trace32_tc277te_startup.cmm : TRACE32로 테스트 시작시 구동되는 파일</p> | ||
+ | <p> <img src="/data/wiki/2017-07-27/1501130695.png" alt="" /></p> | ||
+ | <p> </p> | ||
+ | <p>9) tmf 파일내에 <strong>컴파일러 경로 </strong>확인 및 수정</p> | ||
+ | <p> <img src="/data/wiki/2017-07-27/1501130702.png" alt="" /></p> | ||
+ | <p>10) PIL 테스트를 실제 CPU에서 실행할지, Instruction Simulation Set 에서 실행할지를 선택할 수 있다.</p> | ||
+ | <p>T32 설치 폴더\demo\env\matlabsimulink\t32xil\simulinktemplate.config 파일을 연다.</p> | ||
+ | <p> <img src="/data/wiki/2017-07-27/1501130713.png" alt="" /></p> | ||
+ | <ul> | ||
+ | <li> <strong>simulator </strong><strong>에서 테스트 실행</strong></li> | ||
+ | </ul> | ||
+ | <p> simulinktemplate.config 파일의 <strong>18번 라인을 활성화</strong></p> | ||
+ | <p><strong> ** </strong>이때, 사용하는 trace32_tc277te_startup.cmm 스크립트에 따라 command locked 에러가 발생할 수 있다. 이경우 추가 simulator 라이센스를 구매해야 하므로 영업 담당자에 문의가 필요하다.</p> | ||
+ | <ul> | ||
+ | <li> <strong>타겟환경에서 테스트 실행</strong></li> | ||
+ | </ul> | ||
+ | <p> 21, 22번 라인을 활성화하는 경우 실제 TRACE32 와 타겟환경에서의 TEST가 실행된다.</p> | ||
+ | <p><strong> <img src="/data/wiki/2017-07-27/1501130759.png" alt="" /></strong></p> | ||
+ | <p> </p> | ||
+ | <p>11) <strong>Top </strong><strong>모델 – Run 버튼</strong> 클릭</p> | ||
+ | <p> <img src="/data/wiki/2017-07-27/1501130773.png" alt="" /></p> | ||
+ | <p>12) 테스트 완료 메시지 확인</p> | ||
+ | <p> <img src="/data/wiki/2017-07-27/1501130787.png" alt="" /> </p> | ||
+ | <p> </p> | ||
+ | <p>13) Scope 블록을 더블클릭하여, SIL – PIL 테스트 결과의 오차가 발생했는지 여부 확인 가능</p> | ||
+ | <ul> | ||
+ | <li> 결과 예시 1) Output에 대한 오차 없음</li> | ||
+ | </ul> | ||
+ | <p> <img src="/data/wiki/2017-07-27/1501130803.png" alt="" /></p> | ||
+ | <ul> | ||
+ | <li>결과 예시 2) SIL테스트 결과와 오차 발생, 허용 가능한 오차인지를 판단하여 결과 적용</li> | ||
+ | </ul> | ||
+ | <p> <img src="/data/wiki/2017-07-27/1501130808.png" alt="" /></p> | ||
+ | <p> </p> | ||
+ | <h1>4. SW 디버깅 (모델블록<->소스코드 navigation)</h1> | ||
+ | <p>작성한 모델과 Embedded-Coder 로 생성된 C 소스코드 간의 navigation 기능 설정</p> | ||
+ | <p>1) Model-Model Configuration Parameters</p> | ||
+ | <p> <img src="/data/wiki/2017-07-27/1501130835.png" alt="" /></p> | ||
+ | <p>2) Code Generation – Report – Create code generation report 체크</p> | ||
+ | <p> Open report automatically 체크</p> | ||
+ | <p> <img src="/data/wiki/2017-07-27/1501130841.png" alt="" /></p> | ||
+ | <p>3) Top 모델 – Run 실행 : 원하는 소스 파일 선택 – 모델 포인트 클릭 -> <strong>모델 영역 표시 됨</strong></p> | ||
+ | <p> <img src="/data/wiki/2017-07-27/1501130902.png" alt="" /></p> | ||
+ | <p> </p> | ||
+ | <p>4) 찾으려는 모델 블록 ->마우스 우 클릭 -> C/C++ Code -> Navigate To C/C++ Code</p> | ||
+ | <p><strong>블록에 해당 하는 소스 코드 라인을 찾아 줌</strong></p> | ||
+ | <p> <img src="/data/wiki/2017-07-27/1501130945.png" alt="" /></p> | ||
+ | <h1>5. FAQ 및 기타 사항</h1> | ||
+ | <p>PIL 테스트 환경 구축시 자주 묻는 질문과 발생가능한 에러에 대한 설정 방법을 설명한다.</p> | ||
+ | <p>1) “rtwdemo_sil_counter” 에러</p> | ||
+ | <p> <img src="/data/wiki/2017-07-27/1501130970.png" alt="" /></p> | ||
+ | <ul> | ||
+ | <li>해결방법: Top모델- Configuration Parameter – Code Generation – Verification 항목 수정</li> | ||
+ | </ul> | ||
+ | <p> Code profiling – <strong>Measure task execution time </strong><strong>체크 해제</strong></p> | ||
+ | <p> ** Referenced모델도 동일하게 설정해야 함</p> | ||
+ | <p><strong> <img src="/data/wiki/2017-07-27/1501130981.png" alt="" /></strong></p> | ||
+ | <p>위의 Measure task execution time 기능을 사용하기 설정방법은 MATLAB 매뉴얼 참고</p> |
2017년 7월 27일 (목) 13:49 판
목차
1. Overview
본 문서는 MBD(Model-based development) SW개발시 모델-타겟 코드간의 Back-to-back 테스트에 TRACE32를 적용하는 방법을 설명한다. 자료 설명에 사용된 개발 환경은 아래와 같다.
- ü Matlab R2015a
- ü Simulink
- ü Embedded-coder
- ü Tasking VX-toolset 6.0r1
- ü 타겟 CPU : TC277TF
2. Simulink-TRACE32 연동 준비사항
2.1. TRACE32 Integration for Simulink 설치
Simulink 와 TRACE32 의 연동을 위한 프로그램을 설치한다.
1) ~~\demo\env\matlabsimulink 폴더 내 t32intsimulink_setup.exe 프로그램을 실행
2) 프로그램 동의
3) Integration 설치 경로 설정
4) 사용할 버전 체크
5) 설치 완료
설치가 완료되면, 해당 경로에 아래와 같이 폴더 및 파일이 생성됨
2.2. MATLAB 설치 및 확인
1) TRACE32 Integration 확인
>>ver 명령을 입력하여, 아래와 같이 TRACE32 Integration 설치 여부 확인
2) mex 컴파일러 설치 및 확인 >>mex -setup
3) Cross-Compiler 설치
모델로부터 소스코드 생성 후, 타겟 바이너리 이미지 생성을 위해 사용할 Cross-Compiler설치 확인
본 문서에서는 TASKING VX-toolset 6.1r1 사용
3. PIL Demo model 구축
MBD로 작성한 모델의 SIL - PIL 테스트를 진행하고 결과를 비교하기(back to back) 위한 데모 구축 방법을 소개한다.
1) open('rtwdemo_sil_modelblock') 명령을 입력하여 테스트 모델을 연다
2) 생성된 예제 모델은 Top 모델과 referenced 모델로 구성된다.
Top 모델: rtwdemo_sil_modelblock / Referenced 모델: rtwdemo_sil_counter
3) Top 모델과 referenced 모델을 Save As – 새로운 경로에 저장
** Referenced 모델도 동일하게 저장
4) Working 디렉토리를 모델이 저장된 경로로 변경
5) Top 모델 - 메뉴 - File – Model Properties – Model Properties – Callback function 수정
** Referenced 모델도 동일하게 설정
- Callback function 항목 삭제
Callbacks – PostLoadFcn* - rtsconfiguredemo(gcs,’ERT’,rtwdemo_overrides{:}); 삭제
6) 모델 – Model Configuration Parameters 설정
** Referenced 모델도 동일하게 설정
- Hardware implementation
타겟 CPU에 맞는 정보 선택 (Ex : Infineon TC277TF 타겟)
- Device vendor : Infineon
- Devide type : TriCore
- Code Generation
- Target selection – System target file : trace32_target_ert.tlc
- Build process - Make command : trace32_target_make
Template makefile : trace32_tc_tmf.tmf
7) MATLAB 경로 설정 확인, 아래 경로가 없는 경우 추가
8) 기본 설정 파일 3개 복사
Trace32_settings.m : simulink – trace32 연동 설정 파일
Trace32_tc_tmf.tmf : 타겟 코드 생성 makefile
Trace32_tc277te_startup.cmm : TRACE32로 테스트 시작시 구동되는 파일
9) tmf 파일내에 컴파일러 경로 확인 및 수정
10) PIL 테스트를 실제 CPU에서 실행할지, Instruction Simulation Set 에서 실행할지를 선택할 수 있다.
T32 설치 폴더\demo\env\matlabsimulink\t32xil\simulinktemplate.config 파일을 연다.
- simulator 에서 테스트 실행
simulinktemplate.config 파일의 18번 라인을 활성화
** 이때, 사용하는 trace32_tc277te_startup.cmm 스크립트에 따라 command locked 에러가 발생할 수 있다. 이경우 추가 simulator 라이센스를 구매해야 하므로 영업 담당자에 문의가 필요하다.
- 타겟환경에서 테스트 실행
21, 22번 라인을 활성화하는 경우 실제 TRACE32 와 타겟환경에서의 TEST가 실행된다.
11) Top 모델 – Run 버튼 클릭
12) 테스트 완료 메시지 확인
13) Scope 블록을 더블클릭하여, SIL – PIL 테스트 결과의 오차가 발생했는지 여부 확인 가능
- 결과 예시 1) Output에 대한 오차 없음
- 결과 예시 2) SIL테스트 결과와 오차 발생, 허용 가능한 오차인지를 판단하여 결과 적용
작성한 모델과 Embedded-Coder 로 생성된 C 소스코드 간의 navigation 기능 설정
1) Model-Model Configuration Parameters
2) Code Generation – Report – Create code generation report 체크
Open report automatically 체크
3) Top 모델 – Run 실행 : 원하는 소스 파일 선택 – 모델 포인트 클릭 -> 모델 영역 표시 됨
4) 찾으려는 모델 블록 ->마우스 우 클릭 -> C/C++ Code -> Navigate To C/C++ Code
블록에 해당 하는 소스 코드 라인을 찾아 줌
5. FAQ 및 기타 사항
PIL 테스트 환경 구축시 자주 묻는 질문과 발생가능한 에러에 대한 설정 방법을 설명한다.
1) “rtwdemo_sil_counter” 에러
- 해결방법: Top모델- Configuration Parameter – Code Generation – Verification 항목 수정
Code profiling – Measure task execution time 체크 해제
** Referenced모델도 동일하게 설정해야 함
위의 Measure task execution time 기능을 사용하기 설정방법은 MATLAB 매뉴얼 참고