2010-01-16 64 views
1

我已經下載了HD Photo Device Porting Kit 1.0並在x86 PC上成功編譯並執行了它。ARM上的高清照片源編譯?

我想將圖像查看器程序移植到基於ARM的Windows Mobile智能手機,但有一些丟失的ARM代碼。

首先,沒有用於ARM的「/image/x86/x86.h」等效頭文件。但該文件非常簡單,因此我將其複製並重命名爲「arm.h」,併成功編譯並鏈接了源代碼。

但是在運行時,DWORD會發生對齊異常。我發現,在ARM構建上,似乎ARMOPT_BITIO應該聲明爲正確對齊讀取&寫入。但是與ARMOPT_BITIO,一些IO功能丟失,例如, G。 peekBitsgetBits,flushToByte,flushBits

我複製了這些函數的x86版本(peekBit16,flushBit16等),但沒有運氣,它不起作用(我有堆棧溢出錯誤)。

我無法調試複雜的高清照片源文件。請讓我知道我在哪裏可以找到缺少的ARM代碼。

任何幫助將不勝感激。謝謝!

回答

1

基於我將一些微軟代碼移植到ARM Linux的經驗,我不認爲有一個簡單的解決方法,除非有人已經移植它。你必須深入到這種低級調試。

我遇到的錯誤主要與未對齊訪問和缺少平臺API調用有關。另外不正確的預處理器檢查導致代碼認爲它在大端平臺上運行。

我發現在這種情況下調試有用的方法是建立在目標平臺對於其中它被稱爲正常工作,和調試平臺的代碼/跟蹤這些建立在平行使用許多使用案例。這將抓住最嚴重的錯誤。