【问题标题】:Unable to locate DEBIAN ARMv8 32-bit packages from Internet无法从 Internet 找到 DEBIAN ARMv8 32 位软件包
【发布时间】:2020-08-05 20:30:15
【问题描述】:

从昨天开始,我一直在尝试查找 ARMv8 32 位软件包存储库,以下载我将用于使用雷达进行一些分析的软件包。我从 archlinux 和 centos 找到了存储库,但不幸的是,所有这些软件包都是 aarch64 (ARMv8-64bit),radare 在分析时遇到了问题。我不知道该问题的确切原因,但我的问题是我想为 ARMv8 的 32 位变体找到类似于上述两个的存储库。我确实找到了 32 位 ARM 的 termux 分布,但不幸的是它是 ARMv7 而不是 ARMv8。

一般来说,以下是我的问题:

  1. 是否有适用于 ARMv8 32 位的软件包存储库?还是 ARMv8 只是 64 位?
  2. 是否有任何通用方法可以找到此类存储库? (我确实也很难找到上述存储库,并且知道找到此类存储库的方法真的很棒)
  3. 提到ARMv8,是不是一般指的是aarch64?

非常感谢您的宝贵时间。

【问题讨论】:

    标签: linux arm debian embedded


    【解决方案1】:

    ARMv7 是 32 位架构,支持 aarch32 和 thumb 状态。此平台提供了两种类型或包(如here 所述):

    • armel 使用较旧的 Embedded-ABI
    • armhf 使用较新的 Hard-Float-ABI

    ABI 描述了函数之间以及与操作系统之间如何交换值。

    ARMv8 是一个较新的平台,支持来自 ARMv7 的旧 32 位架构和具有 aarch64 状态的新 64 位架构。仅为 64 位平台提供了 arm64 类型的包。 32 位的就像 ARMv7。

    这些是基于 debian 的系统的名称。我不知道 archlinux 和 CentOS 的名称,但应该也有新的 64 位软件包和旧的 32 位软件包。

    简短总结: ARMv8 没有单独的 32 位包,这些是 ARMv7 包。

    【讨论】:

    • 谢谢。在这种情况下,我可以将 ARMv7-m 作为 ARMv7 的子集吗?我知道有 ARMv7-m 和 ARMv7-a 之类的变体。例如,假设我编译了一个二进制文件以在具有 ARMv7-m 架构的微控制器上运行。该二进制文件中的指令是否与 ARMv7-a 兼容?
    • ARMv7 first 是第七代 ARM 处理器。有不同的版本:适用于一般应用的 ARMv7-A、适用于微控制器应用的 ARMv7-M 和适用于实时应用的 ARMv7-R。都支持基本的 32 位指令集。但是,即使在这些版本中,某些指令集扩展也仅受某些处理器支持。因此,一般不能说在 ARMv7-M 处理器上运行的程序是否也可以在 ARMv7-A 处理器上运行。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-27
    • 1970-01-01
    • 2021-03-05
    相关资源
    最近更新 更多