gpt4 book ai didi

检查CPU型号以执行特定的C代码

转载 作者:行者123 更新时间:2023-11-30 21:31:27 26 4
gpt4 key购买 nike

我想创建一个包含两个独立 block 的 C 代码。我想使用一个函数或工具来提取CPU模型,并根据该模型,程序决定执行哪个代码块。我只有想法,不知道如何实现!第一个代码块将在 Intel i7 上执行,第二个代码块应在 ARM Cortex A53 上执行。PS:我是初学者,与硬件和类似的东西无关。谢谢您的帮助:)

最佳答案

正如明确指出的,首先,您不能让一个 C 程序运行到一定程度来确定 ARM 和 x86,因为该代码必须已经是 ARM 或 x86。这些是不同的指令集。您可以使用 python 或 JAVA 或其他一些脚本/虚拟机语言。但是,您需要在编译时决定为一个目标或另一个目标构建,此时您已经知道实际在哪个目标上运行代码,因此如果这严格是 ARM 与 X86,则没有理由检查运行时。这并不是说每个架构和/或系统都有办法检查您在 ARMv6 与 ARMv7 上的架构和风格,但不一定是 ARMv7 32 位与 ARMv8 64 位,尽管从技术上讲您可以运行 aarch32 和 aarch64 指令大多数 ARMv8 上的设置并不混合,必须自行更改操作系统或执行级别才能在它们之间进行切换。

您确实了解存在不同的不兼容指令集,特别是您所描述的指令集,并且 C 代码被编译为其中之一。因此,您无法为一个目标编译 C 程序来检测另一个目标。在到达此点之前,您已经选择了目标。现在有模拟器,但它们也倾向于针对一种架构。有来自特定供应商的产品可以模拟一种指令集并将其在运行时转换为另一种指令集,随着时间的推移,当您重新运行该代码时,它会继续转换它。您可以尝试这样做,但您仍然必须在正确的逻辑/模拟器上为正确的目标运行代码,然后进行特殊的检测,这不是找到真正的底层架构(而不是伪造的模拟器)的标准。

我怀疑您认为您可以拥有一个特定于架构的模块来检测架构以运行特定于架构的代码。一般来说,这不适用于 C,尝试没有意义,因此可能没有一个好的工具。特别是因为这种事情的解决方案是要么将其构建为二进制文件格式并且操作系统会选择它,因为它知道,要么用目标独立语言(如Python或JAVA)或脚本语言(如perl、bash)包装二进制文件,等可以独立于目标确定架构(在这种情况下,针对初学者的操作系统和语言,解决方案差异很大),然后选择要运行的二进制文件。

关于检查CPU型号以执行特定的C代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51398641/

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