gpt4 book ai didi

iPhone 检测处理器型号/NEON 支持

转载 作者:行者123 更新时间:2023-12-03 18:30:17 32 4
gpt4 key购买 nike

我正在寻找一种方法来在运行时区分配备新 ARM 处理器的设备(例如 iPhone 3GS 和一些 iPod 3G)和配备旧 ARM 处理器的设备。我知道我可以使用 uname() 来确定设备型号,但由于只有部分 iPod touch 3G 的 ARM 处理器得到了增强,这还不够。

因此,我正在寻找其中之一:

  1. 一种检测处理器型号的方法 - 我想没有。
  2. 一种确定是否支持 ARM neon 指令的方法 - 由此我可以得出答案。
  3. 一种确定设备总存储大小的方法 - 将其与已知的设备型号相结合可能会巧妙地引导我找到答案。
  4. <输入随机想法>

提前致谢:)

最佳答案

不完全是您所要求的,但一个简单的解决方案是构建胖应用程序,以便它包含 ARMv6 和 ARMv7 的可执行代码。如果这样做,适当的代码将自动在处理器上运行,并且您不需要进行任何运行时检查。实际上,您让加载程序为您执行运行时检测。

为此,请将 XCode 项目中的体系结构设置从“标准 (armv6)”更改为“优化 (armv6 armv7)”

然后,在您的实现中,您将执行以下操作:

#if defined __ARM_NEON__
// Code that uses NEON goes here
#else // defined __ARM_NEON__
// Fallback code without NEON goes here
#endif // defined __ARM_NEON__

有一个类似的宏,您可以使用它来检查(非 NEON)ARMv7 功能,但我记不起来了。

如果您确实想进行运行时调度,请查看 sysctlbyname libc 中的函数。具体来说,我认为查找 HW_MACHINE_ARCH 参数可能对您有用。

关于iPhone 检测处理器型号/NEON 支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1600917/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com