2

有没有办法确定 Windows CE 操作系统是否针对 ARMV4 或 ARMV4I 或 ARMV4T。

我知道 coredll 上的 IsProcessorFeaturePresent() API 调用,但据我所知,它只允许您确定拇指指令集的存在。

我真正想要检测的是,如果 O/S 是通过互通构建的(ARMV4I 中的 I)——而不做任何假设。使用 PF_ARM_THUMB 不会区分 ARMV4T 和 ARMV4I。

谢谢!

4

2 回答 2

0

您可以尝试使用带有 IOCTL_PROCESSOR_INFORMATION 的 KernelIoControl API 来了解有关处理器的更多信息。

于 2009-10-27T01:13:54.230 回答
0

为什么不能简单地使用BX LRalways 可以被操作系统访问的功能?

通过启用互通,Microsoft 符合 ARM 弃用非互通 ARM 架构的目标。所有 ARM 平台都应支持 16 位和 32 位代码。

您可以使用 C++ try/catch 来检查是否需要提供的功能。如果您可以使用不受支持的功能引发异常,这将起作用。但是很难提高它来检查互通性。

于 2009-11-02T18:00:32.363 回答