이 페이지는 기계 번역을 사용하여 번역되었습니다. 영어 원문을 보려면 여기를 클릭하십시오.
Target Language Compiler 기본 사항
Target Language Compiler 개요
TLC(Target Language Compiler)는 코드 생성기의 핵심 부분입니다. 이를 통해 생성된 코드를 사용자 지정할 수 있습니다. 사용자 지정을 통해 플랫폼별 코드를 생성하거나, 성능, 코드 크기, 기존 메서드와의 호환성을 위해 자체 알고리즘 변경 사항을 반영할 수 있습니다.
TLC에는 다음이 포함됩니다:
제공된 Simulink® 블록 중 일부에 해당하는 파일들.
헤더 및 파라미터 정보를 지정하는, 모델 전체에 적용되는 정보를 담은 파일들.
TLC 파일은 코드 생성 방식을 명시적으로 제어하는 ASCII 파일입니다. TLC 파일을 편집하면 코드 생성 방식을 변경할 수 있습니다.
Target Language Compiler는 ANSI® C 또는 C++ 코드를 생성하기 위해 바로 사용할 수 있는 TLC 파일 세트를 모두 제공합니다. TLC 파일을 확인하고, 사소한 수정부터 대대적인 변경까지 자유롭게 적용할 수 있습니다. 이러한 개방형 환경은 생성된 코드를 사용자 지정할 때 엄청난 유연성을 제공합니다.
자세한 내용은 C MEX S-Function을 사용하여 블록 작성하기를 참조하십시오. 이 문서에서는 mdlRTW() 함수에 중점을 두고, 래핑된 S-Function과 완전히 인라인 처리된 S-Function을 작성하는 방법을 설명합니다.
참고
폴더에 있는 TLC 파일을 사용자 지정하지 마십시오. 비록 사용자 지정 기능이 제공되더라도 말입니다. 이러한 TLC 사용자 지정 설정은 코드 생성 과정에서 적용되지 않을 수 있으며, 이로 인해 예상치 못한 결과가 발생할 수 있습니다.matlabroot/rtw/c/tlc
TLC 프로세스의 개요
이 개요도는 Target Language Compiler가 코드 생성 프로세스에서 어떤 역할을 하는지 보여줍니다.
TLC(Target Language Compiler)는 모델 설명 파일인 (또는 이와 유사한 파일)를 타깃 언어별 코드나 텍스트로 변환하도록 설계되었습니다.model.rtw
Target Language Compiler는 Simulink 블록 다이어그램을 나타내는 라는 형식을 C 또는 C++ 코드로 변환합니다. model.rtw 파일에는 모델의 일부가 포함되어 있습니다. 이 표현은 블록 다이어그램의 실행 의미론을 고수준 언어로 기술한 것입니다.model.rtw
파일을 읽은 후, Target Language Compiler는 각 블록에 대한 구체적인 코드를 지정하는 타깃 파일과 전체 코드 스타일을 지정하는 모델 전체 파일을 기반으로 코드를 생성합니다. TLC는 타깃 파일과 model.rtw 파일을 사용하여 ANSI C 또는 C++ 코드를 생성합니다.model.rtw
특정 타깃용 애플리케이션을 생성하려면, 코드 생성기는 빌드 프로세스에 사용할 C 또는 C++ 컴파일러와 컴파일러 옵션을 지정하는 템플릿 makefile이 필요합니다. 코드 생성기는 주어진 모델에 특화된 토큰 확장을 수행하여 템플릿 makefile을 타깃 makefile()로 변환합니다. 타깃 makefile은 일반 model.mkrt_main 파일(또는 grt_main)을 수정한 버전입니다. 인터럽트 서비스 루틴과 같은 타깃 시스템의 특정 요구 사항에 부합하도록 grt_main를 수정해야 합니다. Template Makefiles and Make Options 및 Customize Template Makefiles 항목을 확인하십시오.
Target Language Compiler는 HTML, Perl, 그리고 MATLAB®와 유사한 점이 있습니다. HTML과 유사한 마크업 구문을 갖추고 있으며, Perl 및 기타 스크립트 언어의 강력한 기능과 유연성을 지니고 있을 뿐만 아니라, MATLAB의 데이터 처리 능력도 갖추고 있습니다(TLC는 MATLAB 함수를 호출할 수 있습니다). TLC가 생성한 코드는 고도로 최적화되어 있으며, 주석이 완벽하게 달려 있습니다. TLC를 사용하면 선형, 비선형, 연속, 이산 또는 하이브리드 Simulink 모델로부터 코드를 생성할 수 있습니다. 모델에는 자동으로 코드로 변환되는 Simulink 블록을 포함할 수 있습니다. 단, MATLAB 함수 블록과 MATLAB 파일을 호출하는 S-Function 블록은 예외입니다. Target Language Compiler는 파일 내의 각 블록을 변환하기 위해 블록 타깃 파일을 사용하고, 코드의 전역적 사용자 지정을 위해 모델 전체 타깃 파일을 사용합니다.model.rtw
생성된 코드와 함께 C MEX S-Function을 실행 프로그램에 통합할 수 있습니다. C MEX S-Function에 대한 타깃 파일을 작성하여 S-Function을 인라인으로 처리할 수 있습니다(Inline C MEX S-Functions 참조). 이를 통해 S-Function 자체에 대한 함수 호출과 S-Function의 SimStruct로 인한 메모리 오버헤드를 제거함으로써 성능을 향상시킬 수 있습니다. S-Function을 인라인 처리하면 S-Function 블록 코드가 모델의 생성된 코드에 통합됩니다. S-Function에 대한 TLC 타깃 파일이 없는 경우, 해당 C 또는 C++ 코드 파일이 함수 호출을 통해 실행됩니다. Inline S-Functions 항목을 참조하십시오. 또한 MATLAB 언어 파일이나 Fortran S-Function을 위한 타깃 파일을 작성할 수도 있습니다.
코드 생성 프로세스 개요
Target Language Compiler는 타깃 파일과 코드 생성기의 출력 결과를 활용하여 코드를 생성합니다.

