2008-09-20 3 views
3

Windows 환경을 대상으로하는 기존 코드베이스가 있고 미래를 염두에두고 가능한 한 크로스 플랫폼으로 만들고 싶습니다. 크로스 플랫폼 라이브러리를 사용하여 표준 Linux 배포판에서 성공했지만 Realtime 및 임베디드 운영 체제로 확장하려고합니다.임베디드/리얼 타임 운영 체제로 Windows 소프트웨어 이식

대부분의 코드베이스를 그러한 시스템에 이식 할 수 있습니까? 아니면 해당 환경을 대상으로 재 구현해야할까요? 부품을 재생산해야하는 경우 이러한 시스템을 개발하려면 다른 유형의 설계 방식이 필요합니까? 일부 벤더는 개발을 위해 자체 IDE를 제공합니다. 이것이 필요하거나 GNU 툴체인 유형 빌드 프로세스를 표준화 할 수 있습니까?

잠재적 인 움푹 들어간 곳은 IPC 처리의 차이 일 수 있지만 더 이상의 노출없이 구체적인 사항을 처리하기는 어렵습니다.

NB 현재 Windows 기반이지만 Win32 API (주로 COM) 나 Windows 유형은 많이 사용되지 않습니다. 응용 프로그램은 대부분 C이며, POSIX는 다음 너무 열심히하지 않으면

감사

편집 : 코드베이스는 C \ C++

답변

1

Windows COM 인터페이스를 사용하는 경우 (여기서는 직렬 포트에 대한 것이 아니라 공통 객체 모델), 코드를 추상화해야 할 수도 있습니다.

IPC에 관해서는 분명히 멀티 태스킹/멀티 프로세싱 유형 코드 기반입니다. 그렇다면 환경적인 차이를 다루는 방법을 모색해야합니다.

우선 은 응용 프로그램이 멀티 태스킹이므로 일종의 RTOS가 필요합니다. Linux로 포트를 만들었 으면 실시간 Linux 버전을 사용할 수 있습니다. 그러면 포트 수를 최소화 할 수 있습니다.

Linux를 임베디드 플랫폼으로 사용하지 않으려면 코드를 POSIX 호환 (Linux)하고 선택한 RTOS가 POSIX를 지원하는지 확인하십시오. 이렇게하면 Linux와 임베디드 플랫폼에 대한 포트가 거의 동일 해집니다.

결론은 COM이 귀하의 알바트 로스가됩니다.당신이 GUI의 사용을 언급하지 않기 때문에

, 우리는 벌레의 그 캔 :

1

입니다. 임베디드 플랫폼은 컴팩트 플래시 카드에서 실행되는 XP 또는 Linux의 거의 모든 사본을 의미 할 수 있습니다.

GUI의 경우 QT와 WX에는 위젯을 직접 그려주는 버전이 포함되어 있습니다.

0

임베디드 플랫폼의 기능에 따라 다릅니다. 8 비트라면 앞을 향한 열심히 노력할 것입니다. 그렇지만 RAM이 32 비트 인 경우에는 다양한 오픈 소스 크로스 플랫폼 라이브러리를 사용할 수 있습니다.

마지막으로 내장 된 GUI 응용 프로그램에 DirectFB을 사용했지만 가볍고 OK이지만 크로스 플랫폼이 아닙니다. 다음 번에 나는 wxWidgets을 시험해 볼 것입니다.

0

MS Dev Studio는 GNU 도구보다 훨씬 더 멋지지만 최근에는 Eclipse와 GCC를 기반으로하는 Wascana Desktop Developer으로 놀고 있었기 때문에 저는 Windows에서 GNU dev 도구를 사용하는 것을 좋아하지 않습니다.

1

가장 중요한 단계는 프로젝트의 논리에서 모든 OS 의존도 기능을 분리하는 것입니다 해결되지 않습니다.

이렇게하면 새로운 OS로 이전하기 위해 얼마만큼의 코드를 포팅해야하는지 즉시 알 수 있습니다. 그러면 포팅을 시작할 수 있습니다.

0

사용중인 실시간/내장 OS를 지정할 수있는 위치에 있다면 Windows CE를 고려해 보셨습니까?

관련 문제