PIL TEST

TRACE32
이동: 둘러보기, 검색

Introduction

문서 소개

이 문서는 Simulink에서 만든 모델을 TRACE32를 이용하여 효율적으로 디버깅 하기 위한 방법과 PIL(Process In the Loop)테스트 할 수 있는 방법을 소개 합니다.

**본 페이지에 소개된 기능은 2016년 TRACE32 SW까지만 적용 가능합니다.

 

문서 제작에 사용된 환경은 다음과 같습니다.

-      디버거 본체 : TRACE32 POWER DEBUG USB2 Module

-      디버거 라이선스 케이블 : Tricore JTAG Debugger

-      타겟 보드 : TC1797 Reference Board

-      컴파일러 : TASKING VX-toolset Tricore v4.1r2

-      TRACE32 Software Version : PowerView v.2014.02

-      Matlab Version : 2013b

 

PIL테스트를 하기 위해서는 TRACE32 SW version 2014년 02월 이상, Matlab 2010a 이상 사용해야 합니다.

필요한 Matlab package

 

 이 문서를 통해서 다음 내용을 배울 수 있습니다.

-   TRACE32와 Simulink연동 방법

-   TRACE32 PIL block model 생성 방법

-   PIL 테스트를 위한 모델 설정 방법

-   PIL 테스트 실행 방법


 

TRACE32와 Matlab Simulink 연동

Simulink에서 TRACE32 패키지 설치

TRACE32 설치 DVD를 이용하여 TRACE32 PowerView를 설치한 경우 Simulink와 연동하기 위한 파일들이 자동으로 <TRACE32 설치 경로>\demo\env\matlabsimulink에 복사 된다.

PowerView S/W 미 설치된 경우 설치 과정에서 Simulink와 연동 할 수 있다.

<그림 추가 예정>

PowerView S/W가 이미 설치된 경우 Trace32_setup.p 스크립트를 실행 한다.

 

안내 메시지에 따라서 path와 mex compiler를 설정 한다.

 

정상적으로 설치가 끝나면 아래와 같은 메시지가 출력되는 것을 확인 할 수 있다.

   


설치가 완료된 후 Matlab path와 T32 설정파일(config.t32) 확인 

T32 config.t32 파일에 remote control access를 위한 설정이 추가 된다.

Matlab search path에 trace32의 matlabsimulink경로가 추가 된다. 


Simulink에서 TRACE32 연동 설정

<TRACE32 설치 경로>\demo\env\matlabsimulink\trace32_setting.p 스크립트 실행

Trace32 연결 설정 다이얼로그가 실행되고 아래와 같이 설정 합니다.

TRACE32 System Directory : TRACE32 설치 경로

TRACE32 Default Configuration File : config.t32파일 선택

기타설정 : Default 설정 사용

설정 후 저장 

PIL 테스트

PIL(Processor-In-the-Loop)은 모델로부터 생성된 코드를 타겟 프로세서 동작시켜 테스트 하는 것을 의미한다.

PIL테스트가 필요한 이유는 모델의 시뮬레이션 결과와 타겟 프로세서 에서의 동작 결과가 다를 수 있기 때문이다. 예를 들어 실수 연산의 경우 프로세서에서 제공되는 FPU(Floating Point Unit)가 사용되기 때문에 MIL시뮬레이션에서 사용 된 연산방식과 다를 경우 실제 타겟 프로세서에서 연산된 결과가 다를 수 밖에 없다. 이러한 문제점을 보완하기 위해 PIL Test를 통해 모델을 실제 프로세서에서 시뮬레이션 하여 검증하는 작업이 필요하다.

PIL Simulation을 위한 모델 생성

똑같은 두 개의 모델을 만들어 하나는 모델링 도구에서 시뮬레이션 하고 나머지 하나는 PIL 시뮬레이션을 진행하여 결과를 비교하는 예제이다. 아래 예제에 사용한 모델은 2개의 input(정수형, 실수형)을 받아 연산된 4개의 output(정수형 2개, 실수형 2개)을 내보내는 간단한 데모 이다.

 

