Main Content

Simulink 모델에서 C 코드 생성하기

Simulink® Coder™는 다양한 응용 프로그램에 배포할 수 있도록 Simulink 모델에서 독립 실행형 C 코드와 C++ 코드를 생성합니다. Simulink Coder에서 지원되는 DSP System Toolbox™ 기능 목록은 C 코드 생성에 지원되는 블록 항목을 참조하십시오.

이 예제에서는 ex_codegen_dsp 모델에서 C 코드를 생성하고 생성된 코드에서 실행 파일을 빌드합니다. MATLAB® 환경 내에서 실행 파일을 실행할 수 있습니다. 또한 코드를 패키징하여 MATLAB 및 Simulink 제품이 설치되지 않은 다른 개발 환경으로 이전할 수 있습니다.

모델 열기

ex_codegen_dsp 모델을 엽니다. 이 모델은 간단한 적응 필터를 구현하여 신호에서 잡음을 제거하는 동시에 잡음 주파수 성분을 특징짓는 필터를 식별합니다.

코드 생성을 위한 모델 구성하기

DSP System 템플릿을 사용하여 모델을 생성할 수도 있습니다. 자세한 내용은 Configure Simulink Environment for Signal Processing Models 항목을 참조하십시오.

구성 파라미터 대화 상자에서 코드 생성 설정을 지정하여 코드 생성을 위한 모델을 준비합니다. 적절한 솔버와 코드 생성 타깃을 선택하고 실행 효율성을 고려한 모델 구성으로 이루어져 있는지 확인합니다. 각 단계에 대한 자세한 내용은 Generate C Code for a Model (Simulink Coder) 항목을 참조하십시오.

모델 시뮬레이션하기

모델을 시뮬레이션합니다. Time Scope는 입력 신호와 필터링된 신호 특성을 보여줍니다.

Output of the Time Scope block. The first signal is the original sinusoidal signal. The second signal is the sinusoidal signal with low frequency noise. The third signal is the approximation of the input signal. The fourth signal is the error signal generated by the Normalized LMS filter block.

Array Plot은 LMS 필터가 신호의 잡음을 효과적으로 조정하고 필터링한 마지막 32개 필터 가중치를 보여줍니다.

The y-axis is labelled as Filter Weights and ranges from -0.2 to 0.6, x-axis is labelled as Number of Weights and ranges from 0 to 32.

이러한 계수는 다음 명령을 사용하여 액세스할 수도 있습니다.

filter_wts(:,:,1201)

모델에서 코드 생성하기

모델에서 코드를 생성하기 전에 먼저 현재 폴더에 대한 쓰기 권한이 있는지 확인해야 합니다.

코드를 생성하려면 다음과 같이 변경해야 합니다.

  1. 모델 툴스트립의 모델링 탭에서 모델 설정을 클릭합니다. 구성 파라미터 대화 상자가 열립니다. 코드 생성 탭으로 이동하여 코드만 생성 파라미터를 선택하고 적용을 클릭합니다.

  2. 모델 툴스트립의 탭에서 드롭다운 화살표를 클릭합니다. 코드 생성 아래에 있는 Simulink Coder를 클릭합니다. C Code 탭이 모델 창에 나타납니다. C Code 탭에서 코드 생성 아이콘()을 클릭합니다.

모델에서 코드 생성이 완료되면 코드 생성 리포트가 표시되고 이를 통해 생성된 코드를 검사할 수 있습니다. 참고로, 빌드 프로세스에서는 현재 MATLAB 작업 폴더에 ex_codegen_dsp_grt_rtw라는 하위 폴더를 새로 만듭니다. 이 하위 폴더에는 생성된 C 소스 코드가 포함된 파일을 비롯하여 코드 생성 프로세스에서 생성된 모든 파일이 들어 있습니다. 생성된 코드 보기에 대한 자세한 내용은 Generate C Code for a Model (Simulink Coder) 항목을 참조하십시오.

생성된 코드 빌드 및 실행하기

C/C++ 컴파일러 설정하기

