Android SDK附带的Android模拟器支持NEON指令集模拟(我自己测试过)。 它基于QEMU。
我最近尝试使用QEMU创建自定义VM(模拟Cortex-A9)并安装了一些ARMEL Linux发行版。
但是,安装后/proc/cpuinfo
未在CPU功能中显示neon
。
实际上Android模拟器的功能是什么,所以NEON似乎可以在他们的VM中使用?
答案 0 :(得分:2)
这些值存储在elf_hwcap
中(请参阅kernel/setup.c)。 vfp/vfpmodule.c检测到NEON
支持并在elf_hwcap
中设置了一点。特别是通过这段代码,
/*
* Check for the presence of the Advanced SIMD
* load/store instructions, integer and single
* precision floating point operations. Only check
* for NEON if the hardware has the MVFR registers.
*/
if ((read_cpuid_id() & 0x000f0000) == 0x000f0000) {
#ifdef CONFIG_NEON
if ((fmrx(MVFR1) & 0x000fff00) == 0x00011100)
elf_hwcap |= HWCAP_NEON;
#endif
#ifdef CONFIG_VFPv3
if ((fmrx(MVFR1) & 0xf0000000) == 0x10000000)
elf_hwcap |= HWCAP_VFPv4;
#endif
}
read_cpuid_id()
是协处理器CP15的宏,它获取 cpu id 位图。 fmrx()
还使用另一个VFP协处理器寄存器。因此,您使用的仿真器无法正确响应来自协处理器寄存器的MRC
指令;或者它可能不支持NEON
仿真。
答案 1 :(得分:0)
我遇到了同样的问题。您必须模拟具有霓虹灯支持的硬件。 beaglexm有支持。检查此here