HD Photo источник скомпилировать на ARM? - PullRequest
1 голос
/ 16 января 2010

Я скачал HD Photo Device Porting Kit 1.0 , успешно скомпилировал и выполнил его на ПК x86.

Я хочу перенести программу просмотра изображений на Windows Mobile Smartphone на базе ARM, но в нем отсутствует код ARM.

Во-первых, нет "/image/x86/x86.h" эквивалентного файла заголовка для ARM. Но файл очень прост, поэтому я скопировал и переименовал его в «arm.h», успешно скомпилировал и связал исходный код.

Но во время выполнения возникает DWORD исключение выравнивания. Я обнаружил, что при сборке ARM кажется, что ARMOPT_BITIO должен быть объявлен для правильно выровненного чтения и записи. Но при ARMOPT_BITIO некоторые функции ввода-вывода отсутствуют, т.е. г. peekBits, getBits, flushToByte, flushBits.

Я скопировал x86-версию этих функций (peekBit16, flushBit16 и т. Д.), Но, к счастью, она не работает (у меня ошибка переполнения стека).

Я не могу отлаживать сложные исходные файлы HD Photo. Пожалуйста, дайте мне знать, где я могу найти недостающий код ARM.

Любая помощь будет принята с благодарностью. Спасибо!

1 Ответ

1 голос
/ 16 января 2010

Исходя из моего опыта переноса некоторого кода Microsoft в ARM Linux, я не думаю, что есть простой способ обойти это, если кто-то уже не портировал его. Вам придется погрузиться в такого рода низкоуровневую отладку.

Ошибки, с которыми я сталкивался, были в основном связаны с отсутствием выравнивания доступа и отсутствием вызовов API платформы. Также неправильные проверки препроцессора привели к тому, что код работает на платформе с прямым порядком байтов.

Метод, который я нашел полезным для отладки в таком сценарии, состоит в том, чтобы собрать код для целевой платформы и для платформы, на которой она работает, и отладить / отследить / собрать эти сборки параллельно с использованием ряда вариантов использования. Это позволит поймать наиболее серьезные ошибки.

...