주요 콘텐츠

C Caller

C 코드를 Simulink에 통합

  • C Caller block

라이브러리:
Simulink / User-Defined Functions

설명

C Caller 블록은 외부 C 코드를 Simulink®에 통합합니다. 이 블록은 외부 C 코드의 함수를 가져와 나열하며, 사용자가 Simulink 모델에 통합할 해석된(resolved) C 함수를 선택할 수 있게 합니다. C Caller 블록은 독립적으로 코드 생성을 지원합니다. 보다 복잡한 모델에서는 Simulink 모델의 기능에 따라 코드 생성이 달라질 수 있습니다.

C Caller 블록을 사용하려면 구성 파라미터 아래의 시뮬레이션 타깃을 사용하여 소스 코드와 모든 지원 파일을 정의합니다. 그런 다음 라이브러리 브라우저 > Simulink > User Defined Functions를 사용하여 C Caller 블록을 Simulink 캔버스로 가져옵니다. 정의된 소스 코드 파일과 그 종속 항목을 변경하려면 블록 대화 상자의 Configure custom code settings button.을 클릭하여 구성 파라미터시뮬레이션 타깃 탭으로 이동합니다. 소스 코드 또는 그 종속 항목을 변경한 후에는 블록 대화 상자의 Refresh custom code button.을 클릭하여 함수 목록을 새로 고칩니다. 소스 코드에서 함수 정의를 찾아보려면 Go to function button.을 사용하여 소스 코드에 액세스합니다.

addGlobalArg 함수를 사용하여 사용자 지정 코드의 전역 변수를 블록에 전역 인수로 추가할 수 있으며, 또한 deleteGlobalArg 함수를 사용하여 블록에서 전역 인수를 삭제할 수 있습니다. (R2024b 이후)

예제

포트

입력

모두 확장

입력 포트의 개수와 이름은 외부 C 코드에서 선택한 함수를 통해 유추합니다. C Caller 블록에 데이터를 제공하려면, 입력 신호를 입력 포트에 연결합니다.

입력 레이블의 이름은 블록 대화 상자포트 사양 아래에서 레이블을 편집하여 변경하지 않는 한, 입력 포트와 동일합니다. 사용자가 입력 포트의 레이블 이름을 바꾸면 C Caller 블록은 해당 포트의 이름을 바꿉니다.

입력 변수에 대해서는, 범위 열을 사용하여 입력 범위를 파라미터 또는 상수로 바꿀 수 있습니다.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus | string

출력

모두 확장

출력 포트의 개수와 이름은 외부 C 코드에서 선택한 함수를 통해 유추합니다. C Caller 블록에서 데이터를 보내려면, C Caller 블록의 출력 포트에 블록을 연결합니다.

출력 포트 레이블의 이름은 블록 대화 상자포트 사양 아래에서 레이블을 편집하여 변경하지 않는 한, 출력 포트와 동일합니다. 사용자가 입력 포트의 레이블 이름을 바꾸면 C Caller 블록은 해당 포트의 이름을 바꿉니다.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | enumerated | bus | string

파라미터

모두 확장

C Caller 블록에 대해 구문 분석된 함수의 이름으로, 문자형 벡터 또는 string형 스칼라로 지정됩니다. 사용 가능한 함수 목록을 보려면 사용 가능한 함수 항목을 참조하십시오.

조정 가능: Yes

프로그래밍 방식의 사용법

블록 파라미터: FunctionName
유형: 문자형 벡터 또는 string형 스칼라

myFunctionName = get_param(gcb,"FunctionName")
myFunctionName =

    'mean_filter'

포트 속성으로, 테이블로 지정됩니다. 이 테이블은 블록의 각 입력 요소와 출력 요소에 대한 특성을 나타냅니다. 범위가 input이면 이 변수를 parameter 또는 constant로 수정할 수 있습니다. 이러한 속성에는 다음이 포함됩니다.

이름 — 소스 코드에서 유추된 변수 이름을 보여줍니다.

굵게 표시된 인수 이름은 해당 포트 또는 파라미터가 전역 인수임을 나타냅니다.

범위 — 소스 코드에서 변수의 역할을 나타냅니다. 해당 변수가 C Caller 블록 소스 코드에서 입력 인수일 경우, 범위 유형을 상수 또는 파라미터로 변경할 수 있습니다. 해당 변수가 소스 코드에서 출력 인수일 경우, 출력 유형을 변경할 수 없습니다.

레이블 — Simulink 모델의 입력 변수 또는 출력 변수에 대한 레이블입니다. 사용자는 이 테이블을 사용하여 레이블을 변경할 수 있습니다. 범위가 파라미터인 경우 이 필드에 파라미터 이름을 입력합니다. 범위가 상수인 경우 상수 값을 입력합니다.

유형 — 포트에서 오는 데이터형을 나타냅니다.

크기 — 입력 및 출력 데이터의 크기를 나타냅니다.

이름, 범위, 유형, 크기는 소스 코드에서 유추됩니다.

프로그래밍 방식의 사용법

블록 파라미터: FunctionPortSpecification
유형: FunctionPortSpecification 객체

C Caller 블록에 매핑될 수 있는 사용 가능한 모든 함수의 목록으로, 셀형 배열로 지정됩니다.

모델의 C Caller 블록은 외부 소스 코드의 모든 함수를 가져오고, 블록 대화 상자의 함수 이름 옆에 함수 이름을 표시합니다. 블록에서 함수를 선택하고 사용하려면, 해당 함수 이름이 사용 가능한 함수 테이블에 표시되는지 확인하십시오. 함수 중 하나가 누락된 경우 블록 대화 상자에서 Refresh custom code button.을 클릭하여 소스 코드를 다시 불러오십시오. 함수의 이름을 바꾸려면 소스 코드를 수정하고 새로 고침 버튼을 클릭하여 다시 로드하십시오.

프로그래밍 방식의 사용법

블록 파라미터: AvailableFunctions
유형: 셀형 배열

allAvailableFunctions = get_param(gcb, "AvailableFunctions")
allAvailableFunctions =

  1×1 cell array

    {'add'}

샘플 주기로, 초 단위로 지정됩니다. 샘플 시간의 유형 항목 및 샘플 시간 지정하기 항목을 참조하십시오.

프로그래밍 방식의 사용법

블록 파라미터: SampleTime
유형: string형 스칼라 또는 문자형 벡터
디폴트 값: "-1"

블록 특성

데이터형

Booleana | busa | doublea | enumerateda | fixed pointa | integera | singlea | stringa

직접 피드스루

아니요

다차원 신호

a

가변 크기 신호

아니요

영점교차 검출

아니요

a 실제 데이터형 또는 기능 지원은 블록 구현에 따라 달라집니다.

세부 정보

모두 확장

확장 기능

모두 확장

고정소수점 변환
Fixed-Point Designer™를 사용하여 고정소수점 시스템을 설계하고 시뮬레이션할 수 있습니다.

버전 내역

R2018b에 개발됨

모두 확장