1

我已经下载了HD Photo Device Porting Kit 1.0并在 x86 PC 上成功编译并执行了它。

我想将图像查看器程序移植到基于 ARM 的 Windows Mobile Smartphone,但是缺少一些 ARM 代码。

首先,没有 ARM 的“/image/x86/x86.h”等效头文件。但是文件很简单,所以我复制并重命名为“arm.h”并成功编译链接源代码。

但是在运行时,会发生DWORD对齐异常。我发现在 ARM 版本上,似乎ARMOPT_BITIO应该声明为正确对齐的读写。但是有了ARMOPT_BITIO,一些 IO 函数就丢失了,例如peekBits, getBits, flushToByte, flushBits

我复制了这些函数的 x86 版本(peekBit16,flushBit16等),但没有运气,它不起作用(我有一个堆栈溢出错误)。

我无法调试复杂的高清照片源文件。请让我知道在哪里可以找到丢失的 ARM 代码。

任何帮助将非常感激。谢谢!

4

1 回答 1

1

根据我将一些 Microsoft 代码移植到 ARM Linux 的经验,我认为没有简单的方法可以绕过它,除非有人已经移植了它。您将不得不深入研究这种低级调试。

我遇到的错误主要与未对齐的访问和缺少平台 API 调用有关。不正确的预处理器检查也会导致代码认为它在大端平台上运行。

我发现在这种情况下调试有用的方法是为目标平台已知可以工作的平台构建代码,并使用许多用例并行调试/跟踪这些构建。这将捕获最严重的错误。

于 2010-01-16T04:47:41.573 回答