2010-01-16 2 views
1

HD Photo Device Porting Kit 1.0을 다운로드하여 x86 PC에서 성공적으로 컴파일하고 실행했습니다.HD 사진 소스가 ARM에서 컴파일됩니까?

이미지 뷰어 프로그램을 ARM 기반 Windows Mobile Smartphone으로 이식하려고하지만 ARM 코드가 누락되었습니다.

먼저 ARM 용 "/image/x86/x86.h"해당 헤더 파일이 없습니다. 그러나 파일은 매우 간단하므로 "arm.h"로 복사하고 이름을 변경하고 소스 코드를 컴파일하고 링크했습니다.

하지만 런타임에는 DWORD 정렬 예외가 발생합니다. 나는 ARM 빌드에서, ARMOPT_BITIO이 올바르게 정렬 된 것으로 읽어야한다고 생각한다. & 쓰기. 그러나 ARMOPT_BITIO을 사용하면 일부 IO 기능이 없습니다. 지. peekBits, getBits, flushToByte, flushBits.

이러한 기능 (peekBit16, flushBit16 등)의 x86 버전을 복사했지만 작동하지 않습니다 (스택 오버플로 오류가 있음).

복잡한 HD 사진 소스 파일을 디버깅 할 수 없습니다. 누락 된 ARM 코드는 어디에서 찾을 수 있습니까?

도움을 주시면 감사하겠습니다. 감사!

답변

1

일부 Microsoft 코드를 ARM Linux로 이식 한 경험을 토대로 누군가 이미 이식하지 않은 한 쉬운 방법이 있다고 생각하지 않습니다. 이런 종류의 저수준 디버깅을해야 할 것입니다.

발생한 버그는 주로 정렬되지 않은 액세스 및 플랫폼 API 호출 누락과 관련이 있습니다. 또한 잘못된 선행 프로세서 검사로 인해 빅 엔디안 플랫폼에서 실행되고 있다고 생각되는 코드가 생성되었습니다.

나는 그런 시나리오에서 디버깅하는 데 유용 발견하는 방법은 /이, 및 디버깅 작업 알려진 플랫폼의 대상 플랫폼 에 대한 코드를 빌드이 사용하는 번호를 사용하여 병렬 빌드 추적하는 것입니다 사례. 이것은 가장 심각한 버그를 잡을 것입니다.