如何在ARMv8-a上启用Aarch32指令集?

2024-03-12

Raspberry Pi 3 使用具有 ARMv8 A53 内核的 Broadcom SoC https://www.raspberrypi.org/magpi/raspberry-pi-3-specs-benchmarks/。它还使用基于 Debian Jessie 的 32 位操作系统。根据 ARM 的ARM NEON 编程快速参考 https://community.arm.com/groups/android-community/blog/2015/03/27/arm-neon-programming-quick-reference#_ednref3,第 3.2 节,指令系统:

ARMv8-A AArch32指令集由A32(ARM指令集,32位定长指令集)和T32(Thumb指令集,16位定长指令集;Thumb2指令集,16位或32位长度指令系统)。它是 ARMv7-A 指令集的超集,因此保留了运行现有软件所需的向后兼容性。 A32 和 T32 进行了一些补充,以保持与 A64 指令集的一致性,包括 NEON 除法和加密扩展指令。还支持 NEON 双精度浮点(IEEE 合规性)。

我不久前在 GCC 邮件列表上问过类似的问题如何在Aarch64上测试Aarch32执行环境? https://gcc.gnu.org/ml/gcc-help/2016-06/msg00097.html但我不太明白答案:

使用arm工具链进行编译后,可以通过以下方式启用CRC扩展-march=armv8-a+crc或选择一个-mcpu启用它的选项。要启用加密扩展,您必须指定正确的-mfpu option.

我的问题很简单...如何为 Raspberry Pi 3 启用 CRC 和加密扩展?


以下是一些不起作用的尝试。

尝试 (4) 与我们在 Aarch64 下本地执行的方式类似:gcc -march=armv8-a+crc+crypto -mtune=cortex-a53。尝试(5)实际上启用了 CRC,但我似乎无法启用其他任何内容,例如PMULL, PMULL2, AES, SHA1 and SHA2.

  1. gcc -D__ARM_FEATURE_CRYPTO -D__ARM_FEATURE_CRC -march=armv8-a+crc+crypto -mcpu=cortex-a53 -mfpu=neon test.cc -o test.exe
  2. gcc -D__ARM_FEATURE_CRYPTO -D__ARM_FEATURE_CRC -march=armv8-a+crc -mcpu=cortex-a53 -mfpu=neon test.cc -o test.exe
  3. gcc -D__ARM_FEATURE_CRYPTO -D__ARM_FEATURE_CRC -march=armv8-a -mcpu=cortex-a53 -mfpu=neon test.cc -o test.exe
  4. gcc -march=armv8-a+crc+crypto -mcpu=cortex-a53 -mfpu=neon test.cc -o test.exe
  5. gcc -march=armv8-a+crc -mcpu=cortex-a53 -mfpu=neon test.cc -o test.exe
  6. gcc -march=armv8-a -mcpu=cortex-a53 -mfpu=neon test.cc -o test.exe

$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/arm-linux-gnueabihf/4.9/lto-wrapper
Target: arm-linux-gnueabihf
Configured with: ../src/configure -v --with-pkgversion='Raspbian 4.9.2-10' --with-bugurl=file:///usr/share/doc/gcc-4.9/README.Bugs --enable-languages=c,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.9 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.9 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --disable-libitm --disable-libquadmath --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-4.9-armhf/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-4.9-armhf --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.9-armhf --with-arch-directory=arm --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --disable-sjlj-exceptions --with-arch=armv6 --with-fpu=vfp --with-float=hard --enable-checking=release --build=arm-linux-gnueabihf --host=arm-linux-gnueabihf --target=arm-linux-gnueabihf
Thread model: posix
gcc version 4.9.2 (Raspbian 4.9.2-10) 

很简单,“正确的-mfpu选项”应该是-mfpu=crypto-neon-fp-armv8 https://gcc.gnu.org/onlinedocs/gcc/ARM-Options.html#index-mfpu-1555.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在ARMv8-a上启用Aarch32指令集? 的相关文章

