我已经下载了HD Photo Device Porting Kit 1.0并在x86 PC上成功编译并执行了它。
我想将图像查看器程序移植到基于ARM的Windows Mobile智能手机,但有一些ARM代码丢失。
首先,ARM没有“/image/x86/x86.h”等效头文件。但是文件非常简单,所以我将其复制并重命名为“arm.h”并成功编译并链接了源代码。
但是在运行时,DWORD
对齐异常发生。我发现在ARM构建中,似乎应声明ARMOPT_BITIO
以便正确对齐读取&写。但是对于ARMOPT_BITIO
,缺少一些IO功能,例如: G。 peekBits
,getBits
,flushToByte
,flushBits
。
我复制了这些函数的x86版本(peekBit16
,flushBit16
等),但没有运气,它不起作用(我有堆栈溢出错误)。
我无法调试复杂的高清照片源文件。请告诉我在哪里可以找到丢失的ARM代码。
非常感谢任何帮助。谢谢!
答案 0 :(得分:1)
根据我将一些Microsoft代码移植到ARM Linux的经验,我不认为有一个简单的方法,除非有人已经移植它。你将不得不深入研究这种低级调试。
我遇到的错误主要与未对齐访问和缺少平台API调用有关。同样不正确的预处理器检查导致代码认为它在big-endian平台上运行。
我发现在这种情况下调试有用的方法是为已知可以工作的平台构建目标平台和的代码,并行调试/跟踪这些构建使用了许多用例。这将捕获最严重的错误。