gpt4 book ai didi

c - 如何在android中使用arm_acle C语言扩展

转载 作者:太空宇宙 更新时间:2023-11-04 01:02:58 26 4
gpt4 key购买 nike

有很多使用 arm neon intrinsics for android 的例子,ndk 甚至有一个例子。我已经让它正常工作了。

Arm 还提供 ACLE(Arm C 语言扩展),但我几乎找不到任何示例。 arm 文档本身仅建议包含 arm_acle.h 头文件,但我仍然遇到错误。 Google 提供的帮助几乎为零 :) 搜索 arm 社区板也几乎没有结果。

难道人们不使用 acle,而是选择内联汇编吗?

当我包含 arm_acle.h 并尝试使用 __ssat() 调用时,我必须进一步定义指令 __ARM_FEATURE_CRC32,并且在构建时出现错误“错误:‘__builtin_arm_qadd’未在此范围内声明”

header 未包含任何依赖项,文档列表中也没有具体的链接依赖项。

有什么建议吗?

还是我忽略了一些基本的东西?

附加信息:我的目标架构是 armv7-a-neon 并且在构建时在 make 文件中被正确检测到。然后我进一步定义“-mfloat-abi=softfp -mfpu=neon -march=armv7”,但无济于事。如果我撤消额外的调试定义,我只会得到“错误:#error”ACLE 内在函数支持未启用。”(Neon 支持和检测成功)搜索我的代码库,arm_acle.h 头文件仅存在于 clang host 工具中,而 arm_neon.h 存在于多个预构建工具 arm 目录中。

正如我所说,arm_neon 工作检测工作正常,并且运行良好,但 arm_acle 组件不起作用。搜索在线存储库,如 http://androidxref.com似乎暗示只支持 NEON ?

最佳答案

ARM C 语言扩展目前在 GCC(从版本 5.1 开始)中不完全支持。 Android NDK 通常使用比此版本更早的 GCC 版本,该版本也不完全支持 ACLE。

本页https://gcc.gnu.org/onlinedocs/gcc/ARM-C-Language-Extensions-_0028ACLE_0029.html给出了 ARM 和 AArch64 目标的 ACLE 当前实现水平的一些想法。正如您将在此处看到的那样,目前 GCC 提供的 ACLE 的唯一功能是 arm_acle.h 中的 CRC32 内在函数和您已经在 arm_neon.h 中找到的 Neon Intrinsics >。

关于c - 如何在android中使用arm_acle C语言扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31416325/

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