문서 ID: 000077602 콘텐츠 형태: 제품 정보 및 문서 마지막 검토일: 2012-09-11

Nios II C 소프트웨어 프로젝트에 C 파일을 어떻게 포함합니까?

환경

    인텔® Nios® II (클래식) 프로세서
BUILT IN - ARTICLE INTRO SECOND COMPONENT
설명

C2H는 C 파일에서 가속기 생성을 지원하지 않습니다.

C 소스 파일에서 C 소스 파일로 가속하려는 함수를 이동하는 것과 관련된 C 프로그램에서 가속기를 호출할 수 있는 해결 방법이 있습니다. 함수가 C 소스 파일에 있으면 C2H 컴파일러는 효과적으로 "보고" 하드웨어 가속기로 변환할 수 있습니다.

C와 C 함수(및 파일)를 혼합하는 데 필요한 몇 가지 추가 단계가 있습니다.

GNU 툴체인은 잘 정의된 명시적 주장 방법론을 통해 C 프로그램에서 C 함수를 호출하는 것을 지원합니다(또는 그 반대의 경우도 마찬가지). 이것이 작동하는 방식은 C 프로그램에서 컴파일러에게 C 대신 C 함수로 호출해야하는 함수를 알려주는 것입니다. 이 작업은 C 소스 파일 내에서 extern "C" 구문을 사용하여 수행됩니다.

작동 중인 extern "C" 구문의 몇 가지 예는 다음과 같습니다.

  1. C 프로그램에서 C 함수 호출하기

설정 : C 소스 파일 "foo.cpp"에서 호출하려는 C 소스 파일 "bar.c"에있는 void bar (void) 함수가 있습니다.

해결책 : 이것을 "foo.cpp"의 맨 위에 추가하십시오.

extern "C"void foo(void);

  1. C 프로그램에서 C 함수 호출하기

설정 : C 소스 파일 "foo.cpp"에서 호출하려는 C 소스 파일 "bar.c"에있는 함수 모음입니다.

해결책 : "foo.cpp"의 extern 문 상단에있는 함수 그룹 주위에 중괄호를 추가하기 만하면됩니다.

extern "C" {

무효 foo(무효);

int foo2 (int 번호);

int foo3(int number1, int number2);

}

  1. C 프로그램에서 C 헤더 호출

설정 : C 프로그램 "foo.c"에서 호출하려는 "bar.c"라는 파일에 C 함수 (또는 라이브러리)의 전체 모음이 있으며 절차 # 2 (위)를 통해 개별적으로 나열하고 싶지는 않습니다. 함수에 대한 인터페이스를 선언하는 "bar.h"라는 "bar.c"에 대한 헤더 파일이 있습니다.

해결책 : extern 문은 헤더 파일에서도 작동합니다 ... "foo.cpp" 파일에서 extern 문을 사용하여 헤더 파일을 추가합니다.

extern "C" {

#include "bar.h"

}

C2H와 함께 사용하는 것이 가장 좋은 방법론은 무엇입니까? C2H 컴파일러를 사용하는 경우 사용자가 가속 함수를 자체 파일로 "격리"하는 것이 좋으므로 첫 번째 예제를 사용하는 것이 C2H 컴파일러로 함수를 가속하는 가장 좋은 방법입니다.

관련 제품

이 문서는 다음 항목에 적용됩니다. 1 제품

인텔® 프로그래밍 가능 장치

1

이 페이지의 콘텐츠는 원본 영어 콘텐츠에 대한 사람 번역 및 컴퓨터 번역의 조합으로 완성되었습니다. 이 콘텐츠는 편의와 일반적인 정보 제공을 위해서만 제공되었으며, 완전하거나 정확한 것으로 간주되어선 안 됩니다. 이 페이지의 영어 버전과 번역 간 모순이 있는 경우, 영어 버전이 우선적으로 적용됩니다. 이 페이지의 영어 버전을 확인하십시오.