시뮬레이션 알고리즘 모델 생성

PIL 모델 생성

- 위 Simulation모델 파일을 copy 하여 PIL Simulation을 하기 위한pil_target_tc1782 모델을 추가로 생성한다. Simulink Library에서 TRACE32 Setup 블록을 추가한다.

- pil_target_tc1782모델의 block parameters에 simulation mode를 Processor-in-the-loop(PIL)로 설정 한다.

 

 

전체 모델 구성

- 두 모델의 input/output port에 scope를 연결하고 model simulation과 PIL simulation의 결과 비교를 하기 위해 두 모델 수행 결과의 차이 값을 출력 해주는 scope를 추가해 준다.

Pil_target_tc1782 : trace32 pil test 모델

Simulated algorithm : 기존 모델

 

PIL 모델 블록의 TRACE32 Setup

pil_target_tc1782모델의 TRACE32 Setup블록의 파라미터에 아래와 같이 설정 한다.

Hardware tab에서 Architecture와 CPU를 설정 한다.

Scripting Tab에서는 TRACE32 실행 환경을 설정 한다.

PRACTICE startup script : TRACE32 PowerView가 실행되면 가장 먼저 실행될 스크립트를 지정해준다. 스크립트의 내용은 타겟에 연결하고 이미지를 다운로드 하는 역할을 하며 아래에서 작성할 예정이다.

PowerView configuration file : default 설정 사용

IP address : default 설정 사용

Port Number : default 설정 사용

나머지 Integration/Communication Tab은 default 설정을 그대로 둔다.

Code Generation 설정

PIL 모델의 코드 생성과 시뮬레이션에 필요한 파일 중 타겟 아키텍쳐에 의존적인 파일의 경우 아래 경로에 위치해 있다.

<T32 설치 경로>\demo\env\matlabsimulink\targets

Matlab Search path 추가

PIL 모델과, Simulation 모델에 Code Generation 규칙을 지정 해준다. 코드 생성과 빌드에 필요한 System target file과 template make file은 제공된 파일을 사용하며, 이 파일이 저장된 경로를 matlab search path에 추가 해준다.(이미 path에 등록이 되어 있다면 skip)

 

Simulation 모델의 Code Generation 설정

 

PIL 모델의 Code Generation 설정

 

Template make 파일 설정

Make 파일의 경우 타겟 MCU나 컴파일러에 따라 수정 할 필요가 있다.

Target 설정

예제로 사용된 Tricore 타겟용 Tempalte make파일인 Trace32_tc_tmf.tmf파일에 target을 지정 해 준다.

컴파일러 설정

컴파일러의 경로를 추가 해준다. 데모 예제의 경우 TASKING for Tricore 4.1r2를 사용하였다.

 


Startup 스크립트 작성

Startup 스크립트는의 타겟과 JTAG연결을 하고, 실행 파일을 메모리에 로드해 주는 역할을 한다. 필요한 경우 메모리 초기화 코드나, flash download를 위한 코드가 추가되어야 한다.

3.2 장에서 설명된 것과 같이 작성된 스크립트가 정상적으로 호출되기 위해서는 PIL 모델의 TRACE32 Setup블록 설정에 해당 스크립트를 지정해 주어야 한다.

 

TC1782용 Startup 스크립트 작성

Simulink 모델이 저장된 경로에 trace32_tc1782_startup.cmm 파일을 만들고 아래와 같이 작성한다.

 

PIL 테스트 실행

Simulation 실행

작성한 가장 상위 모델에서 RUN을 실행 하면 Code Generation과 빌드 과정을 거쳐 실행 파일을 만든다. 그리고 TRACE32가 자동으로 실행되고 PIL 시뮬레이션이 시작 된다.

 

Simulation 결과

전체 시뮬레이션이 종료된 후 scope를 통해 결과를 확인 해보면 정수형 연산에 대한 결과는 같지만(파란색 상자), 실수형 연산(빨간색 상자)에 대한 결과가 다른 것을 확인 할 수 있다.