실행 파일을 빌드하려면 지원되는 C 컴파일러를 설정해야 합니다. 현재 릴리스에서 지원되는 컴파일러 목록을 보려면 지원 및 호환되는 컴파일러 항목을 참조하십시오.

컴파일러를 설정하려면 MATLAB 명령 프롬프트에서 다음 명령을 실행하십시오.

mex –setup

생성된 코드 빌드하기

컴파일러를 설정한 후 컴파일된 코드를 빌드하고 실행할 수 있습니다. ex_codegen_dsp 모델은 현재 코드를 생성만 하도록 구성되어 있습니다. 생성된 코드를 빌드하려면 다음과 같이 변경해야 합니다.

  1. 모델 툴스트립의 모델링 탭에서 모델 설정을 클릭합니다. 구성 파라미터 대화 상자가 열립니다. 코드 생성 탭으로 이동하여 코드만 생성 파라미터를 선택 해제하고 적용을 클릭합니다.

  2. 모델 툴스트립의 C Code 탭에서 Build 아이콘()을 클릭합니다.

코드 생성기는 실행 파일을 빌드하고 코드 생성 리포트를 생성합니다. 코드 생성기는 실행 파일을 작업 폴더에 저장합니다. Windows에서 실행 파일은 ex_codegen_dsp.exe입니다. Linux에서 실행 파일은 ex_codegen_dsp입니다.

생성된 코드 실행하기

생성된 코드를 실행하려면 MATLAB 명령 프롬프트에 다음 명령을 입력하십시오.

!ex_codegen_dsp

생성된 코드를 실행하면 MAT 파일이 생성됩니다. 이 파일에는 모델을 시뮬레이션할 때 생성된 변수와 동일한 변수가 들어 있습니다. MAT 파일에 들어 있는 변수들은 접두사 rt_를 사용하여 이름이 지정됩니다. 생성된 코드를 실행하고 나면 MATLAB 프롬프트에 다음 명령을 입력하여 MAT 파일에서 변수를 불러올 수 있습니다.

load ex_codegen_dsp.mat

이제 생성된 코드의 변수들을 모델 시뮬레이션의 변수들과 비교할 수 있습니다. 생성된 코드에서 마지막 계수 세트에 액세스하려면 MATLAB 프롬프트에 다음을 입력하십시오.

rt_filter_wts(:,:,1201)

filter_wts(:,:,1201)rt_filter_wts(:,:,1201)의 계수가 일치하는 것을 확인할 수 있습니다.

실행 파일을 빌드하고 실행하는 방법에 대한 자세한 내용은 Generate C Code for a Model (Simulink Coder) 항목을 참조하십시오.

코드를 다른 개발 환경으로 이전하기

Simulink 모델에서 코드를 생성한 후 pack-and-go 유틸리티를 사용하여 코드를 다른 개발 환경으로 이전할 수 있습니다. 개발 환경에 MATLAB 및 Simulink 제품이 없는 경우 이 유틸리티를 사용하십시오.

pack-and-go 유틸리티는 코드 생성 후 빌드 프로세스를 사용자 지정하는 툴과 packNGo (Simulink Coder) 함수를 사용하여 실행 파일 이미지를 빌드하는 데 필요한 파일들을 찾아서 패키징합니다. 파일들은 압축 파일로 패키징되며 일반적인 zip 유틸리티를 사용하여 이전하고 압축을 풀 수 있습니다.

사용자 인터페이스나 명령줄 인터페이스를 사용하여 코드를 패키징할 수 있습니다. 명령줄 인터페이스를 사용하면 코드 패키징을 더욱 세부적으로 제어할 수 있습니다. 각 방법에 대한 자세한 내용은 Relocate or Share Generated Code (Simulink Coder) 항목을 참조하십시오.

이 예제에서 생성된 C 코드와 실행 파일을 패키징하는 방법에 대한 예제는 Relocate Code Generated from a Simulink Model to Another Development Environment 항목을 참조하십시오.

관련 항목

외부 웹사이트