2014-03-05 9 views
2

가능한 한 내 목표는 C 응용 프로그램을 컴파일하는 것입니다. 간단한 Hello World 응용 프로그램을 말하고 Vxworks Tshell에서 응용 프로그램을로드 한 다음 실행합니다.VXWORKS RTOS RTP 응용 프로그램

나는 실시간 프로세스와 Vxworks 실행 파일 ".vxe"에 대해 읽었습니다.

내가 일하는 회사는 Vxworks를 모든 제품에서 실행되는 RTOS로 사용합니다.

제한 사항 - Tornado 개발 환경이나 Windriver 도구에 대한 액세스 권한이 없습니다. RTOS를 실행하는 임베디드 하드웨어에만 액세스 할 수 있습니다.

VxWorks에서 실행할 응용 프로그램을 빌드하는 데 사용할 수있는 타사 컴파일러가 있습니까?

제발 나를 조롱하지 마세요. 내 전문 지식 이상의 것을 이해하려고 노력 중입니다. 저는 전자 기술자이고 RTOS가 아닌 하드웨어에 익숙합니다.

답변

1

예, 실제로 할 수 있습니다. 실제로 vxworks를 RTOS로 사용하는 일부 NI 제품을 사용하여 작업 할 때 사용했습니다. 다음 링크가 도움이 될 수 있습니다 :

http://digital.ni.com/public.nsf/allkb/81D1172E3C28A5E4862575CC0076A230

당신은 툴체인을 다운로드해야 - 특정 버전의 링크에 연결되어, 당신은 또한 윈드 리버 웹 사이트에서 얻을 수 있습니다.

워크 벤치를 사용하지 않으므로 makefiles 등을 직접 관리해야합니다. 라이센스를 필요로하는 GNU 코드 작성자를 실행하면 라이센스가 필요하지 않습니다. 다른 제안을 남기고, 임시 라이센스를 얻고, workbench를 설치하고 (컴파일 툴 체인을 얻기 위해), make를 사용하여 명령 행에서 빌드하십시오.

+0

RTP를 사용하여 본 적이 없지만 DKM을 고집하는 것이 더 낫습니다. – mjs

+1

멋진 링크가 있지만 DKM (.out)은 용도에 따라 다릅니다. 부분적으로 링크 된 파일. 찾을 수없는 기호 (printf 또는 OS 호출 목록)는 로더에 의해 해석됩니다. RTP는 대개 정적으로 링크되어 있으며 (잘 수행 할 수 있습니다.) 또한 워크 벤치와 함께 제공되는 개발자 헤더 및 라이브러리에 대한 액세스가 필요합니다. – Benoit

2

짧은 답변 : 아니오

그것은 단지 컴파일러 이상입니다. 응용 프로그램을 링크해야하는 라이브러리 세트가 있으며 해당 라이브러리는 vxWorks 개발 환경에서만 제공됩니다.

또한 RTP는 VxWorks 6.2에 도입되었습니다. 그보다 먼저 (토네이도는 ...) RTP를 지원하지 않습니다.

VxWorks는 다운로드 가능한 커널 모듈 (DKM) 개념을 가지고 있습니다.이 모듈은 커널에서 동적으로로드 할 수있는 "코드 라이브러리"또는 재배치 가능 모듈로 생각할 수 있습니다 ("ld" VxWorks 쉘에서 명령).

mjs가 지적했듯이, 부분적으로 링크 된 .out 파일을 생성하기 때문에 GCC 툴 체인을 사용하여 DKM을 컴파일하는 것이 가능합니다. 누락 된 기호는 로더에 의해 해결됩니다. 물론 OS 프리미티브를 사용하는 경우

이러한 DKM은 RTP와 아무 관련이 없습니다. RTP는 실행 파일이며, DKM은 직접 아무것도 실행하지 않는 코드 모듈입니다 (일부 다른 코드/쉘은 일반적으로 방금로드 된 DKM에서 함수를 호출합니다).

RTP는 모든 링크 (예 : printf, OS 호출 등)가 컴파일시 해결되어야한다는 것을 의미하는 완전히 링크 된 실행 파일입니다 (예, 공유 라이브러리를 사용할 수 있지만 심볼은 여전히 ​​정의되어야하며 .so가 지적했다). 이 함수는 헤더에서 선언되고 Workbench 개 _ 도구의 일부인 라이브러리에 보유됩니다.

개발 도구, 라이브러리 및 헤더가 없으면 RTP 용 코드를 개발할 수 없습니다.

+0

나는 변동 가능한 모듈을 컴파일 할 수 있고 tshell을 통해 ld 명령을 사용하여 모듈을로드 할 수 있다고 읽었습니다. 이것이 가능한가? 필자는 프로그래머가 디렉토리를 만들 수있는 권한이 있다고 생각합니다. 빌드 도구에 액세스 할 수 없습니다. 당신의 지혜에 감사드립니다. – MageNewbie

+0

그냥 그럴만해도 .... – mjs