安卓的ARMv6 / V7和VFP / NEON [英] Android ARMv6/v7 and VFP/NEON

查看:315
本文介绍了安卓的ARMv6 / V7和VFP / NEON的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想了解更多关于Android手机所使用的CPU。原因是,我们正在建设的C库里面有一定的CPU /数学处理器架构的标志,我们可以设置。

  1. 到目前为止,我们已经发现,所有的Andr​​oid设备的CPU是ARM设计的,可以是的ARMv6 (旧设备,低端,华为,中兴,小SE)或的ARMv7 (蜂窝片和所有的更昂贵的设备,几乎全部用分辨率为WVGA或更高)我已经确认〜20设备和所有具有该类型的处理器。那是对的吗?是否有其它的吗?

  2. 现在,当它涉及到多媒体和数学运算,我认为两个单位是重要的 - 在 VFP 作为浮点运算以及SIMD - NEON 。测试上述组设备后我发现VFP支持是在几乎所有的设备,而不是NEON。到任何意见?

  3. 我不知道究竟是什么的ARMv6和ARMv7区别(除了一般的速度)。现在,我们正在建设一个多媒体C库,其中有几个标志建筑。我的问题是如何定位的一面,如何让更好的设备的用户使用他们的硬件数量最多的设备。我的建议是prepare 3个不同的构建:用于ARMv6 / VFP,的ARMv7 / VFP和ARMv7 / VFP / NEON。其他建议?

  4. 的ARMv6 / VFP 我觉得应该运行在所有配置中,除了设备,这是缺少VFP(如旧的HTC野火) - 但这些仍然不支持的。

这是一个好方法?任何意见都欢迎。

问候, 斯登

解决方案
  1. 这是正确的。目前有两种类型 - 的ARMv6和ARMv7。最有可能在不久的将来,还会有额外的x86目标。最新NDK已经支持建立它。

  2. VFP是强制性的ARMv7的,但不是在ARMv6。 NEON是可选的,并不是所有的设备都支持它。最显着的例子是NVIDIA的Tegra 2。它部署在最高端的平板电脑和手机,但它不支持NEON。 Nvidia公司的Tegra 3支持NEON。

  3. 我觉得你应该坚持的ARMv6与浮点仿真的ARMv7 + VFP,ARMv7的NEON +

  4. 没错 - 不支持所有的ARMv6设备VFP。所以根本就不使用它。通过默认NDK构建,旨在为ARMv6设备,并且不使用VFP armeabi目标。 armeabi-V7A建立对ARMv7和使用VFP。

I would like to understand more the CPU used on Android phones. The reason is that we are building the C library which has the certain CPU/math processor architecture flags we can set.

  1. So far we have found that all Android devices CPUs are ARM design and are either ARMv6 (older devices, low ends, Huawei, ZTE, small SE) or ARMv7 (Honeycomb tablets and all more expensive devices, almost all with resolution WVGA and higher)I have checked ~20 devices and all have processor of that type. Is that correct? Are there some others?

  2. Now when it comes to the multimedia and mathematical operations I think two units are important – the VFP for floating point arithmetic and the SIMD - NEON. After testing the above mentioned group of devices I have found that VFP support is in almost all devices, while NEON not. Any comments to that?

  3. I do not know what exactly is the ARMv6 and ARMv7 difference (besides the speed in general). Now we are building a multimedia C library, which has couple of flags for building. My question is how to target the largest number of devices on one side and how to allow the users of the better devices to use their hardware. My proposal is to prepare 3 distinct builds: ARMv6/VFP, ARMv7/VFP and ARMv7/VFP/NEON. Other proposals?

  4. The ARMv6/VFP I think should run on all configurations, except devices, which are missing the VFP (e.g. the old HTC Wildfire) – but those will remain unsupported.

Is this a good approach? Any comments are welcomed.

Regards, STeN

解决方案

  1. That's correct. Currently there are two types - ARMv6 and ARMv7. Most likely in nearest future there will additionally x86 target. Newest NDK already supports builds for it.

  2. VFP is mandatory on ARMv7, but not on ARMv6. NEON is optional, and not all devices support it. Most distinct example is Nvidia Tegra 2. It is deployed on most high-end tablets and phones, but it doesn't support NEON. Nvidia Tegra 3 supports NEON.

  3. I think you should stick to ARMv6 with floating point emulation, ARMv7+VFP, ARMv7+NEON.

  4. Exactly - VFP is not supported on all ARMv6 devices. So simply don't use it there. By default NDK builds armeabi target that is intended for ARMv6 devices and doesn't use VFP. armeabi-v7a builds for ARMv7 and uses VFP.

这篇关于安卓的ARMv6 / V7和VFP / NEON的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