Сбой функций android_getCpuFeatures в Honeycomb

#android #android-ndk #android-3.0-honeycomb

#Android #android-ndk #android-3.0-honeycomb

Вопрос:

У меня есть проект NDK, который на ранней стадии вызывает android_getCpuFeatures. Это отлично работает на всех телефонах, которые я тестировал, но на планшете Honeycomb это просто сбой (в Logcat не так много информации, кроме того, что произошел жесткий сбой).

Это связано с r5b NDK, использующим новый, предпочтительный способ подключения функций процессора.

Ответ №1:

Я думаю, что это не ответ, но вы можете исследовать его с помощью исходного кода (cpu-features.c, cpu-features.h).

android_getCpuFeatures просто проверяет строки, взятые из / proc / cpuinfo, это нормально для любого ядра Android.

Комментарии:

1. Тайна раскрыта, благодаря вашему совету: согласно / proc / cpuinfo, планшет на базе Tegra 2 не поддерживает NEON! Я скомпилировал свое приложение для NEON. На самом деле я не использовал никаких типов NEON или встроенных функций, но я предполагаю, что компилятор оптимизировал некоторый код для использования NEON.

2. В Tegra 2 также нет регистров VFPv3-D32. Таким образом, некоторые инструкции armv7-a-neon с плавающей запятой, такие как инструкция деления, не работают. armv7-a — лучший тип arch для Tegra 2.