随机推荐

  • DisplayAttribute.GroupName 属性的用途是什么?

    我正在尝试找出的有效用法显示属性 组名 http msdn microsoft com en us library system componentmodel dataannotations displayattribute groupna
  • 开发 iPhone 应用程序时,配置文件有何用途?

    配置配置文件的用途是什么 为什么在开发 iPhone 应用程序时需要它 如果我没有配置文件 会发生什么 引用自 iPhone 开发者计划 https developer apple com programs information Appl
  • C# 本身是否使用 GPU 进行图形处理?

    我想以最快的方式绘制频繁使用的图形 如果我使用标准 C 图形回调 es graphics drawline 我这样做对吗 或者我应该使用不同的库 图形 DrawLine https msdn microsoft com en us libr
  • 使用android下载文件

    我正在尝试将文件从网络保存到我的 Android 设备 但我不知道该怎么做 URL 地址会打开一个空白页面和一个弹出下载框 其中包含我要下载的文件 以便我可以选择保存位置 我的问题是我不知道如何管理该框以下载文件 我不想下载该页面上显示的内
  • php 像 UTC 一样编译欧洲/柏林时区

    今天我一直在努力解决一个奇怪的问题 由于某种原因 我的服务器假装时区 欧洲 柏林 是 UTC 应该是 UTC 1 例如 如果我将时区设置为 欧洲 布鲁塞尔 它会正确转换时间 我创建了一些虚拟代码来测试我的服务器和在线编译器 当编译器工作时
  • 如何使用 glDrawTex*

    我想拍摄一张 png 图像并将其用作 GLView 的背景 我听说 glDrawTex 是最好的方法 但我在互联网上搜索过 但没有找到一个如何使用它的示例 至少没有一个对我有用 有什么帮助吗 虽然OES draw texture 扩展 ht
  • 在 botframework 网络聊天中发送消息(来自建议)后,如何清除聊天输入框?

    我正在使用 React js 和 botframework 网络聊天开发一个机器人应用程序 问题是我想在发送消息后清除文本输入框 从发送消息的位置 这是从建议中选择的 建议列表 或自动完成组件 是自定义编码的列表 我的意思是 如果我输入 h
  • 以一种形式以编程方式发送多个文件输入字段

    我正在尝试使用blueimp jQuery 文件上传 https github com blueimp jQuery File Upload插件以编程方式通过同一表单发送多个文件输入字段 当用户选择表单文件时 它只是将它们附加到 JS 变量
  • 熊猫爆炸 - 无法从重复轴重新索引

    假设我有一个数据框df C1 C2 C3 C4 C5 0 A 1 s1 123 t1 1 A 1 s2 321 t2 2 A B 1 2 s3 777 111 t3 3 B 2 s4 145 t4 4 B 2 s5 990 t5 5 A B
  • C# 中的 switch 语句和“需要一个常量值”

    为什么编译器对第一种情况说 需要一个常量值 第二种情况工作正常 switch definingGroup case Properties Settings Default OU HomeOffice do something break c
  • Matplotlib:如何加载和显示 PDF 图像

    我的问题很简单 我有一个 PDF 图形 我想与一些数据分析的结果一起显示 然而 即使是广泛的 Google 搜索也没有找到一种在图中加载和显示 PDF 的方法 我只找到了 JPG 或 PNG 等光栅图像的标准结果 提前致谢 我不认为 Mat
  • WordPress 插件:如何添加自定义 URL 处理程序

    我正在尝试编写一个 Wordpress 插件 但似乎无法弄清楚如何修改 URL 的处理方式 例如 任何请求
  • 无法中断 for 循环:非语法中断

    我想要break a for loop当满足某个条件时 Object keys s map uk gt Object keys s uk map ik gt for let i 1 i lt data length i if s uk ik
  • 尝试获取文件夹的子级时出现 MS Graph API 未知错误

    当尝试使用 Microsoft Graph API 相对路径访问共享点站点驱动器中的特定文件夹时 出现未知错误 这个完全相同的请求在一周前工作正常 但本周再次使用时停止工作 测试结果是我网站驱动器上的一个文件夹 根据OneDrive 开发文
  • Active Admin - 用户和管理员的模型相同

    我希望让 Active Admin 为网站做后端 不过 我真的不想为用户和管理员用户建立单独的模型 如果用户模型中有 is admin 标志 我可以只让管理员用户登录到 Active Admin 吗 如果用户不是管理员 他们应该只能登录网站
  • 当包含某些列时,MySQL ORDER BY AVG() DESC 不起作用

    我正在执行一个查询以返回 table1 中的所有行以及 table2 中的平均评分 SELECT table1 description AVG table2 rating AS avg rating FROM table1 LEFT JOI
  • 在 Jenkins 的节点/标签限制中放置通配符/正则表达式

    在作业配置中 有一个复选框 限制该项目可以运行的位置 如果选择它 则会有一个关于标签表达式的输入字段 有没有办法在那里插入正则表达式 而不是确切的名称 如果是 您能提供一个例子吗 这背后的整个概念是 我想将限制作业分配给自动创建的具有相似名
  • 每天在设定时间用 Swift 发出通知? [复制]

    这个问题在这里已经有答案了 如果有人感到困惑并认为这是我昨天的问题的重复 那么事实并非如此 那里我问的是如何每天调用一个函数 这里我问的是如何在每天的特定时间调用通知 我正在寻找一种每天早上 7 点重复本地通知的方法 我目前有这个代码设置来
  • REST Datasnap 覆盖 URI 映射

    我用 delphi XE2 中的 REST datasnap 编写了一个小型 REST 服务器 HTTP 方法 POST PUT 等 和 delphi 中定义的函数之间有一个默认映射 这是由 delphi 组件完成的 这个维基条目 http
  • 如何在ARMv8-a上启用Aarch32指令集?

    Raspberry Pi 3 使用具有 ARMv8 A53 内核的 Broadcom SoC https www raspberrypi org magpi raspberry pi 3 specs benchmarks 它还使用基于 De