为什么在启用NEON SIMDization时Android会崩溃?信号11(SIGSEGV),代码1(SEGV_MAPERR)

时间:2012-12-21 03:59:24

标签: android gcc android-ndk simd neon

我正在为我的代码做一些基于NEON的SIMD化。 它完全可以完成SIMDization,但在makefile中添加以下一行会导致崩溃,

ifeq ($(TARGET_ARCH_ABI),armeabi-v7a)
    LOCAL_ARM_NEON := true
endif

有人可以通过启用NEON并保持完全相同的代码来帮助确定崩溃的原因吗?

此致 Subhransu

1 个答案:

答案 0 :(得分:0)

首先检查您的处理器功能,看看它是否真的有NEON,

  

并非所有基于ARMv7的Android设备都将支持

您可以查看处理器数据表。

根据文件,这可能是你的源代码,

  

当您在LOCAL_SRC_FILES变量中列出源文件时,您现在就可以了   可以选择使用.neon后缀来表示您想要的   使用Neon支持构建的相应源。例如:

     

LOCAL_SRC_FILES:= foo.c.neon bar.c

     

仅使用NEON支持构建'foo.c'。

用于构建,您是否针对armeabi-v7a ABI?你可以在你的Android.mk中查看它 通过

ifeq ($(TARGET_ARCH_ABI),armeabi-v7a)

请检查所有这些因素,看看导致崩溃的原因

NDK示例是一个很好的启动源,看看它。 祝你好运