RK3288 datasheet Revision 1.0 May.2014
charpter1 1.2.1
Include VFP v3 hardware to support single and double-precision add, subtract, divide,
multiply and accumulate, and square root operations
可以看出 集成的是 VFP v3
而arm官网的介绍 cortex-a17 标配是 VFP v4
不知道RK3288选用VFP v3 的理由。
常理的话应该集成neon-vfpv4
cortex-a5,a7,a15,a17,a53,a57 都标配VFP v4
只有a8,a9是vfpv3.
F_pqy
January 24, 2015, 3:11am
2
选用vfpv3? cpu指令集不是包含
swp half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 evtstrm
这么多指令吗?用什么指令是编译器的事吧?
编译器当然可以选vfpv4的 但是也要rk3288硬件上支持vfpv4,我的问题是rk3288只支持vfpv3,而没有vfpv4。
仔细看我上面的帖子 我说的arm官网说的a17标配是vfpv4。
楼上说的我在帖子里强调了的。
问题是rk3288的数据手册 这个是瑞芯微官方的 说法是vfpv3。
楼上的意思是rk3288是a17 所以一定支持vfpv4。逻辑混乱。
F_pqy
January 25, 2015, 6:08am
6
target thumb C: libcompiler_rt-extras <= external/compiler-rt/lib/mulodi4.c
out/host/linux-x86/bin/clang -I external/compiler-rt -I out/target/product/rk3288/obj/STATIC_LIBRARIES/libcompiler_rt-extras_intermediates -I libnativehelper/include/nativehelper -isystem system/core/include -isystem hardware/libhardware/include -isystem hardware/libhardware_legacy/include -isystem hardware/ril/include -isystem libnativehelper/include -isystem frameworks/native/include -isystem frameworks/native/opengl/include -isystem frameworks/av/include -isystem frameworks/base/include -isystem external/skia/include -isystem out/target/product/rk3288/obj/include -isystem bionic/libc/arch-arm/include -isystem bionic/libc/include -isystem bionic/libstdc++/include -isystem bionic/libc/kernel/common -isystem bionic/libc/kernel/arch-arm -isystem bionic/libm/include -isystem bionic/libm/include/arm -isystem bionic/libthread_db/include -isystem external/clang/lib/include -isystem out/target/product/rk3288/obj/include/clang -c -fno-exceptions -Wno-multichar -fpic -fPIE -ffunction-sections -fdata-sections -funwind-tables -fstack-protector -Werror=format-security -D_FORTIFY_SOURCE=2 -fno-short-enums -march=armv7-a -mfloat-abi=hard -mfpu=neon-vfpv4 -include build/core/combo/include/arch/linux-arm/AndroidConfig.h -I build/core/combo/include/arch/linux-arm/ -DANDROID -fmessage-length=0 -W -Wall -Wno-unused -Winit-self -Wpointer-arith -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -DNDEBUG -g -Wstrict-aliasing=2 -DNDEBUG -UDEBUG -mthumb -Os -fomit-frame-pointer -fno-strict-aliasing -D__compiler_offsetof=__builtin_offsetof -target arm-linux-androideabi -nostdlibinc -Bprebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.7/arm-linux-androideabi/bin -mllvm -arm-enable-ehabi -MD -MF out/target/product/rk3288/obj/STATIC_LIBRARIES/libcompiler_rt-extras_intermediates/lib/mulodi4.d -o out/target/product/rk3288/obj/STATIC_LIBRARIES/libcompiler_rt-extras_intermediates/lib/mulodi4.o external/compiler-rt/lib/mulodi4.c
clang: error: the clang compiler does not support ‘-mfpu=neon-vfpv4’
make: *** [out/target/product/rk3288/obj/STATIC_LIBRARIES/libcompiler_rt-extras_intermediates/lib/mulodi4.o] 错误 1
你的clang 编译器不支持neon-vfpv4的优化?
linaro的gcc的release版本 只支持vfpv3。 支持vfpv4的编译器要自己动手编译。
F_pqy
January 25, 2015, 6:27am
8
target SharedLib: libdl (out/target/product/rk3288/obj/SHARED_LIBRARIES/libdl_intermediates/LINKED/libdl.so)
prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.7/bin/arm-linux-androideabi-g++ -nostdlib -Wl,-soname,libdl.so -Wl,–gc-sections -Wl,-shared,-Bsymbolic -Lout/target/product/rk3288/obj/lib out/target/product/rk3288/obj/lib/crtbegin_so.o out/target/product/rk3288/obj/SHARED_LIBRARIES/libdl_intermediates/libdl.o -Wl,–whole-archive -Wl,–no-whole-archive out/target/product/rk3288/obj/STATIC_LIBRARIES/libcompiler_rt-extras_intermediates/libcompiler_rt-extras.a -o out/target/product/rk3288/obj/SHARED_LIBRARIES/libdl_intermediates/LINKED/libdl.so -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now -Wl,–warn-shared-textrel -Wl,–fatal-warnings -Wl,–icf=safe -Wl,–fix-cortex-a8 -mfloat-abi=hard -mfpu=neon -Wl,–exclude-libs=libgcc.a /mnt/1/filefly/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.7/bin/../lib/gcc/arm-linux-androideabi/4.7/armv7-a/libgcc.a out/target/product/rk3288/obj/lib/crtend_so.o
/mnt/1/filefly/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.7/bin/../lib/gcc/arm-linux-androideabi/4.7/../../../../arm-linux-androideabi/bin/ld: error: out/target/product/rk3288/obj/SHARED_LIBRARIES/libdl_intermediates/libdl.o uses VFP register arguments, output does not
collect2: error: ld returned 1 exit status
make: *** [out/target/product/rk3288/obj/SHARED_LIBRARIES/libdl_intermediates/LINKED/libdl.so] 错误 1
F_pqy
January 25, 2015, 6:29am
9
这两个错误都是我把sdk的代码改为使用neon-vfpv4后出现的。安卓源码自带编译器不支持使用vfpv4吧?