주요 콘텐츠

이 페이지는 기계 번역을 사용하여 번역되었습니다. 영어 원문을 보려면 여기를 클릭하십시오.

SIL 또는 PIL 시뮬레이션 중 코드 생성 과정 디버깅

소프트웨어-인-더-루프(SIL) 또는 PIL(Processor-in-the-Loop) 시뮬레이션이 실패하거나, 원래 함수의 출력과 생성된 코드 간의 차이가 발견될 경우, 디버거를 활성화한 상태에서 시뮬레이션을 다시 실행할 수 있습니다. 중단점을 설정하면 코드 섹션의 동작을 관찰할 수 있으며, 이를 통해 문제의 원인을 파악하는 데 도움이 됩니다.

SIL 또는 PIL 시뮬레이션 오류가 발생한 경우, 진단 뷰어에서 표준 출력 및 표준 오류 스트림의 정보를 확인할 수도 있습니다. 예를 들면 다음과 같습니다.

  • 코드에 있는 printf 문장의 출력 결과.

  • stderr에게 전송된 오류 메시지.

  • 몇 가지 저수준 시스템 메시지입니다.

SIL 시뮬레이션이 진행되는 동안, 타깃 애플리케이션은 stdoutstderr 스트림을 리디렉션합니다. 애플리케이션이 종료되면 진단 뷰어에 리디렉션된 스트림의 정보가 표시됩니다. 타깃 애플리케이션은 또한 POSIX® 신호인 SIGFPE, SIGILL, SIGABRTSIGSEV를 포착하는 기본 신호 핸들러를 제공합니다. 이 신호 핸들러의 경우, 타깃 애플리케이션에는 signal.h 파일이 포함되어 있습니다.

SIL 디버깅

이 테이블은 디버거 지원에 관한 정보를 제공합니다.

운영 체제지원되는 디버거

Windows®

Microsoft® Visual Studio® IDE.

MinGW® GDB가 설치된 Visual Studio Code. MATLAB® Coder™ 인터페이스 설치가 필요합니다. 이 인터페이스는 Visual Studio Code 디버깅 지원 패키지용입니다. https://www.mathworks.com/matlabcentral/fileexchange/103555-matlab-coder-interface-for-visual-studio-code-debugging 항목을 참조하십시오.

Linux®

GNU® 데이터 디스플레이 디버거(DDD).

GDB가 설치된 Visual Studio Code. MATLAB Coder 인터페이스 설치가 필요합니다. 이 인터페이스는 Visual Studio Code 디버깅 지원 패키지용입니다. https://www.mathworks.com/matlabcentral/fileexchange/103555-matlab-coder-interface-for-visual-studio-code-debugging 항목을 참조하십시오.

참고

Simulink® 제품군이 사용자의 Microsoft Visual C++®, Xcode 또는 GNU GCC 컴파일러를 지원하는 경우에만 SIL 디버깅을 수행할 수 있습니다. 자세한 내용은 지원되는 컴파일러를 참조하십시오.

SIL 시뮬레이션에서 디버거를 사용하려면 다음 중 하나를 수행하십시오.

  • SIL/PIL 탭의 설정 갤러리에서 SIL/PIL 설정 아래에 있는 디버그를 클릭합니다.

  • '구성 파라미터' 대화 상자에서 SIL 또는 PIL에 대한 소스 수준 디버그 활성화 체크박스를 선택하십시오.

상위 모델에 Model 블록이 있는 경우, 상위 모델의 SIL 또는 PIL에 대한 소스 수준 디버그 활성화 파라미터가 참조 모델의 해당 파라미터보다 우선 적용됩니다.

SIL 시뮬레이션을 실행하면, 예를 들어 model.c 또는 model.cpp 파일이 Microsoft Visual Studio IDE에서 열리며, model_initializemodel_step 함수의 시작 부분에 디버거 중단점이 설정되어 있습니다.

Microsoft Visual Studio display shows function with debugger breakpoint.

이제 디버거 기능을 사용하여 코드의 동작을 확인할 수 있습니다. 예를 들어, 코드를 단계별로 실행하며 변수를 확인할 수 있습니다.

동적 링크 라이브러리(DLL)를 사용할 때, Microsoft Visual Studio은 SIL 디버깅을 위해 함수별 중단점당 두 개의 중단점을 적용합니다. 하나는 C/C++ 코드 함수용이고, 다른 하나는 디스어셈블리 코드의 DLL 진입점용입니다. 디버거가 코드를 실행해 나가다 보면, 먼저 DLL의 진입점에 도달합니다. C/C++ 코드의 해당 지점으로 이동하려면 계속 버튼(F5)을 클릭합니다.

디버깅 세션을 종료하려면:

  1. 모든 중단점을 제거하십시오.

  2. 계속 버튼(F5)을 클릭합니다.

    SIL 시뮬레이션이 완료되면 Microsoft Visual Studio IDE가 종료됩니다.

참고

Microsoft Visual Studio IDE에서 디버그 > Stop Debugging를 선택하면 SIL 시뮬레이션이 시간 초과되며 다음과 같은 오류 메시지가 표시됩니다:

The timeout of 1 seconds for receiving data from the rtiostream 
interface has been exceeded. There are multiple possible causes 
for this failure.
... 
...

PIL 디버깅

Simulink와 타깃 하드웨어 간에 PIL 연결을 설정할 때는 target.ExecutionServicetarget.DebugExecutionTool 객체를 사용하여 디버거를 지정하십시오. 자세한 내용은 Support PIL DebuggingDebugExecutionTool Template를 참조하십시오.

PIL 시뮬레이션에서 디버거를 사용하려면 다음 중 하나를 수행하십시오:

  • SIL/PIL 탭의 설정 갤러리에서 SIL/PIL 설정 아래에 있는 디버그를 클릭합니다.

  • '구성 파라미터' 대화 상자에서 SIL 또는 PIL에 대한 소스 수준 디버그 활성화 체크박스를 선택하십시오.

상위 모델에 Model 블록이 있는 경우, 상위 모델의 SIL 또는 PIL에 대한 소스 수준 디버그 활성화 파라미터가 참조 모델의 해당 파라미터보다 우선 적용됩니다.

참고 항목

도움말 항목