Simulink 모델에서 코드를 생성할 때, 자동화 프로세스의 첫 번째 단계는 파일을 생성하는 것입니다. model.rtw 파일에는 Simulink 모델에서 코드를 생성하는 데 필요한 모델별 정보가 포함되어 있습니다. model.rtw는 Target Language Compiler로 전달되며, Target Language Compiler는 이 파일을 포함된 일련의 시스템 타깃 파일 및 블록 타깃 파일과 함께 사용하여 코드를 생성합니다. 이 내용은 대부분의 경우에 적용되는 절차를 설명합니다. 그러나 모델에 S-Function 블록이 포함된 경우, 함수 코드 생성을 위해 때때로 추가적인 TLC 프로세스가 필요할 수 있습니다. 자세한 내용은 향상된 TLC 블록 인터페이스 항목을 참조하십시오.model.rtw
최종 실행 파일만 현재 폴더에 직접 저장됩니다. 파일을 포함하여 코드 생성 과정에서 생성된 다른 파일들의 경우, 빌드 폴더가 사용됩니다. 이 폴더는 현재 폴더에 생성되며, 이름은 model.rtw입니다. model_target_rtw는 범용 실시간 타깃인 targetgrt 환경의 약칭입니다.
빌드 폴더에 포함된 파일은 다음과 같습니다:
생성된 C 또는 C++ 소스 코드의 본문 (
또는model.c)model.cpp헤더 파일 (
)model.h생성된 코드 내에서만 사용되는 파라미터와 데이터 구조를 정의하는 헤더 파일
model_private.h애플리케이션을 빌드하기 위한 makefile인
model.mkManage Build Process Files에 설명된 추가 파일