- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Raspberry Pi 3 uses a Broadcom SoC with and ARMv8 A53 core .它还使用基于 Debian Jessie 的 32 位操作系统。根据 ARM 的 ARM NEON programming quick reference , 第 3.2 节,指令集:
The ARMv8-A AArch32 instruction set consists of A32 (ARM instruction set, a 32-bit fixed length instruction set) and T32 (Thumb instruction set, a 16-bit fixed length instruction set; Thumb2 instruction set, 16 or 32-bit length instruction set). It is a superset of the ARMv7-A instruction set, so that it retains the backwards compatibility necessary to run existing software. There are some additions to A32 and T32 to maintain alignment with the A64 instruction set, including NEON division, and the Cryptographic Extension instructions. NEON double precision floating point (IEEE compliance) is also supported.
不久前我在 GCC 邮件列表上问了一个类似的问题 How to test Aarch32 execution environment on Aarch64?但是我不太明白答案:
Once you're compiling with an arm toolchain the CRC extension can be enabled through
-march=armv8-a+crc
or selecting an-mcpu
option that enables it. To enable the Crypto extension you'll have to specify the right-mfpu
option.
我的问题很简单...如何为 Raspberry Pi 3 启用 CRC 和加密扩展?
以下是一些无效的尝试。
尝试 (4) 类似于我们在 Aarch64 下的原生操作:gcc -march=armv8-a+crc+crypto -mtune=cortex-a53
。尝试 (5) 实际上启用了 CRC,但我似乎无法启用任何其他功能,例如 PMULL
、PMULL2
、AES
、SHA1
和 SHA2
。
gcc -D__ARM_FEATURE_CRYPTO -D__ARM_FEATURE_CRC -march=armv8-a+crc+crypto -mcpu=cortex-a53 -mfpu=neon test.cc -o test.exe
gcc -D__ARM_FEATURE_CRYPTO -D__ARM_FEATURE_CRC -march=armv8-a+crc -mcpu=cortex-a53 -mfpu=neon test.cc -o test.exe
gcc -D__ARM_FEATURE_CRYPTO -D__ARM_FEATURE_CRC -march=armv8-a -mcpu=cortex-a53 -mfpu=neon test.cc -o test.exe
gcc -march=armv8-a+crc+crypto -mcpu=cortex-a53 -mfpu=neon test.cc -o test.exe
gcc -march=armv8-a+crc -mcpu=cortex-a53 -mfpu=neon test.cc -o test.exe
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
.
关于gcc - 如何在 ARMv8-a 上启用 Aarch32 指令集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38631380/
我想开始使用一些 AVX(高级矢量扩展)指令。我知道英特尔提供了一个模拟器来测试包含这些指令的软件(请参阅 this question ),但由于我不想手动编写十六进制代码,因此出现了关于 的问题。哪
假设我使用的是基于 Intel x64 的笔记本电脑,没有专用的 GPU。 我必须有一些板载 GPU 否则我的屏幕将无法工作,对吗? 板载 GPU 通常是否嵌入到 CPU 中? 英特尔是否有单独的 G
我遇到了这个错误:“SSE 指令集未启用”。我该如何解决这个问题? 我有 ACER i7,Ubuntu 11.10,请问有人能帮帮我吗? 任何帮助将不胜感激! 同时运行: sudo cat /pro
我希望创建一个最小的、计算通用的字母数字 x86 操作码子集。最终我希望子集包含尽可能少的指令,如果有多个最小子集,我也想知道。该子集应该能够模拟可以用整个字母数字指令集编写的任何程序。说明应仅涵盖与
COM 文件中使用了哪些指令集?我以为是 8086,但似乎我错了。在我发现的 8086 手册中,shl 的第二个参数只能接受 1 或 cl,而 1 以外的立即值对我来说很好用。如果重要,我正在使用 N
在“ARM11TechnicalRefManual”第 1-34 节的“Thumb 指令集”下,它说: “Thumb 指令集是最常用的 32 位 ARM 指令的子集。Thumb 指令长 16 位,并且
Java Virtual Machine Instruction Set页面提供aaload、aastore...等助记词信息 然而,既没有提到这些助记符占用的CPU周期,也没有任何关于这些助记符的字
在任何编程环境中,无论我选择何种数据类型,最终 CPU 都只会执行算术运算(加法/逻辑运算)。 这种转变(从用户定义的数据类型/操作到 CPU 指令集)是如何发生的,编译器、解释器、汇编器和链接器在这
Raspberry Pi 3 uses a Broadcom SoC with and ARMv8 A53 core .它还使用基于 Debian Jessie 的 32 位操作系统。根据 ARM 的
这个问题在这里已经有了答案: How to create a lightweight C code sandbox? (13 个答案) 关闭 9 年前。 我正在开发一个类似于 hackerrank.
下面的代码是否可以用来检查 CPU 是否支持 SSE3 指令集? 使用 IsProcessorFeaturePresent()该功能显然不适用于 Windows XP。 bool CheckSSE3(
我想编译一个包含大量 32 位静态库的程序,由于缺少 makefile,我无法将其重新编译为 64 位,但我应该编译一些库以获得一些静态库以与它们一起使用。 我要编译的库之一有一个 Makefile,
我知道 SSE 是 x87 浮点指令的替代方法,但 x87 FPU 是否仍在 Ivy-Bridge 或 Haswell 等现代 CPU 中实现? SSE 是否取代了 x87 指令集? 最佳答案 x87
我知道这个问题已经有一些答案,但我似乎不明白为什么我一直收到这个错误。 下面是解释:我有 64 位机器,其中安装了 Windows 7 x64。我在 Windows 上的 GCC (CodeBlock
我们有一个要用 AVX2 编译的翻译单元(只有那个):它在文件的第一行预先告诉 GCC: #pragma GCC target "arch=core-avx2,tune=core-avx2" 这曾经适
我想使用 mfoc library使用我的 Galaxy Nexus 手机,但 NFC Android API 中缺少某些方法。所以我想实现这些方法并构建我自己的 ROM。 使用 NFC pn512
我希望以快速高效的方式用 C 语言编写 Morton Z 顺序编码和解码的两个函数,即。 uint64_t morton_encode(uint32_t xindex, uint32_t yindex
我在 Visual C++ 2010 中使用 OpenCV 中的 BRIEF 描述符来匹配两个图像中的点。 在the paper关于 BRIEF-descriptor 的内容是可以加快速度: "The
我正在尝试制作一个对 2 个 CGVectors 求和的函数。 这是我的尝试: 包括: @import GLKit; @import Foundations; // Defenition of
所以,这就是我要完成的工作。在我的 C++ 项目中,必须使用 Microsoft Visual Studio 2015 或更高版本编译,我需要一些代码具有不同的版本,具体取决于用户 CPU 中可用的最
我是一名优秀的程序员,十分优秀!