2

Android SDKに付属のAndroidエミュレーターは、NEON命令セットエミュレーションをサポートしています(自分でテスト済み)。そしてそれはQEMUに基づいています。

最近、QEMU(Cortex-A9をエミュレート)を使用してカスタムVMを作成し、ARMELLinuxディストリビューションをインストールしようとしました。

ただし、インストール後はCPU機能に/proc/cpuinfo表示されません。neonNEONがVM内で利用可能であるように見えるように、実際にAndroidエミュレーターはどのようなトリックを実行しますか?

4

2 に答える 2

2

これらの値はに保存されますelf_hwcapkernel / setup.cを参照)。vfp / vfpmodule.cNEONはサポートを検出し、にビットを設定します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
            }

これは、 CPUIDビットマップread_cpuid_id()を取得するコプロセッサーCP15のマクロです。また、別のVFPコプロセッサレジスタを使用します。そのため、使用しているエミュレーターは、どちらのコプロセッサー・レジスターからの命令にも正しく応答していません。または多分それはエミュレーションをサポートしていません。fmrx()MRCNEON

于 2013-03-24T15:28:24.567 に答える
0

私は同じ問題に直面していました。ネオンをサポートするハードウェアをエミュレートする必要があります。beaglexmはサポートしています。こちらをチェック

于 2016-02-18T06:21:45.697 に答える