Main Content

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

MATLAB Function 블록을 사용하여 C 코드 통합하기

Simulink 모델에서 C 코드 호출하기

MATLAB Function 블록을 사용하여 Simulink® 모델에서 외부 C 코드를 호출할 수 있습니다. 다음 상위 수준 단계를 따르십시오.

  1. 소스 파일(.c) 및 헤더 파일(.h)로 구성된 기존 C 코드로 시작합니다.

  2. MATLAB Function 블록에서 C 코드를 호출하는 MATLAB® 코드를 입력합니다. coder.ceval 함수를 사용하십시오. 데이터를 참조로 전달하려면 coder.ref, coder.rref 또는 coder.wref를 사용하십시오.

  3. 모델 구성 파라미터 대화 상자의 시뮬레이션 타깃 창에서 시뮬레이션을 위한 C 소스 파일 및 헤더 파일을 지정합니다. 큰따옴표를 사용하여 헤더 파일을 포함시키십시오(예: #include "program.h"). 작업 폴더 외부에 있는 C 소스 파일 및 헤더 파일에 액세스해야 하는 경우 시뮬레이션 타깃 창의 Include 디렉터리 텍스트 상자에 경로를 나열하십시오.

    또는 coder.cinclude 함수 및 coder.updateBuildInfo 함수를 사용하여 MATLAB 코드 내에서 소스 파일 및 헤더 파일을 지정하십시오. 외부 코드에 대한 인터페이스를 개발하기 위해 coder.ExternalDependency 클래스를 사용할 수 있습니다. 지원되는 워크플로를 확인하려면 Import custom code 항목을 참조하십시오.

  4. Simulink 모델을 테스트하고 올바르게 작동하는지 확인합니다.

  5. Simulink Coder™ 라이선스가 있는 경우 다음 방법을 사용하여 타깃에 대한 코드를 생성할 수 있습니다. 코드 생성 시 동일한 소스 파일 및 헤더 파일을 사용하려면 코드 생성 > 사용자 지정 코드 창에서 [시뮬레이션 타깃]과 동일한 사용자 지정 코드 설정 사용을 클릭합니다. 다른 소스 파일 및 헤더 파일을 지정할 수도 있습니다.

    시뮬레이션 및 코드 생성에 다른 명령을 실행하도록 코드를 조건화하려면 coder.target 함수를 사용할 수 있습니다.

MATLAB Function 블록에서 coder.ceval 사용하기

이 예제에서는 MATLAB Function 블록에서 간단한 C 프로그램 doubleIt을 호출하는 방법을 보여줍니다.

  1. 현재 작업 폴더에 소스 파일 doubleIt.c를 만듭니다.

    #include "doubleIt.h"
    
    double doubleIt(double u)
    {
         return(u*2.0);
    }
    
  2. 현재 작업 폴더에 헤더 파일 doubleIt.h를 만듭니다.

    #ifndef MYFN
    #define MYFN
    
    double doubleIt(double u);
    
    #endif
    
  3. 새 Simulink 모델을 만듭니다. myModel로 저장합니다.

  4. 라이브러리 브라우저User-Defined Functions에서 모델에 MATLAB Function 블록을 추가하고 블록을 더블 클릭하여 편집기를 엽니다.

  5. doubleIt 프로그램을 호출하는 코드를 입력합니다.

    function y = callingDoubleIt(u)
    
    y = 0.0;
    y = coder.ceval('doubleIt',u);
    
  6. 3.5를 갖는 Constant 블록을 MATLAB Function 블록의 입력 포트에 연결합니다.

  7. Display 블록을 출력 포트에 연결합니다.

  8. 모델 구성 파라미터 대화 상자에서 시뮬레이션 타깃 창을 엽니다.

  9. 생성 시 사용자 지정 C 코드 삽입 섹션에 있는 목록에서 헤더 파일을 선택하고 헤더 파일 텍스트 상자에 #include "doubleIt.h"를 입력합니다.

  10. 추가 빌드 정보 섹션에 있는 목록에서 소스 파일을 선택하고 소스 파일 텍스트 상자에 doubleIt.c를 입력하고 확인을 클릭합니다.

  11. 시뮬레이션을 실행합니다. Display 블록에 값 7이 나타납니다.

가져온 버스 및 열거형의 유형 정의 제어하기

이 절차는 시뮬레이션에만 적용됩니다.

Simulink는 MATLAB Function 블록과 Stateflow®에 대한 코드를 생성하여 모델을 시뮬레이션합니다. MATLAB Function 블록 또는 Stateflow를 사용하여 외부 C 코드를 호출할 때, 모델 시뮬레이션에서 가져온 버스와 열거형을 위한 유형 정의를 제어할 수 있습니다.

Simulink가 유형 정의를 생성하거나, 사용자가 유형 정의를 포함하는 헤더 파일을 제공할 수 있습니다. 모델 구성 파라미터 대화 상자의 가져온 버스와 열거형을 위한 typedef 생성 체크박스를 사용하여 이 동작을 제어합니다.

열거형 및 버스 유형을 정의하는 사용자 지정 헤더 파일을 포함시키려면 다음을 수행하십시오.

  1. 가져온 버스와 열거형을 위한 typedef 생성 체크박스의 선택을 해제합니다.

  2. 시뮬레이션 타깃 창의 헤더 파일 텍스트 상자에 헤더 파일을 나열합니다.

유형 정의를 자동으로 생성하도록 Simulink를 구성하려면 다음을 수행하십시오.

  1. 가져온 버스와 열거형을 위한 typedef 생성 체크박스를 선택합니다.

  2. 버스 또는 열거형에 해당하는 헤더 파일을 나열하지 않습니다.

참고 항목

| | | | | | | |

관련 예제

세부 정보